Andriod打包的过程(搬运)

2024-08-31 12:38
文章标签 过程 打包 andriod 搬运

本文主要是介绍Andriod打包的过程(搬运),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文章地址:

http://hanhailong.com/2016/04/02/apk%25E6%2589%2593%25E5%258C%2585%25E6%25B5%2581%25E7%25A8%258B%25E6%25A2%25B3%25E7%2590%2586/
简介

一些初学Android的开发者可能只知道写完项目,然后点击AndroidStudio中的run按钮就可以把项目运行到手机或者模拟器上,而一个apk是怎么从编译打包到最后签名安装到手机上的原理不知道,这里就带领大家理解一下内部的原理

简单build流程

首先,我们看下官网介绍Building and Running Overview,官网给了我们一张非常简单的编译、打包、apk生成内容以及签名的图片,因为官网必须得用vpn才能访问,这里我就直接下载下来了,简单build图片如下:

在这里插入图片描述
图片大体介绍了从Project到运行到设备或者模拟器的一个大体流程,我们也从中看到一个完整的apk包含如下内容:一个或多个dex文件、resources.arsc、未编译的资源文件以及AndroidManifest.xml文件等等

详细打包流程

官网给了我们一张非常清晰的打包流程图:
在这里插入图片描述

下面这幅图就是整个Android应用(不包含NDK部分)的构建编译框架详细流程说明(来源于官方):
在这里插入图片描述

打包步骤

总体打包步骤我们可以概括以下七步:

  1. 通过aapt打包资源文件,生成R.java和resources.arsc
  2. 处理aidl文件,生成对应的java接口文件
  3. 编译项目工程源代码,生成.class文件
  4. Dex命令处理,将第三步生成的.class文件和第三方的库一起生成classes.dex文件
  5. 通过apkbuilder工具将aapt生成的resources.arsc、classes.dex(可能多个)、其他的资源一块打包生成apk文件
  6. 通过Jarsigner对第五步生成的apk进行debug或者release签名,只有签名完的apk才能进行安装
  7. 通过aipalign对签名后的apk进行对其处理,使apk中所有资源文件距离文件起始偏移为4字节的整数倍,从而在通过内存映射访问apk文件时会更快

其实还应该有最后一步,那就是通过adb install命令将生成的apk安装到设备或者模拟器上

这篇关于Andriod打包的过程(搬运)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1123926

相关文章

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

解密SQL查询语句执行的过程

《解密SQL查询语句执行的过程》文章讲解了SQL语句的执行流程,涵盖解析、优化、执行三个核心阶段,并介绍执行计划查看方法EXPLAIN,同时提出性能优化技巧如合理使用索引、避免SELECT*、JOIN... 目录1. SQL语句的基本结构2. SQL语句的执行过程3. SQL语句的执行计划4. 常见的性能优

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

java内存泄漏排查过程及解决

《java内存泄漏排查过程及解决》公司某服务内存持续增长,疑似内存泄漏,未触发OOM,排查方法包括检查JVM配置、分析GC执行状态、导出堆内存快照并用IDEAProfiler工具定位大对象及代码... 目录内存泄漏内存问题排查1.查看JVM内存配置2.分析gc是否正常执行3.导出 dump 各种工具分析4.

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

Spring boot整合dubbo+zookeeper的详细过程

《Springboot整合dubbo+zookeeper的详细过程》本文讲解SpringBoot整合Dubbo与Zookeeper实现API、Provider、Consumer模式,包含依赖配置、... 目录Spring boot整合dubbo+zookeeper1.创建父工程2.父工程引入依赖3.创建ap

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于