右击项目名称,Run as Android Appication之后,Android项目打包安装过程:
1.打包生成.apk文件:
1)把源码中的.java文件编译生成.class文件
2)将所有的.class文件通过dex.bat生成为classes.dex文件
3)生成资源索引表文件 resources.ap_
4)将项目的配置文件Manifest.xml转换为二进制文件
5)使用debug.keystore对整个项目进行打包签名,如果有配置ANDROID_SDK_HOME这个环境变量来存放模拟器的话,debug.keystore就在该目录的.android目录下。若没有配置,一般放在了C:\Users\用户名\.android目录下。
2.将生成的.apk文件加载到模拟器中:
默认放置到/data/local/tmp中
3.安装加载到模拟器中的apk文件:
1)把/data/local/tmp/xxx.apk文件,剪切到/data/app/目录下,并重命名一般是变为XXX-1.apk或者XXX-2.apk
2)在/data/data/文件夹下以包名创建一个文件夹, 用于存储当前程序的数据
3)在/data/system/packages.xml和/data/system/packages.list文件中分别添加一条记录,以便于系统管理该应用。
查看具体过程,可以通过新建一个项目,然后Run as Android Application来查看,如下:
新建一个android项目,名为011launch_process:
注意到,此时bin下面只有一个res目录,而res此时也是空的
此时打开File Explorer视图:(window ->show view->other中找到)
注意/data/local/tmp目录,此时为空
然后右击项目名称,Run as Android Application:
此时,bin目录中多出了很多文件
而且,如果注意观察/data/local/tmp目录,会发现多出来一个文件,然后又消失了
然后进入到/data/app/,会发现这个目录下多出了一个文件,然后一直都存在着。
而且,/data/data/下多出了一个与项目包名相同的目录
将/data/system/packages.xml和/data/system/packages.list导出,然后查看内容:
packages.xml中多出下面package节点:
1 <package name="cn.csc.launch_process" codePath="/data/app/cn.csc.launch_process-1.apk" nativeLibraryPath="/data/data/cn.csc.launch_process/lib" flags="0" ft="14e6b736328" it="14e6b737636" ut="14e6b737636" version="1" userId="10049"> 2 3 <sigs count="1"> 4 5 <cert index="1" /> 6 7 </sigs> 8 9 <perms /> 10 11 </package>
packages.list中多出下面一行:
cn.csc.launch_process 10049 1 /data/data/cn.csc.launch_process
以上,就是Run as Android Application的完整过程。