Básicamente, está tratando de tener una compilación personalizada de AOSP donde la "Casa" es su aplicación. Si nos fijamos en /packages/apps/Launcher2, encontrará el código para la pantalla de inicio predeterminada.
Si nos fijamos en el archivo AndroidManifest.xml allí, verá algo como esto:
<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, esto dice que esta actividad reacciona con el androide
.intent.category.HOME intento.
Cuando el sistema termina de arrancar (el ActivityManager más específicamente), envía esa intención. Por lo tanto, si desea que su aplicación se inicie en lugar del Iniciador, simplemente cree una aplicación con un filtro de intención similar y elimine el Launcher2 predeterminado (sacarlo de la lista en build/target/product/generic.mk y ponerlo el tuyo en su lugar). También asegúrese de que el archivo correspondiente .mk tiene algo como esto:
LOCAL_OVERRIDES_PACKAGES := Home
siempre y cuando su aplicación no proporciona una forma para que el usuario lanzar otras aplicaciones que utilizan iconos (como el lanzador hace), ninguna otra aplicación se iniciará; a menos que, por supuesto, algo envíe un intento de inicio de actividad desde otra ruta diferente a la controlada por su aplicación, digamos usando el comando "am" en el shell de Android del objetivo.
¡qué gran respuesta! Obtuve más de esto que una lectura completa de doc. –
es 'Home' en' LOCAL_OVERRIDES_PACKAGES: = Home' la aplicación con la que está reemplazando Launcher2. –
Creo que 'Home' es el nombre del módulo del iniciador actual utilizado en AOSP. Puede ser que el viejo Android construya el módulo Home usado para eso, hoy en día es Launcher2. Por lo tanto, se deben usar 'LOCAL_OVERRIDES_PACKAGES: = Launcher3', o incluso' LOCAL_OVERRIDES_PACKAGES: = Launcher2 Launcher3'. Cyanogenmod 12 usa Trebuchet launcher, por lo que para CM build usaría 'LOCAL_OVERRIDES_PACKAGES: = Launcher3 Trebuchet' – Mixaz