网站首页 > 博客文章 正文
1、现状分析
工程编译,是Android应用开发工作中的重要一环,在项目体量越来越大的情况下,编译耗时也越来越长,拖慢了开发效率
全量编译/增量编译/安装占据了整个流程的大多数时间,假设全量编译在6分钟,每天运行10次,每天我们浪费在编译上的时间就有60分钟,假设编译时间是3分钟,每天节约0.5小时,
全量编译:项目没有运行过,没有生成特定的缓存文件,初次进行资源代码的编译合并流程。比如clean后。多数用于项目的初次编译打包/清理缓存后编译时。
增量编译:在全量编译后的基础上进行编译,改动/新增/删除/添加都会进行改变的编译不影响整体已有编译的文件。多数用于项目的初次编译/生成缓存文件后编译时。
2、编译流程
整体流程如下
? aapt 打包资源文件,产生R.java ,resource.arsc , res,manifest.xml
? aidl 产生java接口文件
? javac 编译R.java,Aidl产生的java文件以及工程中用到的源码产生.class文件
? R8混淆和代码压缩.class文件,经过d8 生成.dex文件
? apk builder 将资源包,.dex打包生成apk文件
? apksigner /jarSigner 会对apk进行签名
3、编译耗时检测
Build Analyaer
Gradle 命令
$ gradlew app:assemble --profile (Windows)
$ ./gradlew app:assembleDebug --profile (Ubuntu,Mac)
scan
$ gradlew app:assemble --scan(Windows)
$ ./gradlew app:assembleDebug --scan(Ubuntu,Mac)
https://gradle.com/s/mshp4gfpxazg6
Android studio
https://juejin.cn/post/7094198918065422350
4、编译优化常规方案
5、大厂方案
猜你喜欢
- 2024-11-15 IntelliJ IDEA 2021.1正式发布!快来看看又有哪些神仙功能加入
- 2024-11-15 HarmonyOS开发:超详细介绍如何开源静态共享包,实现远程依赖
- 2024-11-15 微星武士66游戏本详细评测:亲民价位段的上品之作
- 2024-11-15 创建属于自己的第一个flutter项目
- 2024-11-15 Jetpack系列:应用内导航的正确使用方法
- 2024-11-15 Meta Quest App开发、调试、分析、优化工具汇总推荐
- 2024-11-15 在线等,我的 adb 找不到了(adb工具找不到设备)
- 2024-11-15 社交软件开发5-客户端开发-android和ios验证登陆
- 2024-11-15 Android开发拾遗:如何减少重组(android原生开发)
- 2024-11-15 Android内存优化大盘点(android如何节省内存优化)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)