手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android源码基础解析之Android项目构建过程
Android源码基础解析之Android项目构建过程
摘要:平时开发过程中我们通过Androidstudio编写完成android项目之后直接点击Run‘app’就可以在build/outputs/a...

平时开发过程中我们通过Android studio编写完成android项目之后直接点击 Run ‘app’就可以在build/outputs/apk生成可以在android设备中安装的apk文件了,那么整个android源码的构建过程是怎么样的呢?

我们可以根据Google官方提供的流程图来具体了解构建的过程:

这里写图片描述

通常的构建过程就是如上图所示,下面是具体描述:

1.AAPT(Android Asset Packaging Tool)工具会打包应用中的资源文件,如AndroidManifest.xml、layout布局中的xml等,并将xml文件编译为二进制形式,当然assets文件夹中的文件不会被编译,图片及raw文件夹中的资源也会保持原来的形态,需要注意的是raw文件夹中的资源也会生成资源id。AAPT编译完成之后会生成R.Java文件。

2.AIDL工具会将所有的aidl接口转化为java接口。

3.所有的java代码,包括R.java与aidl文件都会被Java编译器编译成.class文件。

4.Dex工具会将上述产生的.class文件及第三库及其他.class文件编译成.dex文件(dex文件是Dalvik虚拟机可以执行的格式),dex文件最终会被打包进APK文件。

5.ApkBuilder工具会将编译过的资源及未编译过的资源(如图片等)以及.dex文件打包成APK文件。

6.生成APK文件后,需要对其签名才可安装到设备,平时测试时会使用debug keystore,当正式发布应用时必须使用release版的keystore对应用进行签名。

7.如果对APK正式签名,还需要使用zipalign工具对APK进行对齐操作,这样做的好处是当应用运行时会提高速度,但是相应的会增加内存的开销。

本文以同步至github中:https://github.com/yipianfengye/androidSource,欢迎star和follow

(function () { ('pre.prettyprint code').each(function () { var lines = (this).text().split(′n′).length;var numbering = $(' ').addClass('pre-numbering').hide(); (this).addClass(′has−numbering′).parent().append( numbering); for (i = 1; i

转载自:http://blog.csdn.net/qq_23547831/article/details/50634435

平时开发过程中我们通过Android studio编写完成android项目之后直接点击 Run ‘app’就可以在build/outputs/apk生成可以在android设备中安装的apk文件了,那么整个android源码的构建过程是怎么样的呢?

我们可以根据Google官方提供的流程图来具体了解构建的过程:

这里写图片描述

通常的构建过程就是如上图所示,下面是具体描述:

1.AAPT(Android Asset Packaging Tool)工具会打包应用中的资源文件,如AndroidManifest.xml、layout布局中的xml等,并将xml文件编译为二进制形式,当然assets文件夹中的文件不会被编译,图片及raw文件夹中的资源也会保持原来的形态,需要注意的是raw文件夹中的资源也会生成资源id。AAPT编译完成之后会生成R.Java文件。

2.AIDL工具会将所有的aidl接口转化为java接口。

3.所有的java代码,包括R.java与aidl文件都会被Java编译器编译成.class文件。

4.Dex工具会将上述产生的.class文件及第三库及其他.class文件编译成.dex文件(dex文件是Dalvik虚拟机可以执行的格式),dex文件最终会被打包进APK文件。

5.ApkBuilder工具会将编译过的资源及未编译过的资源(如图片等)以及.dex文件打包成APK文件。

6.生成APK文件后,需要对其签名才可安装到设备,平时测试时会使用debug keystore,当正式发布应用时必须使用release版的keystore对应用进行签名。

7.如果对APK正式签名,还需要使用zipalign工具对APK进行对齐操作,这样做的好处是当应用运行时会提高速度,但是相应的会增加内存的开销。


(function () { ('pre.prettyprint code').each(function () { var lines = (this).text().split(′n′).length;var numbering = $(' ').addClass('pre-numbering').hide(); (this).addClass(′has−numbering′).parent().append( numbering); for (i = 1; i

【Android源码基础解析之Android项目构建过程】相关文章:

android控件之WebView控件缩小

Android生存指南之:开发中的注意事项

Android控件系列之Button以及Android监听器使用介绍

Android源码中的目录结构详解

Android笔记之:深入ViewStub的应用

Android无视屏幕解锁保护界面破解

Android工程:引用另一个Android工程的方法详解

Android开发之选项组件

创建你的第一个Android项目

Android的文本和输入之创建输入法教程

精品推荐
分类导航