Как сделать встроенную ОС Android только одним приложением?

Я хотел бы сделать свою собственную встроенную систему, построенную на Android (ARM), только используя устройства, распространяемые с Android, но без их запуска.

ИЛИ

Я хочу запустить Android с моим приложением, запущенным сверху, и отказаться закрыть его и выключить Android из моего приложения.

Solutions Collecting From Web of "Как сделать встроенную ОС Android только одним приложением?"

По сути, вы пытаетесь создать пользовательскую сборку AOSP, где «Главная» – ваше приложение. Если вы заглянете в / packages / apps / Launcher2, вы найдете код для главного экрана по умолчанию.

Если вы посмотрите на файл AndroidManifest.xml , вы увидите что-то вроде этого:

<activity android:name="com.android.launcher2.Launcher" android:launchMode="singleTask" android:clearTaskOnLaunch="true" android:stateNotNeeded="true" android:theme="@style/Theme" android:screenOrientation="nosensor" android:windowSoftInputMode="stateUnspecified|adjustPan"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.MONKEY"/> </intent-filter> </activity> 

Essentialy, это говорит о том, что эта активность реагирует на

Android.intent.category.HOME намерение .

Когда система завершает загрузку (более конкретно ActivityManager), отправляет это намерение. Итак, если вы хотите, чтобы ваше приложение запускалось вместо Launcher, просто создайте себе приложение с аналогичным фильтром намерений и удалите по умолчанию Launcher2 (выньте его из списка в build / target / product / generic.mk и поместите вместо него ). Также убедитесь, что в соответствующем файле .mk есть что-то вроде этого:

 LOCAL_OVERRIDES_PACKAGES := Home 

Пока ваше приложение не предоставляет пользователю возможности запуска других приложений с помощью значков (например, Launcher), никакое другое приложение не будет запущено; Если, конечно, что-то не отправляет намерение, инициирующее действие, с какого-либо другого пути, чем тот, который контролируется вашим приложением, – например, используя команду «am» в оболочке Android вашего целевого приложения.

По звуку вашего вопроса вы хотите создать свою собственную сборку ОС Android. Это будет более активное участие, чем разработка обычных приложений для Android, и поэтому вам придется много читать, особенно исходный код ОС Android.

Я рекомендую вам начать работу в Android Open Source Project .

Посмотрите на источник для системы восстановления; Это альтернативная загрузочная среда, которая намного проще. Есть и сторонние версии с поддержкой сенсорного экрана.