Adroid动态加载Apk-插件化技术框架(动态代理方案)源码

上传者: JczmDeveloper | 上传时间: 2022-05-21 15:04:47 | 文件大小: 1.66MB | 文件类型: ZIP
Android动态加载Apk-插件化技术(动态代理方案) 一. 什么是插件化 1. 主App(宿主App)加载插件apk的实现 2. 每个业务组件模块形成一个独立的Apk, 然后通过主App动态加载部署业务组件模块Apk的一种方案 二.插件化的优点好处 1. 业务组件解耦,能够实现业务组件模块的热插拔 2. 更改产品迭代模式,可分为主App和次Apk(动态加载业务组件模块) 3. 改善产品更新过程,可以在不影响用户的情况下实现业务组件模块更新以及重要Bug修复 4. 减轻主App的内存和CPU占用,提高应用的性能. 三.插件化的思想 动态加载Apk的主要思想是:主App是被系统(PMS)安装,被系统(AMS)调用,整个过程都是由系统提供的,而插件Apk并非一个真正的Apk,只是一个打包成Apk的一个组件模块,因为它并非被系统安装调用.简言之,需要讲插件Apk看成一个”非Apk”文件,只是一个结构比较复杂的压缩打包成Apk格式的文件.调用插件即用某种特殊技术手段打开文件并执行其相关代码.

文件下载

资源详情

[{"title":"( 83 个子文件 1.66MB ) Adroid动态加载Apk-插件化技术框架(动态代理方案)源码","children":[{"title":"XCApkPlugin-master","children":[{"title":"screenshot","children":[{"title":"1.png <span style='color:#111;'> 66.52KB </span>","children":null,"spread":false},{"title":"图片1.png <span style='color:#111;'> 34.42KB </span>","children":null,"spread":false},{"title":"2.png <span style='color:#111;'> 41.97KB </span>","children":null,"spread":false},{"title":"3.png <span style='color:#111;'> 45.99KB </span>","children":null,"spread":false}],"spread":true},{"title":"gradlew.bat <span style='color:#111;'> 2.26KB </span>","children":null,"spread":false},{"title":"gradlew <span style='color:#111;'> 4.85KB </span>","children":null,"spread":false},{"title":"pluginlib","children":[{"title":"proguard-rules.pro <span style='color:#111;'> 751B </span>","children":null,"spread":false},{"title":"src","children":[{"title":"test","children":[{"title":"java","children":[{"title":"com","children":[{"title":"czm","children":[{"title":"pluginlib","children":[{"title":"ExampleUnitTest.java <span style='color:#111;'> 395B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"androidTest","children":[{"title":"java","children":[{"title":"com","children":[{"title":"czm","children":[{"title":"pluginlib","children":[{"title":"ExampleInstrumentedTest.java <span style='color:#111;'> 740B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"main","children":[{"title":"res","children":[{"title":"values","children":[{"title":"strings.xml <span style='color:#111;'> 72B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":"java","children":[{"title":"com","children":[{"title":"czm","children":[{"title":"pluginlib","children":[{"title":"IPlugin.java <span style='color:#111;'> 543B </span>","children":null,"spread":false},{"title":"XCPluginApk.java <span style='color:#111;'> 708B </span>","children":null,"spread":false},{"title":"XCProxyActivity.java <span style='color:#111;'> 2.04KB </span>","children":null,"spread":false},{"title":"XCPluginManager.java <span style='color:#111;'> 2.78KB </span>","children":null,"spread":false},{"title":"XCPluginActivity.java <span style='color:#111;'> 2.05KB </span>","children":null,"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true},{"title":"AndroidManifest.xml <span style='color:#111;'> 470B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":".gitignore <span style='color:#111;'> 7B </span>","children":null,"spread":false},{"title":"build.gradle <span style='color:#111;'> 808B </span>","children":null,"spread":false}],"spread":true},{"title":"gradle.properties <span style='color:#111;'> 730B </span>","children":null,"spread":false},{"title":"app","children":[{"title":"proguard-rules.pro <span style='color:#111;'> 751B </span>","children":null,"spread":false},{"title":"src","children":[{"title":"test","children":[{"title":"java","children":[{"title":"com","children":[{"title":"czm","children":[{"title":"xcapkplugin","children":[{"title":"ExampleUnitTest.java <span style='color:#111;'> 397B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"androidTest","children":[{"title":"java","children":[{"title":"com","children":[{"title":"czm","children":[{"title":"xcapkplugin","children":[{"title":"ExampleInstrumentedTest.java <span style='color:#111;'> 739B </span>","children":null,"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"main","children":[{"title":"res","children":[{"title":"mipmap-xxxhdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 9.03KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 15.16KB </span>","children":null,"spread":false}],"spread":true},{"title":"drawable","children":[{"title":"ic_launcher_background.xml <span style='color:#111;'> 5.47KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-hdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 2.98KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 4.91KB </span>","children":null,"spread":false}],"spread":false},{"title":"drawable-v24","children":[{"title":"ic_launcher_foreground.xml <span style='color:#111;'> 1.84KB </span>","children":null,"spread":false}],"spread":false},{"title":"values","children":[{"title":"colors.xml <span style='color:#111;'> 208B </span>","children":null,"spread":false},{"title":"strings.xml <span style='color:#111;'> 74B </span>","children":null,"spread":false},{"title":"styles.xml <span style='color:#111;'> 383B </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-xxhdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 6.31KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 10.43KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-mdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 2.05KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 2.79KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-xhdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 4.46KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 6.93KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-anydpi-v26","children":[{"title":"ic_launcher_round.xml <span style='color:#111;'> 272B </span>","children":null,"spread":false},{"title":"ic_launcher.xml <span style='color:#111;'> 272B </span>","children":null,"spread":false}],"spread":false},{"title":"layout","children":[{"title":"activity_main.xml <span style='color:#111;'> 970B </span>","children":null,"spread":false}],"spread":false}],"spread":true},{"title":"assets","children":[{"title":"plugin.apk <span style='color:#111;'> 1.54MB </span>","children":null,"spread":false}],"spread":true},{"title":"java","children":[{"title":"com","children":[{"title":"czm","children":[{"title":"xcapkplugin","children":[{"title":"MainActivity.java <span style='color:#111;'> 1.24KB </span>","children":null,"spread":false},{"title":"ApkHelpUtil.java <span style='color:#111;'> 1.77KB </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false},{"title":"AndroidManifest.xml <span style='color:#111;'> 713B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":".gitignore <span style='color:#111;'> 7B </span>","children":null,"spread":false},{"title":"build.gradle <span style='color:#111;'> 965B </span>","children":null,"spread":false}],"spread":true},{"title":"gradle","children":[{"title":"wrapper","children":[{"title":"gradle-wrapper.jar <span style='color:#111;'> 52.38KB </span>","children":null,"spread":false},{"title":"gradle-wrapper.properties <span style='color:#111;'> 230B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":".idea","children":[{"title":"gradle.xml <span style='color:#111;'> 736B </span>","children":null,"spread":false},{"title":"runConfigurations.xml <span style='color:#111;'> 564B </span>","children":null,"spread":false},{"title":"misc.xml <span style='color:#111;'> 1.59KB </span>","children":null,"spread":false},{"title":"modules.xml <span style='color:#111;'> 601B </span>","children":null,"spread":false}],"spread":true},{"title":"pluginapk","children":[{"title":"proguard-rules.pro <span style='color:#111;'> 751B </span>","children":null,"spread":false},{"title":"src","children":[{"title":"test","children":[{"title":"java","children":[{"title":"com","children":[{"title":"czm","children":[{"title":"pluginapk","children":[{"title":"ExampleUnitTest.java <span style='color:#111;'> 395B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":true}],"spread":true},{"title":"androidTest","children":[{"title":"java","children":[{"title":"com","children":[{"title":"czm","children":[{"title":"pluginapk","children":[{"title":"ExampleInstrumentedTest.java <span style='color:#111;'> 735B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":true},{"title":"main","children":[{"title":"res","children":[{"title":"mipmap-xxxhdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 9.03KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 15.16KB </span>","children":null,"spread":false}],"spread":false},{"title":"drawable","children":[{"title":"ic_launcher_background.xml <span style='color:#111;'> 5.47KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-hdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 2.98KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 4.91KB </span>","children":null,"spread":false}],"spread":false},{"title":"drawable-v24","children":[{"title":"ic_launcher_foreground.xml <span style='color:#111;'> 1.84KB </span>","children":null,"spread":false}],"spread":false},{"title":"values","children":[{"title":"colors.xml <span style='color:#111;'> 208B </span>","children":null,"spread":false},{"title":"strings.xml <span style='color:#111;'> 72B </span>","children":null,"spread":false},{"title":"styles.xml <span style='color:#111;'> 383B </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-xxhdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 6.31KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 10.43KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-mdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 2.05KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 2.79KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-xhdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 4.46KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 6.93KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-anydpi-v26","children":[{"title":"ic_launcher_round.xml <span style='color:#111;'> 272B </span>","children":null,"spread":false},{"title":"ic_launcher.xml <span style='color:#111;'> 272B </span>","children":null,"spread":false}],"spread":false},{"title":"layout","children":[{"title":"activity_plugin.xml <span style='color:#111;'> 568B </span>","children":null,"spread":false},{"title":"activity_main.xml <span style='color:#111;'> 786B </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"java","children":[{"title":"com","children":[{"title":"czm","children":[{"title":"pluginapk","children":[{"title":"PluginActivity.java <span style='color:#111;'> 373B </span>","children":null,"spread":false},{"title":"MainActivity.java <span style='color:#111;'> 330B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false},{"title":"AndroidManifest.xml <span style='color:#111;'> 711B </span>","children":null,"spread":false}],"spread":false}],"spread":true},{"title":".gitignore <span style='color:#111;'> 7B </span>","children":null,"spread":false},{"title":"build.gradle <span style='color:#111;'> 970B </span>","children":null,"spread":false}],"spread":true},{"title":".gitignore <span style='color:#111;'> 118B </span>","children":null,"spread":false},{"title":"README.md <span style='color:#111;'> 2.36KB </span>","children":null,"spread":false},{"title":"settings.gradle <span style='color:#111;'> 43B </span>","children":null,"spread":false},{"title":"build.gradle <span style='color:#111;'> 546B </span>","children":null,"spread":false}],"spread":false}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明