Alias ​​de actividad en el manifiesto de Android

Cuando se crea un acceso directo al icono del lanzador, está vinculado estáticamente a la actividad exacta del lanzador. En el caso siguiente, el representante está directamente vinculado a SplashActivity

Lanzador inicial en el archivo AndroidManifest.xml

Al futuroaDebido a la necesidad de mejorar la organización de su código o implementar nuevas funciones, podría cambiar Nombre del componente desencadenar actividad para señalar alguna otra actividad.

El lanzador ha cambiado en el archivo AndroidManifest.xml

El lanzador cambió de SplashActivity en LoginActivity.

¿Cuál sería el comportamiento del representante?

Caso común: El icono se elimina de la pantalla de inicio del usuario, pero sigue estando visible en el cajón de la aplicación.
Otros casos: El icono permanece, pero el dispositivo dice que la aplicación no está instalada

A medida que cambien el nombre y la ubicación del archivo, el sistema operativo Android perderá y eliminará el enlace. Estos son efectos secundarios ocultos de exponer parte de la aplicación como una API pública. Para saber más, necesita comprender mejor el manifiesto.

A menudo pensamos solo packageName en el manifiesto es inmutable, pero sorprendentemente la función principal de AndroidManifest contribuye a declarar una API pública de su aplicación para ser utilizada por Android y otras aplicaciones.

Cada carpeta pública (android:exported=true) declarada en el manifiesto debe considerarse una API pública. Estos componentes nunca deben modificarse de ninguna manera que pueda comprometer la compatibilidad.

Atributo común android:name generalmente perjudica la compatibilidad. Este atributo es único, es decir, el identificador del componente de aplicación específico (Activity, Service, BroadcastReceivero ContentProvider).
Cambio android:name puede tener consecuencias negativas para los usuarios.

  • Si cambia el nombre de la actividad, cualquier acceso directo creado por el usuario basado en esta actividad ya no funcionará. Las abreviaturas están destinadas expresamente que se refiere directamente a Nombre del componente debería funcionar.
  • Si cambia el nombre del servicio de fondos de pantalla en vivo, el fondo de pantalla del usuario será valores predeterminados del sistema restaurado. Esto también se aplica a los métodos de entrada, los servicios de accesibilidad y los widgets de aplicaciones.
  • Si cambia el nombre del receptor del administrador de dispositivos, será el administrador del dispositivo prohibido.

Una intención explícita que se guardó anteriormente durante la creación de un acceso directo ahora no es válida porque el nombre del componente al que hace referencia ya no existe. Para resolver este problema, se crea un alias de actividad en el manifiesto y apunta a la clase de destino con targetActivity atributo.

Esto lo preservará Nombre del componente y se dirige a cualquier actividad deseada sin efectos secundarios.

Alias ​​de actividad en el manifiesto de Android

los targetActivity se puede cambiar a cualquier clase nueva, si es necesario, sin violar la intención explícita existente creada por la abreviatura.
Esto evitará que el usuario encuentre el atajo sorpresa que falta después de actualizar la aplicación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *