安卓动态加载入门
这几周为了理解安卓动态加载技术算是花了不少时间,遇到很多坑,当然也学到了不少。一开始是学习 java 虚拟机,了解类文件格式,然后又在各种博客网站上看 dalvik 虚拟机和 dex 文件格式,了解安卓的类加载机制,到后来又去了解 art 虚拟机和 oat 文件格式。虽然有些地方没搞太清楚,学习的不够深入,但总算把动态加载的大概原理弄清了,也算是为之后更深入学习安卓动态加载以及热修复、热更新等技术打下基础吧。
AIDL 全称 Android Interface Definition Language,即 安卓接口描述语言。听起来很深奥,其实它的本质就是生成进程间通信接口的辅助工具。它的存在形式是一种 .aidl
文件,开发者需要做的就是在该文件中定义进程间通信的接口,编译的时候 IDE 就会根据我们的 .aidl
接口文件生成可供项目使用的 .java
文件,这和我们说的“语法糖”有些类似。
AIDL 的语法就是 java 的语法,就是导包上有点细微差别。java 中如果两个类在相同的包中,是不需要进行导包操作的,但是在 AIDL 中,则必须进行导包声明。
关于 RxJava 的文章网上有很多,这里只是个人的学习总结,阅读前需要对 RxJava 有一定的了解,并不能作为学习资料,如果想要入门这里有更好的选择:给 Android 开发者的 RxJava 详解(虽然版本有点久,很多 API 都已过时,但原理差不多,不影响理解)。