从Android源码到apk——apk打包过程

Android程序是怎么从源码变成可以安装使用的apk的

原文链接http://sparkyuan.github.io/2016/04/01/从源码到APK/ ,转载请注明出处

流程

官方版

详细版

上面就是一个关于构建过程的一个典型的流程图。

  • aapt(Android Asset Packaging Tool)给你的Activity提供所需的资源文件,如 AndroidManifest.xml,XML文件,并编译它们。同时产生R.java文件,使你可以在java代码中引用这些资源。
  • aidl工具把.aidl接口转换成Java接口。
  • 你所有的Java代码,包括 R.java和 .aidl文件,由Java编译器和编译输出.class文件。
  • dex工具把.class文件转换成Dalvik字节文件,第三方的类和.class也被转换成.dex文件
  • 所有无法编译的资源(比如图片),编译好的资源文件和.dex都被送到apkbuilder工具中,生成最后的.apk
  • 生成.apk时必须制定是debug还是release,release还要提供相应的key
  • 如果选择release版本,还需要使用zipalign工具对apk对齐。齐处理即使得所有资源文件距离文件起始偏移为4字节的整数倍,这样通过内存映射访问apk文件时处理速度更快。

输出

生成的apk在app/build/outputs/apk/目录下,命名规则 app--.apk,例如,app-demo-debug.apk.

原文链接http://sparkyuan.github.io/2016/04/01/从源码到APK/ ,转载请注明出处

时间: 2024-11-05 16:01:32

从Android源码到apk——apk打包过程的相关文章

android源码编译到刷机过程2

0,vbox挂载共享 sudo mount -t vboxsf H /mnt/H/1,安装系统 配置: 内存 12G cpu 16个,峰值 95% 硬盘200G 分区:自动分区 2,配置环境,下载源码 sudo apt-get update sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i3

android源码编译到刷机过程1

0,vbox挂载共享 sudo mount -t vboxsf H /mnt/H/1,安装系统 配置: 内存 12G cpu 16个,峰值 95% 硬盘200G 分区:自动分区 2,配置环境,下载源码 sudo apt-get update sudo apt-get install git-core gnupg flex bison gperf build-essential \ zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i3

Android 源码分析-Dalvik 虚拟机创建过程

更多完整项目下载.未完待续.源码.图文知识后续上传github.可以点击关于我?联系我获取 一. 介绍Dalvik 1.java的运行需要JVM,同样android中使用了java语言,也需要一个VM.针对手机处理器和内存等硬件资源不足而推出来的一款VM,为android运行提供环境,叫DVM. 2.Dalvik虚拟机允许多个instance的存在.实际上android中的每一个app都是运行在自己VM实例之中(沙盒).每一个VM实例在linux中又是一个单独的进程,所以可以认为是同一个概念.运

Android源码——Activity组件的启动过程

根Activity启动过程 Launcher启动MainActivity的过程主要分为6个步骤: 一.Launcher向ActivityManagerService发送一个启动MainActivity的进程间通信请求: 二.ActivityManagerService首先将MainActivity的信息保存下来,再向Launcher组件发送一个进入中止状态的进程间通信请求: 三.Launcher进入中止状态后,向ActivityManagerService发送一个已经进入中止状态的进程间通信请求

Android源码编译过程

http://my.oschina.net/zhoulc/blog/170698 http://jingyan.baidu.com/article/c85b7a641200e0003bac95a3.html 注意: 1,不要使用64位ubuntu 2,务必分配4g或者以上的swap空间 系统定制基本流程:获取源码 --> 修改源码(包括修改和裁剪)--> 编译修改后的源码 --> 得到目标系统文件 --> 移植系统 --> 测试成功 --> 完成 一,源码下载 谷歌搜索

Android:源码环境下移植第三方的apk内置到ROM(System Image)中

1. 首先在vendor目录下新建一个the3rdapk的目录,将需要内置的apk丢进去,目录名自己随意定. 2. 在 build/target/product/common.mk最后面,在$(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk) 之前加入你的apk 第一部分是是本地apk的路径,/system/app/表示复制到system image的相关目录. 如果没有第二部分,则会出现以下编译错误: build/core/pro

2014年最新720多套Android源码2.0GB免费一次性打包下载

之前发过一个帖子,但是那个帖子有点问题我就重新发一个吧,下面的源码是我从今年3月份开始不断整理源码区和其他网站上的android源码,目前总共有720套左右,根据实现的功能被我分成了100多个类,总共2G多,还在不断更新安卓源码.初学者可以快速方便的找到自己想要的例子,大神也可以看一下别人的方法实现.虽然的例子都是我一个人辛辛苦苦花了很多时间和精力整理的,但是既然这些例子是来自于社区那就让他们免费回归社区吧,(是的!特么的不要一分钱!最看不起那些挂羊头卖狗的)你可以在本帖里面按Ctrl+F查找你

android源码大放送(实战开发必备),免费安卓demo源码,例子大全文件详细列表

免费安卓demo源码,例子大全文件详细列表 本列表源码永久免费下载地址:http://www.jiandaima.com/blog/android-demo 卷 yunpan 的文件夹 PATH 列表 卷序列号为 0000-73EC E:. │ jiandaima.com文件列表生成.bat │ 例子大全说明.txt │ 本例子永久更新地址~.url │ 目录列表2016.03.10更新.txt │ ├─前台界面 │ ├─3D标签云卡片热门 │ │ Android TagCloudView云标签

android.mk android源码编译

http://www.cnblogs.com/chenbin7/archive/2013/01/05/2846863.html Android.mk简单分析 2013-01-05 22:51 by ...平..淡..., 884 阅读, 0 评论, 收藏, 编辑 LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-java-fil

android源码编译1

一.环境说明: 1.liunx系统:Ubuntu12.04 2.jdk:sun-java6-jdk 3.g++4.5 gcc4.5 二.android源码的目录结构 |-- Makefile |-- bionic (bionic C库) |-- bootable (启动引导相关代码) |-- build (存放系统编译规则及generic等基础开发包配置) |-- cts (Android兼容性测试套件标准) |-- dalvik (dalvik JAVA虚拟机) |-- development