先看下helloWorld.apk文件解压后包含的文件。
I. 编译生成apk。
a. .dex文件,java文件编译的结果,.java->.class->.dex。
b. resources.arsc文:资源索引表件。
c. res:资源文件,包含编译过资源文件(如布局)和未编译文件(如图标图片等媒体文件)。
d. AndroidMenifest.xml:清单文件AndroidMenifest.xml文件转换成二进制.
e. META-INF,包含三个文件,MANIFEST.MF文件,其他目录文件的哈希值,CERT.SF文件包含其他目录的文件前三行的哈希值。CERT.RSA包含应用程序的签名文件,证书的公钥。
II. 加载apk
把apk文件加载到/data/local/tmp/目录下
III. 安装apk
a. 把/data/local/tmp/xxx.apk文件, 剪切/data/app/包名-1.apk
b. 在/data/data/文件夹下以包名创建一个文件夹, 用于存储当前程序的数据.
c. 在packages.xml和packages.list文件中分别添加一条记录.
packages.list(将应用程序和包名进行关联)
packages.xml(一些和apk相关的校验信息)