安卓历史版本
Android 4.4以前,采用dalvik/dvm虚拟机 libdvm.so
Android 4.4,里面有dvm和art虚拟机,可以切换 libdvm.so libart.so
Android 5.0及以后,使用art虚拟机,Android系统也可以分32位和64位
APK基本结构
assets 资源文件(图片、音频、数据库、网页、配置文件等)
res 资源文件,需要编译(布局)
lib 各种平台下使用的对应的so文件
META-INF 签名文件(apk必须签名后才可以安装)
resources.arsc 资源加密(比如:语言包)
AndroidManifest.xml 清单文件(图片、界面、权限、入口)
classes.dex 源代码
data/data目录
存放用户apk数据的目录,每个apk都有自己的目录,以包名命名。
就是在data/data目录下,会产生一个跟Package一样的目录。
这是一个私有目录,app只能访问各自的目录,除非root权限。
data/app目录
用户安装的app存放在这个目录下,其中的base.apk一般就是原安装包
data/local/tmp目录
临时目录,权限比较大。
system/app目录
存放系统自带的app。
system/lib目录、system/lib64目录
存放app用到的so文件。
system/lib下面是用来支持32位应用需要的so文件
system/lib64下面是用来支持64位应用需要的so文件
system/bin目录
存放shell命令。
system/framework目录
Android系统所用到的框架,如一些jar文件,XposedBridge.jar。
sdcard目录
不管手机有没有sd卡都有这个目录。
权限比较大,但是app操作sd卡需要申请权限。
/sdcard - > /storage/self/primary
/mnt/sdcard
/storage/emulated/0
浙公网安备 33010602011771号