Полагаю, на самом деле нет другого унаследованного способа справиться с состоянием глобальной системы, только
(ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
ActivityManager.getRecentTasks () - возвращает список задач, которые в данный момент выполняются, причем самые последние из них являются первыми, а старые - по порядку.
Подробнее см. Документы
Возможно, хотя Android - это Linux, вы можете запускать системные инструменты, такие как
Runtime.getRuntime().exec("ps -aux | grep smth")
Но я думаю, что было бы трудно обнаружить конкретное Java-приложение.