Android扫盲

Android历史版本

Android 4.4以前,采用dalvik/dvm虚拟机 libdvm.so

Android 4.4,里面又dvm和art虚拟机,可以切换 libdvm.so libart.so

Android 5.0及以后,使用art虚拟机,Android系统也可以分32位和64位

apk基本结构

apk的实质是按一定规范打包的zip压缩包。

1
2
3
4
5
6
7
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存放在这个目录下。

data/local/tmp目录

临时目录,权限比较大。

system/app目录

存放系统自带的app。

system/lib目录、system/lib64目录

存放app用到的so文件。

system/bin目录

存放shell命令。

system/framework目录

Android系统所用到的框架,如一些jar文件,XposedBridge.jar。

sd卡目录

不管手机有没有sd卡都有这个目录。

权限比较大,但是app操作sd卡需要申请权限。

/sdcard - > /storage/self/primary

/mnt/sdcard

/storage/emulated/0