android菜鸟学习笔记16----Android项目打包安装过程(Run as Android Application)
右击项目名称,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节点:
<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"> <sigs count="1"> <cert index="1" /> </sigs> <perms /> </package>
packages.list中多出下面一行:
cn.csc.launch_process 10049 1 /data/data/cn.csc.launch_process
以上,就是Run as Android Application的完整过程。
android菜鸟学习笔记16----Android项目打包安装过程(Run as Android Application)的更多相关文章
- android菜鸟学习笔记17----Android数据存储(一)文件读写
假如有如下需求,要求能够记录用户输入的用户名和密码,下次登录时,能直接获取之前保存的用户名密码,并在相应的EditText中显示. 要保存用户输入的数据,最先想到的应该就是文件读写了. 通过对andr ...
- android菜鸟学习笔记7----android布局(二)
3.FrameLayout:帧布局 如同Flash或者photoshop中图层的概念,在上面的图层遮盖下面的图层,没被遮到的地方仍然显示出来. 右击res/layout,然后在弹出的菜单中选择new, ...
- android菜鸟学习笔记15----Android Junit测试
Android中的Junit测试与Java Junit测试有所不同,不能简单的使用标注…… 假设写了一个MathUtils类,有两个静态方法: public class MathUtils { pub ...
- android菜鸟学习笔记2----关于adb
adb : android debug bridge android调试桥 路径:adt-bundle目录/sdk/platform-tools/adb.exe 常见的adb命令: adb devic ...
- android菜鸟学习笔记8----Activity(一)
Activity是android应用程序中重要的组件之一,常听到的android四大组件是Activity.Service.BroadcastReceiver和ContentProvider.它间接继 ...
- android菜鸟学习笔记1----环境搭建
Step1 JDK安装及配置: 1.下载并安装JDK: 根据自己系统情况,选择安装相应的JDK版本 当前系统:64位WIN8,内存8G 选择了Java SE 8u45 即JDK 1.8.0_45,可以 ...
- Android开发学习笔记-自定义组合控件的过程
自定义组合控件的过程 1.自定义一个View 一般来说,继承相对布局,或者线性布局 ViewGroup:2.实现父类的构造方法.一般来说,需要在构造方法里初始化自定义的布局文件:3.根据一些需要或者需 ...
- android菜鸟学习笔记4----android项目结构
src: 应用程序源代码存放目录 gen: 自动生成的目录,目录中存放所有由Android开发工具自动生成的文件. 目录中最重要的就是R.java文件. 这个文件由Android开发工具自动产生的.A ...
- android菜鸟学习笔记29----Android应用向用户发送提示信息的方式总结
常见的向用户发送提示信息的方式有3种,分别为: 1)发送Toast信息 2)弹出对话框 3)发送通知 总结如下: 方式1:发送Toast信息: 这种方式最简单,在之前的学习中多次使用过.Toast是在 ...
随机推荐
- 这一次,我连 web.xml 都不要了,纯 Java 搭建 SSM 环境!
在 Spring Boot 项目中,正常来说是不存在 XML 配置,这是因为 Spring Boot 不推荐使用 XML ,注意,并非不支持,Spring Boot 推荐开发者使用 Java 配置来搭 ...
- 体育成绩统计——20180801模拟赛T3
体育成绩统计 / Score 题目描述 正所谓“无体育,不清华”.为了更好地督促同学们进行体育锻炼,更加科学地对同学们进行评价,五道口体校的老师们在体育成绩的考核上可谓是煞费苦心.然而每到学期期末时, ...
- webpack常用配置项配置文件介绍
一.webpack基础 1.在项目中生成package.json:在项目根目录中输入npm init,根据提示输入相应信息.(也可以不生成package.json文件,但是package.json是很 ...
- 分布式配置中心介绍--Spring Cloud学习第六天(非原创)
文章大纲 一.分布式配置中心是什么二.配置基本实现三.Spring Cloud Config服务端配置细节(一)四.Spring Cloud Config服务端配置细节(二)五.Spring Clou ...
- 8 Most Required Examples Reference For Oracle Forms
Check the following 8 Links for best Oracle Forms examples with source code (Fmb files), which will ...
- C#调用C++Dll封装时遇到的一系列问题【转】
最近帮底层开发的同时用C#重新封装一下dll,也就是用C#类来封装C++Dll里的方法,以供用户使用. 之前也用到过类似的应用,大多数问题都出在类型转换上,但是这次的应用层出不穷,所以在这里总结一 ...
- openssl之BIO系列之9---BIO对的创建和应用
BIO对的创建和应用 ---依据openssl doc/crypto/bio/bio_new_bio_pair.pod翻译和自己的理解写成 (作者:DragonKing Mail:wzhah@263. ...
- 取消sudo的密码
终端输入sudo visudo,显示为以下内容: 我们只要修改其中的一点内容,就可以实现sudo不需要输入密码了 sudo su -chmod +w /etc/sudoersvim /etc/sudo ...
- LeetCode 206 Reverse Linked List(反转链表)(Linked List)(四步将递归改写成迭代)(*)
翻译 反转一个单链表. 原文 Reverse a singly linked list. 分析 我在草纸上以1,2,3,4为例.将这个链表的转换过程先用描绘了出来(当然了,自己画的肯定不如博客上面精致 ...
- Node.app让Nodejs平台在iOS和OS X系统上奔跑
首先呢,欢迎大家去查看相同内容的链接:http://www.livyfeel.com/nodeapp/. 由于那个平台我用的markdown语法,我也懒得改动了,就这样黏贴过来了. 这是一个惊人的恐怖 ...