3. Android程序生成步骤

主要流程如下图所示:

所需要的工具列表

名称 功能介绍 在操作系统中的路径
aapt Android资源打包工具 ${ANDROID_SDK_HOME}/platform-tools/appt
aidl Android接口描述语言转化为.java文件的工具 ${ANDROID_SDK_HOME}/platform-tools/aidl
javac Java Compiler ${JDK_HOME}/javac或/usr/bin/javac
dex 转化.class文件为Davik VM能识别的.dex文件 ${ANDROID_SDK_HOME}/platform-tools/dx
apkbuilder 生成apk包 ${ANDROID_SDK_HOME}/tools/opkbuilder
jarsigner .jar文件的签名工具 ${JDK_HOME}/jarsigner或/usr/bin/jarsigner
zipalign 字节码对齐工具 ${ANDROID_SDK_HOME}/tools/zipalign

第一步:打包资源文件,生成R.java文件

【输入】Resource文件(就是工程中res中的文件)、

Assets文件(相当于另外一种资源,这种资源Android系统并不像对res中的文件那样优化它)、

AndroidManifest.xml文件(包名就是从这里读取的,因为生成R.java文件需要包名)、Android基础类库(Android.jar文件)

【输出】打包好的资源(一般在Android工程的bin目录可以看到一个叫resources.ap_的文件就是它了)、

R.java文件(在gen目录中,大家应该很熟悉了)

【工具】aapt工具,它的路径在${ANDROID_SDK_HOME}/platform-tools/aapt

(如果你使用的是Windows系统,按惯例路径应该这样写:%ANDROID_SDK_HOME%\platform-tools\aapt.exe,下同)。

第二步:处理AIDL文件,生成对应的.java文件(当然,有很多工程没有用到AIDL,那这个过程就可以省了)

【输入】源码文件、aidl文件、framework.aidl文件

【输出】对应的.java文件

【工具】aidl工具

第三步:编译Java文件,生成对应的.class文件

【输入】源码文件(包括R.java和AIDL生成的.java文件)、库文件(.jar文件)

【输出】.class文件

【工具】javac工具

第四步:把.class文件转化成Davik VM支持的.dex文件

【输入】 .class文件(包括Aidl生成.class文件,R生成的.class文件,源文件生成的.class文件),库文件(.jar文件)

【输出】.dex文件

【工具】javac工具

第五步:打包生成未签名的.apk文件

【输入】打包后的资源文件、打包后类文件(.dex文件)、libs文件(包括.so文件,当然很多工程都没有这样的文件,如果你不使用C/C++开发的话)

【输出】未签名的.apk文件

【工具】apkbuilder工具

第六步:对未签名.apk文件进行签名

【输入】未签名的.apk文件

【输出】签名的.apk文件

【工具】jarsigner

第七步:对签名后的.apk文件进行对齐处理(不进行对齐处理是不能发布到Google Market的)

【输入】签名后的.apk文件

【输出】对齐后的.apk文件

【工具】zipalign工具

知道了这些细节之后,我们就可以实现很多我们想实现东西了,比如:自动化,我们可以使用某种脚本,像Windows下的批处理,linux下的Bash,Java下的Ant,Python、Perl这样的脚本语言,甚至直接用Java、.net这们的强类型语言也是可以的。如果你真正弄懂了上面的步骤,了解了编译打包过程的本质,你完全可以以你想要的任何方式实现它的自动化,这才是真正的“举一反三,以不变应万变”。再比如,对Android SDK的精简,大家知道,现在Android SDK动辙几百兆,我们完全可以应用上面的知识,只保留必要的工具,把SDK精简到10M以下。当然,还可以做很多事情

来自为知笔记(Wiz)

时间: 2024-10-10 18:18:56

3. Android程序生成步骤的相关文章

Android的步骤

1.开发Activity步骤 第一步:写一个类继承Activity 第二步:重写oncreate方法 第三步:在主配置文件中注册activity <activity android:name=".类名" android:label="@string/app_name"> <intent-filter> <!--app的入口--> <action android:name="android.intent.action

cocos2d-lua 3.5 android搭建步骤

如何安装eclipse,jdk,android sdk,ndk这里都不说了,资料很多,而且以前用eclipse搭建cocos2d-x-c++的时候,步骤都一样.这里说说和cocos2d-x不一样的地方.这里说的都是目前cocos2d系列最新版本,cocos2dx为3.7 cocos2d-lua为quick-3.5 步骤一:去官网把quick-3.5下载下来,然后在根目录下运行下 setup.py,他会生成android需要的环境变量 步骤二:创建新项目. cd进入C:\quick-3.5\too

ShareSDK实现第三方登录(Android实现步骤)

在进入主题之前,我想先解释一下什么是“第三方登录”.所谓的第三方登录,就是利用用户在第三方平台上已有的账号来快速完成自己应用的登录或者注册的功能.而这里的第三方平台,一般是已经有大量用户的平台,如国内的新浪微博.QQ空间,外国的Facebook.twitter等等.第三方登录不是一个具体的接口,而是一种思想或者一套步骤. 要实现第三方登录,首先你需要选择一个第三方平台.新浪微博和QQ空间都是好的选择,这些平台拥有大量的用户,而且还开放了API,供我们调用接入.但是同样开放API,微信却不是一个好

android 自定义控件步骤

1.写一个类继承View或你想扩展功能的控件(比如TextView). public class CustomView extends View { }; 2.在/res/value下创建一个attr.xml文件.没有这个文件自定义控件照样能显示出来,但只能使用所继承的父类中包含的属性,有了这个文件可以增加自定义的命名空间,来设置自定义的属性(其中format可选值见文尾)(大家看到这里可能觉得很突兀,坚持看完,相信你会明白这里的!)<?xml version="1.0" enc

Eclipse迁移到Android studio步骤如下:

一.从Eclipse中导出:1.将你的ADT插件版本升级到22.0以上.2.在Eclipse中,选择File-->Export.3.在弹出的导出窗口中,打开Android的文件夹,选择“Generate Gradle Build Files”.4.选中你想要导入到Android Studio中的项目,Finish. 注意:导出的项目将会和原来的项目在同一目录,覆盖原来的同时,会新增一个叫build.gradle的文件,导入Android Studio时将首先读取这个文件. 二.导入到Androi

从零开始学Xamarin.Forms(四) Android 准备步骤(添加第三方Xamarin.Forms.Labs库)

 1.安装对应dll Update-Package Xamarin.Forms 选中Android项目及PCL项目:Install-Package Xamarin.Forms.Labs 2.设置系统相关信息,右键android项目-属性 3.设置应用的名称 4.在MainActivity设置IOC 添加变量:private static bool _initialized; 修改MainActivity集成自:XFormsApplicationDroid 添加方法: private void

记录下我学习android的步骤

ListView使用 ActionBar导航 基于ListView的下拉刷新和点击加载更多 制作左滑菜单 制作模仿微信的Tab,用layout .ViewPager.Fragment实现 AsynTask异步加载和网络通信框架Volley 制作类似新浪微博的简易APP 制作简易视频播放器 三个月内的任务

Android系统源代码目录结构 “Android源代码”“目录结构”

在讲述Android源码编译的三个步骤之前,将先介绍Android源码目录结构,以便读者理清Android编译系统核心代码在Android源代码的位置. Android源代码顶层目录结构如下所示: ├──abi #应用二进制接口,不同的操作系统,应用二进制接口不同,因此linux上的二进制可执行文件在windows上无法执行 ├──android #存放了一些xml文件,用于描述工程路径及其对应的远程仓库地址,repo工具将使用这些信息同步代码 ├──bionic #bionic C库,Andr

(Android UI)Action Bar

Action Bar 指明用户当前所在的界面,添加多个功能性按键和下拉式选择框,以提供能多功能. 主题一:让应用具备ActionBar 可能条件一:Support Android 3.0(API 11) and Above Only 步骤一:在<Application>标签中指明theme属性值,android:theme="@android:style/Theme.Hole",即可让应用具备ActionBar <application android:name=&q