Android APK编译流程

Android APK编译流程,第1张

apk 是Android Package的简写, 在平时的开发过程中,通过点击 Run app 按钮 或者 在命令行中输入

这样Android Studio就会启动构建流程,最终输出一个我们想要的APK。

直达官网介绍

对于小白来说,上面一张图已经可以解释apk的构建过程了,不过对于Andoid开发者而言还需要了解一些更详细的构建过程。

详细的对应步骤 和 使用工具如下:

资源文件(res文件夹下的文件)通过 AAPT(Android Asset Packaging Tool)打包生成Rjava类(资源索引表)、arsc资源文件 和res文件。

resourcesarsc 是一个App的资源索引表,通过Rjava 文件 和 resourcesarsc 可以定位到资源的内存地址,resourcesarsc文件的作用是通过一样的ID,根据不同的配置索引到最佳的资源显示在UI中。

AIDL (Android Interface Definition Language), 是Android接口定义语言,是Android提供的IPC (Inter Process Communication,进程间通信)的一种独特实现。

如果有aidl文件,这个阶段会生成对应的Java接口文件。

Rjava文件、工程源码文件、aidljava文件, 在这一步通过javac生成class文件。

源码class文件和第三方jar或者library通过dx工具打包成dex文件

Android系统的Dalvik虚拟机的可执行文件为DEX格式,所以这里会将上一步中生成的class文件 和 引用的第三方jar等过程中的class 一起通过dx工具打包成dex文件

apkbuilder工具会将所有没有编译的资源、arsc资源、dex文件打包到一个完成apk文件中

tips:

apksigner工具会对未签名的apk验证签名。得到一个签名后的apk(signedapk)

apksigner 是google 退出的V2签名方式

Jarsigner 是之前一直使用的V1签名方式

可以通过在命令行中输入apksigner --help来获取详情信息,如果没有特殊需求,使用下面命令即可完成签名

release mode 下使用 aipalign进行align,即对签名后的apk进行对齐处理

所谓对齐,主要过程是将APK包中所有的资源文件距离文件起始偏移为4字节整数倍,这样通过内存映射访问apk文件时的速度会更快。对齐的作用主要是为了减少运行时内存的使用。

zipalign是一个android平台上整理APK文件的工具,它对apk中未压缩的数据进行4字节对齐,对齐后就可以使用mmap函数读取文件,可以像读取内存一样对普通文件进行 *** 作。如果没有4字节对齐,就必须显式的读取,这样比较缓慢并且会耗费额外的内存。

参考文章:

Android-Studio配置构建

浅谈Android打包流程

apk打包流程

END!

与安卓平台相关

C语言是硬件相关的

与java不同

在做安卓开发时如果是应用软件,可以实现跨平台,与硬件无关

C语言的编译运行都是与硬件相关的,所以不同平台的安卓软件,需要使用不同的开发工具

具体取决于CPU厂商和版本

可以根据CPU型号,查找对应的SDK

如果无法获取完整SDK,至少获取到交叉编译的编译器

这个是开发C软件的基础

C4droid是款Android设备上的C/C++程序编译器[2] ,默认以tcc(tiny c compiler)为编译器,可以选择安装gcc插件(20mb,只有root用户可以使用),选用gcc后,可以用sdl(简单直控媒体层库,需安装sdl plugin for c4droid)和qt(nokia官方开发库,需安装sdl plugin for c4droid)。也可以开发native android app(需安装sdl plugin for c4droid),就像google ndk一样。软件支持代码高亮,编译时间随cpu主频而定,主频越高编译越快。gcc插件版本472提供了示列程序,包含sdl,android native,qt和命令行测试程序源码。

以上就是关于Android APK编译流程全部的内容,包括:Android APK编译流程、使用C语言编写一个安卓软件应该用什么开发工具(手机上编写c语言的软件)、有能在Android系统上运行的c语言编程软件吗,推荐一下等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9809861.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存