использовать макет ограничения app: layout_constraintDimensionRatio = "1: 1"
Не уверен, что это то, что вы ищете, но не могли бы вы использовать LaunchServices
API с __ LSCopyApplicationArrayInFrontToBackOrder
? Я слышал об этом, но никогда не использовал это сам. После некоторого поиска, вот пример кода, который может предоставить то, что вы ищете? Я действительно не знаю и немного догадываюсь;)
Редактировать
На самом деле, Ха. Вот пост переполнения стека, который дает это в качестве ответа и ссылки на тот же пост, на который я ссылался ...
Единственный полный список запущенные процессы предоставлены 2 выше, запрашивая ядро. Получить фактическое название процесса непросто. Вкратце, вы смотрите pid в любом другом источнике, который можете найти, пока не найдете совпадение.
Для некоторых процессов будет работать следующее:
ProcessSerialNumber psn;
CFStringRef name = NULL;
status = GetProcessForPID( inPID , &psn );
if ( noErr == status ) CopyProcessName( &psn , &name );
Для некоторых процессов вы можете найти pid в результатах [[NSWorkspace sharedWorkspace] loadedApplications]
по NSApplicationProcessIdentifier
. Доступно с 10.2 и новее. Большинство, но, возможно, не все, элементы в этом списке будут такими же, как CopyProcessName выше.
Для некоторых процессов вы можете найти аргументы процесса и получить полный путь из первого аргумента. Аналогично получению исходного списка, но с использованием KERN_PROCARGS или KERN_PROCARGS2 в качестве второго значения mib. Это то, что делает ps
.
Для некоторых процессов вы застряли с 16-символьным p_comm.