右击项目名称,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的完整过程。

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. Android(安卓)Studio 3.5中导入项目时关于Gradle错误的解决
  4. Android(安卓)Log系统介绍 (基于Android(安卓)N)
  5. golang开发android应用(二) - go语言生成android动态库
  6. 在Android(安卓)java代码中如何改变文件的权限
  7. 在Android(安卓)Stduio 中使用requestWindowFeature(Window.FEAT
  8. Android根文件系统分析
  9. 《Android学习指南》文件夹

随机推荐

  1. Android的Message机制(简单小结)
  2. Android之会员页面及进度条
  3. android 百度地图定位与覆盖物的添加,以及
  4. Android属性之build.prop,及property_get/
  5. Android读写XML(上)
  6. Android横竖屏切换不重新调用onCreate()
  7. 相对布局
  8. 【Android】数据存储之Network
  9. android:shape的使用
  10. android网络优化