APK文件结构
文件结构
assets文件用来存放需要打包到Android 应用程序的静态资源文件,例如图片资源文件,JSON配置文件,渠道配置文件,二进制数据文件,HTML5离线资源文件等
与res/raw目录不同的数,assets目录支持任意深度的子目录,同时该目录下面的文件不会生成资源ID
lib文件夹代表的是当前app所用得到的so文件,so文件就是利用底层c,c++代码实现的
META-INF文件就是所用到的证书签名文件MANIFEST.MF
res文件夹该目录存放应用的资源文件,包括图片资源,字符串资源,颜色资源,尺寸资源,这个目录下面的资源都会出现在资源清单文件R.java的索引中
AndroidManifest.xml:Android项目的系统清单文件,Android应用的四大组件均在此配置和声明
classes.dex:应用程序的可执行文件,可以看到此APP有多个dex,是因为当前的方法数超过65535,进行了分包处理。如果未超过,则只有一个dex。Android的所有代码都几种在此,可以用反编译工具dex2jar转化成jar包,再通过jd-gui查看其代码
resource.arsc:资源索引表
apk安装流程
system/app 系统自带的应用程序,获得adb root权限才能删除
data/app 用户程序安装的目录,安装时把apk文件复制到此目录
data/data 存放应用程序的数据
data/dalvik-cache 将apk中的dex文件安装到dalvik-cache目录下(dex文件是dalvik虚拟机的可执行文件,其大小约为apk文件大小的四分之一)
安装过程
复制APK安装包到data/app目录下,解压并扫描安装包,把apk文件(Dalvik字节码)保存到dalvik-cache目录,并data/data目录下创建对应的应用数据目录。
安装
复制APK安装包到data/app目录下,解压并扫描安装包,把dex文件保存到data/dalvik-cache目录,并在data/data目录下创建对应的应用数据目录
卸载
删除安装过程中在上述三个目录下创建的文件及目录