APK构建原理解析_apk工作原理-程序员宅基地

技术标签: android  

App的开发完成后,需要打包并上线!我打包的过程一般都是用Android Studio提供的图形化工具进行打包。那么这个打包的原理是什么呢?

先看一下一个Android工程里面都涉及到哪些资源文件:

  1. 资源文件,指res下的图片、xml文件
  2. 代码文件:.aidl 、java文件 、c文件、c++文件
  3. 引用的库:so文件,jar文件
  4. 第三方module

这么多的文件,是如何打包的一个apk里面来的呢?下面进行一个探究,看Android 官方文档给的一个打包流程图:

这里写图片描述

根据官方文档对这个流程的描述,我理解后做如下转述:

  1. 编译器将我们自己的Android工程下的源码文件、资源文件、aidl文件 和 依赖的module库文件、AAR库、jar库进行编译,所有源码编译后输出DEX文件,所有其他内容转换为已编译资源。
  2. 打包器将DEX文件和已编译资源文件合并成单个的apk。
  3. 打包器对apk进行签名。如果是调试版本的apk用debug keystore进行签名,如果是release版本的apk用release keystor
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/watermusicyes/article/details/62883260

智能推荐

C语言——Prim算法实现最小生成树_c语言实现最小生成树输出g的最小生成树的边权之和-程序员宅基地

文章浏览阅读2.9k次,点赞9次,收藏32次。Prim算法C语言实现_c语言实现最小生成树输出g的最小生成树的边权之和

Linux系统中新建账户以及群组_linux 群组项目一般建在哪里-程序员宅基地

文章浏览阅读3.9k次,点赞2次,收藏15次。Linux系统中的账户    Linux系统中的账户可以分为两大类:系统账户和普通账户。    系统账户是给计算机中各种不同的功能创建的特殊账户,系统上运行的程序通过这些特殊账户来使用计算的各种资源和服务。早期的程序是通过管理员账户(root)来获得计算机的各种服务,为了增加系统的安全性,现在计算机上各种服务都分别创建有相应的系统账户。Linux系统预留了500以下的UID给这些系统账户,普通..._linux 群组项目一般建在哪里

设置启动图片LaunchScreen 和 LaunchImage-程序员宅基地

文章浏览阅读269次。优先级:LaunchScreen > LaunchImage 在xcode配置了,不起作用 1.清空xcode缓存 2.直接删掉程序 重新运行 如果是通过LaunchImage设置启动界面,那么屏幕的可视范围由图片决定 注意:如果使用LaunchImage,必须让你的美工提供各种尺寸的启动图片 LaunchScreen:Xcode6开始才有..._ios launchscreen 启动图拉伸变形

聊聊面试-NoClassDefFoundError 和 ClassNotFoundException 区别_classnotfoundexception openfire-程序员宅基地

文章浏览阅读990次。(上图是圣卡塔利娜岛,美国南加州的一个小岛,也是 mac OS 10.15 版本的官方默认壁纸)___概述Hello,大家好,我们又来讲面试中的基础题了,今天这是一道很经典又很猥琐的题说猥琐是因为这两个异常名字比较近似,但事实上他们完全不同,导致很多同学会经常容易把它们搞混说经典是因为由这道题可以引出的问题有很多,例如:考察候选人对 Java 异常体系的熟悉程度考察候选人对异常体系分..._classnotfoundexception openfire

linux 磁盘IO测试工具:FIO 和dd工具测试_dd和fio测试写盘速率-程序员宅基地

文章浏览阅读1.5k次。linux 磁盘IO测试工具:FIO (同时简要介绍dd工具测试)来源:cnblogs  作者:xuyaowen  时间:2019/4/12 8:59:14  对本文有异议FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证。磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类。目前主流的第三方IO测试工具有fio、iometer和 Orion,这三种工具各有千秋,在linux 下也可以使用dd 进行简单的磁盘(文件系统)测试(文末补充)。fio在L._dd和fio测试写盘速率

淘宝技术发展-程序员宅基地

文章浏览阅读4.2k次。目录  一、引言  二、个人网站  三、Oracle/支付宝/旺旺  四、淘宝技术发展(Java时代:脱胎换骨)  五、淘宝技术发展(Java时代:坚若磐石)  六、淘宝技术发展(Java时代:创造技术-TFS)  七、淘宝技术发展(分布式时代:服务化)  作者:赵超  一、引言  光棍节的狂欢   “时间到,

随便推点

在linux下用rsh实现两个节点的无密码互通_linux 脚本免密码 rsh-程序员宅基地

文章浏览阅读3.2k次。由于要做并行计算,现在要把机器配置成两台无密码可以互相访问。现在来说说具体配置rsh的流程。机器配置:64位机,4核,X86服务器主机,装centos 4.8 64位操作系统。网络互通采用infiniband网卡通信。 1、检查有无安装rsh-server包[root@node1 ~]# rpm -qa rsh-server若没有安装,则可以通过下面的命令来安装。2、_linux 脚本免密码 rsh

NYOJ 860 又见01背包-背包问题_入格式 第一行输入,n 和 w ,接下来有n行,每行输入两个数,代表第i个物品的wi 和 vi-程序员宅基地

文章浏览阅读135次。问题来源:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=860描述 有n个重量和价值分别为wi 和 vi 的 物品,从这些物品中选择总重量不超过 W 的物品,求所有挑选方案中物品价值总和的最大值。   1 <= n <=100   1 <= wi <= 10^7   1 &am_入格式 第一行输入,n 和 w ,接下来有n行,每行输入两个数,代表第i个物品的wi 和 vi

Vue怎么将后台(springboot)中的图片显示到前端表格中_怎么在数据库中存图片通过后台获取传给前台在vue页面表格中显示-程序员宅基地

文章浏览阅读4.8k次,点赞5次,收藏27次。1.首先,你后台的项目列表中有可以访问的图片,如下(我将图片保存到数据库并同步保存到项目文件夹的static中)2.输入http:localhost:后台的端口+图片的名称有的同学可能看不懂上面的地址,我举个例子http://localhost:8188:111.jpg(就是这个样的),意思是你的端口地址加上图片的名称就可以访问当前的图片了3.前端部分代码,只展示显示图片部分的 <el-table style="width: 100%" height="330px" :data="ta_怎么在数据库中存图片通过后台获取传给前台在vue页面表格中显示

最新版精选板块导出工具 龙头复盘神器 复盘软件_龙头复盘神器6.1最新版-程序员宅基地

文章浏览阅读202次。基于c++开发的最新版,支持各种格式导出,同时支持通达信 大智慧 同花顺联动,持续更新中,需要的可与留言!_龙头复盘神器6.1最新版

openwrt修改默认主题_openwrt theme-程序员宅基地

文章浏览阅读1.1w次,点赞3次,收藏6次。openwrt默认主题为luci-theme-bootstrap,可在web界面进行修改,也可直接在代码中修改配置信息,默认自己的主题修改前:openwrt默认luci主题luci-theme-bootstrap .config - OpenWrt Configuration > LuCI > 4. Themes ────────────────────────────────────────────────────────────────────────────── ┌─────._openwrt theme

密码学与网络安全第七版部分课后习题答案_密码编码学与网络安全第七版课后答案-程序员宅基地

文章浏览阅读7.2w次,点赞34次,收藏336次。第0章 序言1.课后题汇总(仅部分)第一章 思考题:1、2、4、5第二章 习题:10、12、16第三章 习题:9第四章 思考题:4、5、6第五章 习题:11第六章 习题:2、6第七章 思考题:2、3、4 习题:4、7、8第八章 习题:2第九章 思考题:5、6 习题:2、3第十章 习题:1、2第十一章 思考题:1、2、3第十二章 思考题:1、3、4、7第十三章 思考题:..._密码编码学与网络安全第七版课后答案

推荐文章

热门文章

相关标签