.

.

[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清除所有

mtk android 编译过程,MTK android 快速编译方法.doc相关推荐

  1. 反编译与反汇编、C++编译过程,包括预编译--汇编--编译--链接

    参考:C/C++程序编译流程(预处理->编译->汇编->链接) - ProLyn - 博客园 反汇编和反编译的区别_代码小卒_新浪博客 反汇编与反编译: 汇编:是把汇编源程序转变为目 ...

  2. Java编译过程、c/c++编译过程区别

    Java编译原理 1.Java编译过程与c/c++编译过程不同 Java编译程序将java源程序编译成jvm可执行代码--java字节码. c/c++编译过程: 当C编译器编译生成一个对象的代码时,该 ...

  3. php编译7教程,PHP7 快速编译安装

    PHP7正式版发布啦, 之前没有安装过的,都来安装试一试 . 即将发布的ThinkPHP5 在PHP7环境下也完全兼容, 佩服鸟哥把兼容性做得这么好 快速编译安装PHP7步骤: 第一步: 安装必要一些 ...

  4. 行程单图片python预处理_GCC编译过程(预处理-gt;编译-gt;汇编-gt;链接)

    前言 如果你使用集成环境开发.那么你点击编译按钮就可生成可执行文件.但是C程序从源代码到二进制行程序都经历了那些过程?你知道吗?这些过程集成开发环境在点击编译按钮后都做完了,如果编译没有出错,即可生成 ...

  5. 【Android 启动过程】Android 应用启动流程 | Activity 启动流程

    文章目录 一.Android 系统启动流程 二.Activity 启动流程 一.Android 系统启动流程 打开 Android 手机电源键后 , 先运行 BootLoader , 然后使用 Boo ...

  6. ibaanalyzer使用教程_ibaPDAclient软件快速设置方法.doc

    标准文档 实用文案 ibaPDA 软件大家使用较多,一般使用时需要配置接口板卡,但更多的是直接通过以太网络连接,如果只通过以太网连接现场数据信息,那么软件应当如何配置呢,有无快速配置方法,答案是肯定得 ...

  7. C++ 编译过程遇到问题快速查找解决

    一.在使用cmake创建项目,并在make过程中,遇到以下问题的,这里提供定位问题并解决的相关参考 问题描述:make过程出现如下报错-- [ 82%] Building CXX object CMa ...

  8. linux 编译链接过程,编译程序 一:linux程序编译过程(一)-编译和链接

    大家肯定都知道计算机程序设计语言通常分为机器语言.汇编语言和高级语言三类.高级语言需要通过翻译成机器语言才能执行,而翻译的方式分为两种,一种是编译型,另一种是解释型,因此我们基本上将高级语言分为两大类 ...

  9. Android模拟器断开原因及快速连接方法

    在使用Android Studio.Eclipse,或者React Native开发Android应用时,经常会遇到no connected devices的提示,即Android模拟器经常断开的问题 ...

最新文章

  1. git安装和使用---本地仓库
  2. Android进程退出的方法
  3. Nginx配置服务器静态文件支持跨域访问
  4. Ubuntu 18.04下的Python和OpenCV的安装
  5. 原 hibernate与mysql字段类型对应关系
  6. LeetCode 1984. 学生分数的最小差值
  7. 计算机网络大学教学大纲,《计算机网络》教学大纲
  8. 华为服务器型号命名,服务器的命名规则
  9. tez什么意思_Tezos 与 Ethereum 的区别
  10. JavaScript符号基础
  11. led灯光衰怎么解决_如何解决LED灯具照明光衰问题
  12. 可重构麦轮全向移动机器人分析(图片版)
  13. 李宏毅机器学习课程---1、机器学习介绍
  14. 最新cs1.6服务器ip地址,CS1.6服务器IP地址
  15. IDEA 插件开发 - 创建自定义私有仓库
  16. 计算机日志查询域用户登录记录,Windows域控制器身份验证登录日志记录和取证...
  17. Jetson Nano 系列之:25FPS性能优化之路
  18. 如何将多个图片批量转换成pdf文件?
  19. 互联网人职业发展之路:三年升高工,七年做架构,十年送外卖
  20. html图片慢慢消失的事件,[Web前端]用javascript实现默认图片替代未显示的图片

热门文章

  1. KingSCADA系统实施标准手册(热网项目适用)
  2. R语言绘图实战:RDA冗余分析
  3. 计算机网络之面试常考--整理来自牛客网
  4. 【CICC原创】面向全域作战态势感知的战场全息地图
  5. 三极管基极下拉电阻大小的确定方法
  6. 计算机课的万能导入,浅谈小学信息技术课的导入技巧
  7. idw matlab 程序_matlab小波变换程序
  8. 关于TCP/IP通信协议的一些见解
  9. 论文笔记:传统CV和深度学习方法的比较
  10. CAXA电子图版二次开发20190803