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节点:

 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的完整过程。

时间: 2024-10-12 23:41:00

android菜鸟学习笔记16----Android项目打包安装过程(Run as Android Application)的相关文章

android菜鸟学习笔记21----ContentProvider(一)ContentProvider的简单使用

ContentProvider是Android四大组件之一,它用来封装数据,并通过ContentResolver接口将数据提供给其他应用.只有当需要在多个应用之间共享数据时才会用到ContentProvider. 多个应用共享数据时,如何区分是哪个应用中的那部分数据呢? ContentProvider通过Uri标识具体某个应用的某些数据.当一个应用提供了ContentProvider向其他应用共享数据时,该应用在其ContentProvider中添加标识自己特定数据的Uri,然后其他应用想要获得

android菜鸟学习笔记7----android布局(二)

3.FrameLayout:帧布局 如同Flash或者photoshop中图层的概念,在上面的图层遮盖下面的图层,没被遮到的地方仍然显示出来. 右击res/layout,然后在弹出的菜单中选择new,然后选择Android Xml File,要新建FrameLayout布局文件,就选择FrameLayout作为其根节点即可.文件名为frame_layout.xml. 代码如下: 1 <?xml version="1.0" encoding="utf-8"?&g

android菜鸟学习笔记28----Android中的Service生命周期及本地和远程服务绑定的实现

Service是Android中长期在后台运行的没有界面的组件,使用服务的优势在于:能够提高进程的优先级,系统不容易回收掉进程,即便回收了,内存充足的时候,会把进程重新创建. 1.服务的简单使用示例: 1.1.定义一个服务: 定义一个服务的方式是定义一个类继承自Service: 1 public class MyService extends Service { 2 3 @Override 4 5 public IBinder onBind(Intent intent) { 6 7 // TOD

android菜鸟学习笔记24----与服务器端交互(一)使用HttpURLConnection和HttpClient请求服务端数据

主要是基于HTTP协议与服务端进行交互. 涉及到的类和接口有:URL.HttpURLConnection.HttpClient等 URL: 使用一个String类型的url构造一个URL对象,如: URL url = new URL(http://10.0.2.2/index.php); openConnection()方法返回一个对指定url的资源的连接.返回类型是URLConnection,但是,由于这里我们一般用的是http协议,所以返回的实际是HttpURLConnection对象,故一

android菜鸟学习笔记6----android布局(一)

Android应用的UI组件都是继承自View类,View类表示的就是一个空白的矩形区域.常用的组件如TextView.Button.EditText等都直接或间接继承自View. 此外,View还有一个重要的子类ViewGroup,该类可以用来包含多个View组件,本身也可以当做一个View组件被其他的ViewGroup所包含,由此,可以构建出非常复杂的UI界面. 常用的布局管理器如FrameLayout.LinearLayout.RelativeLayout等都直接继承自ViewGroup.

android菜鸟学习笔记26----Android广播消息及BroadcastReceiver

1.广播类型: Android中的广播有两种类型:标准广播和有序广播.其中,标准广播是完全异步发送的广播,发出之后,几乎所有的广播接收者都会在同一时刻收到这条广播消息,因而,这种类型的广播消息是不可拦截,不可修改的:而有序广播是一种同步发送的广播,广播发出后,只有优先级最高的广播接收者能够收到这条广播消息,它处理完自己的逻辑之后,广播才会向后继续传递给低优先级的广播接收者,因此,高优先级的广播接收者可以对广播消息进行拦截,修改操作. 2.接收系统广播: 要接收系统广播,就要有自己的广播接收者.定

android菜鸟学习笔记14----Android控件(三) ListView的简单使用

MVC模式: MVC的基本原理就是通过Controller连接View和Model.当View中所显示的数据发生变化时,会通知Controller,然后由Controller调用Model中的相关方法执行相应的数据修改操作.反之,当Model中的数据发生变化时,也会通知Controller,由Controller通知View更新显示内容.如此一来,就使得数据部分与视图部分相分离,任何一方发生改变都不会影响到另一方. 而在android中,MVC的一个常见应用就是ListView显示数据.V代表的

android菜鸟学习笔记7----Activity(一)

Activity是android应用程序中重要的组件之一,常听到的android四大组件是Activity.Service.BroadcastReceiver和ContentProvider.它间接继承自android.content.Context,因此,有些时候都直接把Activity实例当做Context的实例来使用. 如前面所提到的要在应用程序中使用Activity,必须在Android Manifest.xml中配置它. 新建一个Android工程,新建过程中勾选create acti

android菜鸟学习笔记1----环境搭建

Step1 JDK安装及配置: 1.下载并安装JDK: 根据自己系统情况,选择安装相应的JDK版本 当前系统:64位WIN8,内存8G 选择了Java SE 8u45 即JDK 1.8.0_45,可以体验JDK8的各种新特性 JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载完成后,双击JDK可执行文件,直接安装即可,安装过程中可以更改安装路径 我当前选择的安装路径:e:\software\j