想进大厂,就关注「 程序亦非猿 」
时不时 8:38 推送优质文章,觉得有用,置顶加星标
Hi 大家好,接下去会有一个连载系列——聊聊 APK,共四篇文章,由我好基友 Gemini
老师提供。
导读
很多人可能不太明白 APK 有什么好聊的,我个人觉得,作为一名合格的 Android 开发,对于 APK 的简单认识一定要有。技术深度上大家的认知深度每天都在成长,如果我们每天都讨论方案却没有落地的话,对于每一个独立的人以及社区都是没有进步的,因此写了这一系列的文章,简单的介绍了下一个最简单的 APK 文件的组成,以及每个组成里面每一部分是怎么来的。
其实如果现在还把 APK 文件当作黑盒的话,我们对于编译时的产物能做的事情是非常少的,因为 Gradle 把这个繁杂的黑盒封装的特别好,你只会吐槽 Gradle 慢,卡,但是你不知道它到底做了多少事情,不过这的确不能成为它性能不好的借口。
APK 的组成有 Dex 文件
,资源
,资源表
和签名摘要信息等
四部分组成,这四部分是不可或缺的,不然任何一个 OS 都无法正常的运行你带 Activity 的 Android 应用。
《聊聊 APK —— 直接运行 Dex》以及 《聊聊 APK —— Dex 热修复与 Classpath》 这两篇文章会讲 Dex 文件的生成方式
以及如何在没有 APK 文件存在的情况下使用
。能帮助你理解字节码到 Dex 文件的简单转换,希望这篇文章能抛砖引玉,方便你以后加深对 Dex 文件的理解。
《聊聊 APK —— aapt 编译资源》这篇文章讲述了 aapt2 是如何编译资源文件
以及产生资源表
,我们在开发 Android Application 的时候,对于R.java
应该是再熟悉不过了,但是大部分人并不知道R.java
和资源之间的关系,甚至可能不知道