android 插件化
文章平均质量分 82
Android插件化的实现过程,解析 Resource加载,so库,dex文件加载,启动插件化中四大组件。
新根
汗水凝结成时光胶囊,独自在这命运里拓荒
展开
-
android插件化之BrocastReceiver
实现BrocastReceiver的插件之前,先来了解一下应用程序是如何被解析AndroidManifest.xml中各种标签的。先来了解一下应用程序安装过程系统启动过程中,会扫描某些目录的程序,安装加载过程,为应用程序分配Linux的用户Id和Linux的用户组Id,也会解析程序。先来看下scanPackageLI(): private PackageParser.Package sc...原创 2019-07-25 11:42:46 · 456 阅读 · 0 评论 -
Android插件化之ContentProvider
先来了解一下ContentProvider的安装和获取过程,查找Hook点。安装ContentProvider过程:应用程序在创建Application的过程中,执行handleBindApplication(),会将contentprovider进行安装。ActivityThreadprivate void handleBindApplication(AppBindData data) ...原创 2019-07-24 11:49:18 · 915 阅读 · 1 评论 -
Android插件化之动态替换Application
先分析Application的创建过程和生命周期,从而对症下药,达到动态替换Application的效果。先来了解一下Application的创建过程。启动应用进程后,会通知AMS,最终回到ActivityThread中的Handler处理,H.BIND_APPLICATION标识对应的动作,去开始创建Application对象。Handler中回调处理:private class H e...原创 2019-07-23 11:41:37 · 1950 阅读 · 1 评论 -
Android插件化之宿主PathClasssLoader加载插件Dex(合并式方案)
Android插件化之ClassLoader加载插件Dex方案目前盛行的插件化方案中处理dex,有两种:合并式的Dex,单个ClassLoader加载方案多个ClassLoader加载dex方案这里介绍,合并式dex的单个ClassLoader加载方案。合并式的Dex加载方案android 7.0 Framework 中Dex加载源码追踪从Activity中获取ClassLoad...原创 2019-06-28 14:48:42 · 1466 阅读 · 0 评论 -
Android插件化 Hook方式解决DialogFragment旋转问题
前言: android插件化是这几年比较流行的技术,可以实现热更新,可以动态某些某块工程。使用插件化开发项目的时候,插件项目中创建了一个DialogFramgent子类。 当屏幕旋转后,重新创建fragment,报错:Caused by: android.app.Fragment$InstantiationException: Unable to instantiate fra...原创 2018-06-09 21:17:44 · 1117 阅读 · 0 评论 -
Android插件化之DexClasssLoader动态加载apk(Java代码和资源文件)
DexClassLoader介绍: DexClassLoader可以载入一个含有classes.dex文件的压缩包,可以是jar,可以是apk,也可以是含有dex文件的zip。构造器DexClassLoader(String dexPath, String optimizedDirectory, String libraryPath, ClassLoader parent)de...原创 2018-06-03 12:25:58 · 8732 阅读 · 0 评论