关于APK的一些知识点

2021-01-21  本文已影响0人  浩仔_Boy

自己学习笔记,仅供自己参考,如有不对欢迎指正

一、Android项目中都包含哪些资源?

资源文件大致分为三类

1、value文件资源

2、drawable文件资源

2、ColorStateList资源

根据状态改变drawable对象

二、apk打包流程

1.通过打包资源的工具是aapt,将资源文件生成R.java文件
2.通过aidl工具,处理aidl文件生成Java文件
3.编译项目源码,生成.class文件,放置位置在bin/classes下
4.通过dx文件将class和三方库library转换成dex文件
5.没有编译过的资源直接打包进app,应用层通过文件名获取资源
6.通过appbuilder工具,将dex文件和资源文件打包生成apk
7.对apk文件进行签名
8.对正式版apk进行对齐处理,主要实现是调整资源文件距离文件其实偏移4字节整倍数。起作用是内存映射访问apk文件速度更快,减少运行内存的使用

三、apk解压后都包含哪些资源

四、R文件打包后生成的文件是哪种?

R.java文件

五、Dex文件结构

六-Android为何会有65535的限制

我们的源码会被编译成.dex文件,每一个dex中代码可被调用的总数最大是65536。

可以设置对dex进行拆包,分为主dex包(classes.dex)和辅助dex包(classes2.dex 和 classes3.dex 等),所以推荐我们使用组件化,除了解耦业务逻辑,还能防止64k问题的发生。

七。Dalvik和ART的区别

Dalvik中,每次打开应用的时候,Dalvik会读取这个classes.dex并解释执行。
ART中,当你安装apk的时候,这个classes.dex文件就会被转换成本地机器码——后缀为oat的文件,以后打开应用时直接读取oat文件执行即可。
ART相对于Dalvik,执行效率更快,但是需要更多空间,apk的安装速度也变慢了。

上一篇 下一篇

猜你喜欢

热点阅读