Android插件和热修复
按照项目迭代方式,演示插件式&模块化的android应用开发流程;分解并体系化说明用到的:java类加载、java反射,android odex加载,android类加载的机制和开发实现;并开发完整项目源码。
架构师训练营
惟日孜孜 无敢逸豫
展开
-
Android 插件开发之七:插件开发:Dex文件动态加载(应用场景:后台更新Apk插件功能)
TODO原创 2019-04-03 23:56:39 · 274 阅读 · 0 评论 -
Android 插件开发之六:插件开发:View 的跨进程传递(应用场景:广告位)
热加载第三方应用的View,实现动态修改宿主应用这里是Demo,也就是前期的技术预言,所以不需要做一个完整的项目。要点:能够加载到第三方apk里面的View,并且显示出来,同时可以操作,进行数据交互。- 有宿主,和第三方APK- 第三方apk已经安装,所在目录是/system/app/- 能够进行数据交互,除了简单的点击以外,还可以进行复杂的操作。实现过程创建一个宿主项目...原创 2019-04-03 23:54:41 · 783 阅读 · 0 评论 -
Android 插件开发之五:技术准备3:Java反射机制
一、获得Class对象Class<?> c = Class.forName("classname"); 抛出ClassNotFoundException二、获得实现接口Class<?> inters[] = c.getInterfaces();for(int i=0;i<inters.length;i++){ System.out.prin...原创 2019-04-02 00:11:43 · 140 阅读 · 0 评论 -
Android 插件开发之四:技术准备2:Java类加载+ 双亲委派模型+Android类加载器
类加载器Java虚拟机类加载过程是把Class类文件加载到内存,并对Class文件中的数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型的过程。在加载阶段,java虚拟机需要完成以下3件事:a.通过一个类的全限定名来获取定义此类的二进制字节流。b.将定义类的二进制字节流所代表的静态存储结构转换为方法区的运行时数据结构。c.在java堆中生成一个代表该类的...原创 2019-04-02 00:05:00 · 279 阅读 · 0 评论 -
Android 插件开发之三:技术准备1:apk打包+dex加载+资源文件加载+框架Demo
app打包过程首先我们来了解一下插件化实现的原理,由于插件化原理涵盖内容太多这里只是介绍一下核心内容;我们了解一下app打包过程。请看下图:上面是android打包形成apk的一个过程,可以发现android开发主要的部分是整合编译代码、整合编译资源,然后就是安全签名保证apk完整性。我们再看一张图:#####上面是一个apk解压之后的文件,可以看出,里面几个比较重要的部分:...原创 2019-03-31 17:02:33 · 655 阅读 · 0 评论 -
Android 插件开发之二:组件开发:组件框架选型+组件间通信+组件依赖
在Android SDK一文中,我们谈到模块化和组件化,现在我们来聊聊组件化开发背后的哪些事.最早是在广告SDK中应用组件化,但是同样适用于普通应用开发以下高能,请做好心理准备,看不懂请发私信来交流.本文不推荐新手阅读,如果你刚接触Android开发不久,请立刻放弃阅读本文.模块化组件化不是个新概念,其在各行各业都一直备受重视.至于组件化什么时候在软件工程领域提出已经无从考究了,不...原创 2019-03-31 16:49:28 · 308 阅读 · 0 评论 -
Android 插件开发之一:概述:模块开发+组件开发+插件开发
架构:所谓架构,无非两个方面: 分层和通信方式。 其实广义的架构也可以说是这两个方面:子模块(子系统)划分和通信。子模块划分:除了大家公认的common部分, 业务模块的划分尤为重要,相比于狭义上的架构,广义上的子系统的划分的关注点,很考验技术经验以及对业务的理解。通信方式:模块化的通信方式,无非是相互引入;我抽取了common, 其他模块使用自然要引入这个module组件...原创 2019-03-30 23:14:30 · 287 阅读 · 0 评论