Когда пользователь кликает на иконку приложения, лаунчер вызывает
startActivity(), в который передается интент с main активити этого приложения. Вызов startActivity() делегируется в ActivityManagerService через Binder IPC.После этого
ActivityManagerService:1. Получает информацию об активити методом
PackageManager.resolveIntent();2. Сохраняет информацию об активити в интент, чтобы не выполнять резолюшн в будущем;
3. Проверяет, имеет ли приложение-лаунчер достаточно прав, чтобы стартовать активити. Проверка выполняется в методе
checkGrantUriPermissionLocked();4. Проверяет, существует ли
ProcessRecord для процесса приложения, которое нужно запустить. Если ProcessRecord null, то создается новый процесс для запуска main активити.