[FAQ10625] 提升Android编译速度

Platform: MT6572 MT6582 MT6588 MT6589 MT6592 MT6595 MT6571 MT6582/92+MT6290

Branch: GB3 JB2 JB3 JB5 JB9 GB5 JB7

FAQ Content

[DESCRIPTION]

Android codebase都很大,编译一次都需要花很多时间,如果是preloader/lk/bootimage还好,但是Android的话都是非常久。

实际上这个编译时间还是可以进一步缩短!

?

[KEYWORD]

ccache

编译时间

提升

降低

?

[SOLUTION]

1. 移除modules_to_check

(1). Android默认是所有模块都会编译的(不管需不需要),这个有些冗余,可以通过修改编译系统不编译哪些没有用到的模块

(2). 修改方法:alps/build/core/main.mk

files: prebuilt \

? $(modules_to_install) \

? $(modules_to_check) \

? $(INSTALLED_ANDROID_INFO_TXT_TARGET)

修改为:

files: prebuilt \

? $(modules_to_install) \

? $(INSTALLED_ANDROID_INFO_TXT_TARGET)

(3). 如果是ubi nand文件系统的项目(比如72 nand项目),还需要在alps/build/core/Makefile中:

$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) \??$(INSTALLED_RAMDISK_TARGET) \??$(INSTALLED_BOOTIMAGE_TARGET) \??$(recovery_binary) \??$(recovery_initrc) $(recovery_kernel) \??$(INSTALLED_2NDBOOTLOADER_TARGET) \??$(recovery_build_prop) $(recovery_resource_deps) \??$(recovery_fstab) \??$(recovery_gzip) $(recovery_sec_ko) \??$(RECOVERY_INSTALL_OTA_KEYS)的前面添加:ifeq ($(TARGET_USERIMAGES_USE_UBIFS),true)$(INSTALLED_RECOVERYIMAGE_TARGET): $(recovery_ubiformat)endif

否则会编译失败!

(4). 修改后Android编译时间降低16%~18% (数据仅供参考)

(5). 此种方法google已在4.3版本默认应用了。

(6). 仅对new有效果,但是由于没有编译没有用到的模块,不仅节省时间还节省磁盘空间(节省out目录下的中间文件)。

?

2. 开启android ccache

(1). ccache是google默认就存放在codebase的工具,对于ccache的功能可以到网络搜寻资料。

(2). 设置cache大小(这一步一定要做!!),一个codebase需要大约5G的空间,如果你的编译环境有5个codebase在使用,那么需要25G的空间。设置小了还会引起编译时间延长!!

??? [1].GB版本:prebuilt/linux-x86/ccache/ccache -M 25G

??? [2].JB版本:prebuilts/misc/linux-x86/ccache/ccache -M 25G

(3).?开启的方法:

??? [1].命令行增加USE_CCACHE=1即可:./mk -o=USE_CCACHE=1 n。如果是user版本开启ccahce的话,可以这样:./mk -o=USE_CCACHE=1,TARGET_BUILD_VARIANT=user n。

??? [2].建议:添加到环境变量(其他方式亦可):修改alps/makeMtk,在#!/usr/bin/perl之后新建一行,填写$ENV{"USE_CCACHE"} = 1;

(4).?第1次编译会花多一点时间建立cache,之后即可享受ccache带来的好处,降低所有使用gcc的编译时间,大约25%~30%。

??? [1].可以通过ccache -s查看cache信息,如果满了可以用ccache -C清除所有。在满

如何快速编译android,MTKandroid快速编译方法.doc相关推荐

  1. android+busybox+编译,Android版busybox编译

    Android版busybox编译 1下载busybox源码 2解压 tar -xvf busybox-1.23.2.tar.bz2 3 android版的配置脚本 解压后的源码里,configs文件 ...

  2. 最新i7编译android源码,编译ROC-RK3328-CC Android7.1源码教程

    环境安装 windows准备 首先在windows中划分一块100左右的分区安装ubuntu16,在linux环境编译Android源码 安装ubuntu16(注意一定要16的ubuntu,其他版本的 ...

  3. mac 编译android系统,mac 编译 Android 系统杂记

    挂载android分区 sudo hdiutil attach ~/android_code/android7.dmg.sparseimage -mountpoint /Volumes/android ...

  4. cygwin 编译 android vlc,Cygwin 编译 VLC 问题

    Cygwin 编译 VLC 遇到了这么多问题,不过还好最后编译过去了. 问题 1: gcc -mno-cygwin -Wsign-compare -Wall -mms-bitfields -pipe ...

  5. dcmtk编译 android,windows下编译dcmtk的Android版本

    1.下载最新的dcmtk http://support.dcmtk.org/redmine/attachments/download/77/dcmtk-3.6.1_20150217.tar.gz解压. ...

  6. 如何编译Android的kernel,编译Android的kernel

    一 下载 cd kernel 进入我们刚才创建的kernel文件夹 git branch -avv 查看远程的git 库 我们选择remotes/origin/android-goldfish-2.6 ...

  7. android.mk 优化编译,android下ndk编译c优化

    android开发中,有时候需要控制包的大小,这样就会要求对代码进行优化, 下面这个文章不错.大家可参考 原文链接 https://blog.algolia.com/android-ndk-how-t ...

  8. 《深入解析Android 虚拟机》——第1章,第1.3节编译Android源码

    本节书摘来自异步社区<深入解析Android 虚拟机>一书中的第1章,第1.3节编译Android源码,作者 钟世礼,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  9. ubuntu 20.04.4编译 继续尝试编译Android 12,13

    之前使用虚拟机编译过Android10,现在开始记录编译12,上次忘记给镜像了这次补上镜像ubuntu-20.04.4-desktop-amd64: 链接:https://pan.baidu.com/ ...

最新文章

  1. 解决WAMP搭建PHP环境后后局域网其他机器无法访问的问题
  2. adb通信协议分析以及实现(二):adb服务进程发现设备
  3. Visual c++6.0 如何自定义一个光标,使其变成字
  4. 一个祸害我很久的东东——事件过滤器之按键触发
  5. 【2017年第4期】流式大数据实时处理技术、平台及应用
  6. 【java】多线程博客积累
  7. SecureCRT 远程端中文乱码问题处理
  8. 注意,更改团队所属业务部门用Update消息无效!
  9. ISL22326WFR16Z-TK 2 电路 I²C 接口 双数字电位器
  10. 元宇宙需要“基建狂魔”
  11. 创新金融科技:从零到一构建新房交易供应链金融服务 PPT分享
  12. 边沿触发是什么意思_边沿触发器的动作特点及主要特点
  13. 从陈年往事说说凡客的教训
  14. 《投射技术》与科学研究汉字笔迹心理学的希望
  15. 开源软件 介绍及地址
  16. django全自动分库分表(横向)
  17. rem 用户改变字体大小_用户可以更改字体大小
  18. 巴菲特财富人生精华版
  19. MacBook Pro 2018电池鼓包、键盘问题免费换新
  20. CHAPTER 23 Question Answering

热门文章

  1. ffmpeg进行音频解码,QAudioOutput播放解码后的音频
  2. GitHub上README.md写法暨GFM语法解读
  3. 线性代数(8): 生成空间与空间的基
  4. 罗盘式时钟的实现纯HTML 代码
  5. MT9V034六个寄存器的配置
  6. 最新全世界水系、水域矢量数据免费下载--关于地理数据收集与处理的基本工具推荐(4)
  7. 数电4_2——常用的组合逻辑电路(1)编码器
  8. 使用 MATLAB 编程,设计一个数字锁相环,用于数字通信系统同步, 并给出仿真结果
  9. 投影仪的标定方法总结
  10. c语言删除括号内的字符,去括号 (C语言代码)