Recomplementar
En primer lugar, las principales ventajas de RePlugin
1. Muy flexible: no es necesario que el programa principal sea actualizado en el mercado de Android y admite cuatro componentes principales
2. Extremadamente estable: solo hay un punto de enlace (classLoader) y la tasa de fallas es inferior a una diezmilésima
3 La compatibilidad con la biblioteca de primera generación es mucho mejor que la de la biblioteca de primera generación, casi cubre todo el contenido de la biblioteca de primera generación
4. La compatibilidad con la biblioteca de primera generación es. mucho mejor que la de la biblioteca de primera generación, cubriendo casi todo el contenido de la biblioteca de primera generación
5. La compatibilidad con la biblioteca de primera generación es mucho mejor que la de la biblioteca de primera generación , que cubre casi todo el contenido de la biblioteca de primera generación.
6. La compatibilidad con la biblioteca de primera generación es mucho mejor que la de la biblioteca de primera generación. La biblioteca es un gran recordatorio, que cubre. casi todo el contenido de la biblioteca de primera generación
7.4.4 y versiones superiores del sistema Android
2. Eso es todo el cliché, hablemos de la tecnología central
p>p>
1. classLoader divide los dos delegados principales (classLoader carga la clase primero para ver si el cargador de clases principal está cargado, recursivamente, si no, hasta que el cargador de clases raíz no se haya cargado), y luego lo carga solo. (La clase de carga del cargador de clases primero verifica si el cargador de clases principal se ha cargado y continúa de forma recursiva. Si no se ha cargado hasta el cargador de clases raíz, se carga solo). El cargador de clases utilizado por el host es en realidad el cargador de clases de ruta, y el cargador de clases dex utilizado por el El complemento carga apk o dex externo. Después de cargar, busque los cuatro componentes principales del complemento que se llamarán desde la colección correspondiente al PluginContainer. Debido a que el complemento es externo al apk del host, solo puede extender dexclassLoader para cargar los cuatro componentes principales correspondientes. complemento. El host y el complemento tienen una relación paralela. El anfitrión se dio algunos hermanos, y estos hermanos lo ayudaron a cargar los cuatro componentes principales que no pertenecían al anfitrión. Sólo hay un punto de enlace (ClassLoader).
2. ¿Utiliza startActivity?
Para iniciar la actividad del complemento, puede comenzar desde RePlugin.startActivity ha pasado por Factory y PmLocalImpl. la lógica de inicio en realidad está principalmente en PmInternalImpl. La clave es loadPluginActivity, donde obtiene el pozo correspondiente al complemento, luego guarda la información de la actividad de destino e inicia el pozo a través del sistema. Debido a que ClassLoader ha sido enganchado, la actividad de destino se carga en loadClass. El problema de la carga es omitir la actividad de destino (actividad en el complemento) abierta por el sistema.
Puede resultar útil comprender lo siguiente:
RepluginActivity --gt; Factory.startActivity --gt; PmlLocalImp.startActivity --gt; PmlInternalImpl.startActivity
--gt; ;actividad de inicio del sistema host --gt; pluginActivty, etc. --gt; PmlInternalImpl de nuevo en el host PmBase