https://blog.csdn.net/u012999651/article/details/93881387?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158358987219724845019572%2522%252C%2522scm%2522%253A%252220140713.130056874…%2522%257D&request_id=158358987219724845019572&biz_id=0&utm_source=distribute.pc_search_result.none-task

原因:

解耦,方便维护
加快编译
动态更新,无需下载与安装整个app,可以单独下载apk插件
模块定制,需要什么,下载什么

详情:

插件化:加载本地不存在的外部可执行文件。
两种:
1.动态加载so库(其实可以放在外部存储,我们常用的是放在内部存储)
2.classloader动态加载外部可执行文件,如dex,jar,apk

动态加载:

  1. 简单动态加载,逻辑sdk,登录注册界面等等。
  2. 静态代理Activity,使用插件的activity,实际使用的是host的activity,需要解决两个问题:
    ①生命周期,提前在host中注册好activity,然后拿到插件的activity的引用(两种方式,通过反射,再接口化;通过接口调用),在各个生命周期方法同步调用
    ②R资源
    反射拿到AssertManager,调用addAssertPath,得到Resourse资源对象。
  3. 动态注册Activity

https://blog.csdn.net/micotale/article/details/88962682?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158372465819726867829400%2522%252C%2522scm%2522%253A%252220140713.130056874…%2522%257D&request_id=158372465819726867829400&biz_id=0&utm_source=distribute.pc_search_result.none-task

更多相关文章

  1. Android实现动态切换横竖屏,保存横竖屏数据(用Preference存储)
  2. Android(安卓)studio安装Genymotion插件
  3. android获取屏幕分辨率
  4. Android(安卓)动态设置全屏,退出全屏
  5. MUI调用自定义插件(Android)
  6. android edittxet 设置可点击不可编辑状态
  7. [置顶] 我的Android进阶之旅------>android异步加载图片显示,并且
  8. android和html交互--动态注入方法
  9. 从头开始学Android—Android(安卓)Studio(二)

随机推荐

  1. 知乎关注达1万,总阅读破百万,记录与分享带
  2. 50题matplotlib从入门到精通
  3. 神器 | JupyterLab,极其强大的下一代noteb
  4. VS2019学生版的下载安装并使用
  5. java 读取 application配置文件
  6. Centos8基础,Yum软件包管理
  7. 知乎千赞回答 | 为什么自学python看不进
  8. 一不小心,我爬取了100万条微博评论
  9. 15款好用到爆炸的Jupyter Lab插件
  10. Python地图可视化三大秘密武器