Моя компания разрабатывает приложения OSGi для встроенных устройств. К сожалению, я не знаю ни одного инструмента, который обладает всеми возможностями, которые вы ищете. Я могу рассказать вам, что мы делаем для решения тех проблем, которые вы ищете.
1) Установка на устройстве: мы разрабатываем в Eclipse и разворачиваем с использованием Equinox. Мы строим с использованием файлов .product в Eclipse. Сделав это, мы получим четкое представление о количестве места на диске / в ПЗУ, которое наша программа займет на устройстве.
2) Для профилирования мы обычно используем YourKit. Есть и другие хорошие профилировщики Java, но мы обнаружили, что этот работает хорошо для нас.
Хорошая техника, которую вы можете использовать, - это создать версию сервисов, которая действует как прокси для реальной службы. Прокси-сервер - это отличное место для вставки временного кода, так что вы можете подсчитать, сколько вызовов было сделано для каждого метода обслуживания, и определить время для каждого вызова. Вы также можете классифицировать временные интервалы на основе аргументов таким образом, чтобы найти неэффективные граничные случаи. Затем, когда вы будете готовы к развертыванию, вы можете удалить прокси.
Удачи.