.

.

[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. 青龙面板多容器教程、一键多容器
  2. java real football_Java学习--设计模式之行为型模式(三)
  3. 32查运行内存的map文件_Linux进程间通信——内存共享映射
  4. 【OS】课设记录总结+进程整理
  5. win7系统服务器环境配置,windows7系统安装与配置Tomcat服务器环境
  6. 多点积分又改规则了_2020年落户广州积分入户名额有多少个?如何加分?
  7. 引用Nuget包Microsoft.EntityFrameworkCore.Tools.DotNet报错
  8. hfss史密斯图_HFSS仿真工程实例 (微波器件).ppt
  9. 解决Android 4.0以上版本中OptionsMenu菜单不显示ICON图标的问题
  10. Java Excel 列号数字与字母互相转换
  11. 论文页码不连续?经常改不对?教你一招立马解决
  12. Java 小数保留小数位数的方法
  13. Chrome插件安装以及常见问题
  14. vue-pdf打印出现方字块乱码问题
  15. Eureka 没凉,别过度悲伤
  16. 易语言查找过滤相同重复文本源码
  17. 数据分析在微博营销中的应用
  18. java和前端哪个好学_前端好学还是Java好学?
  19. 给Java小白,整理一套能上手的简单编程算法题【含答案】!!!
  20. idea用maven搭建的web项目没有src目录只有pom解决方案(最暴力,最简单版本)

热门文章

  1. NAND Flash、NOR Flash、ROM、RAM、DRAM、SRAM和FLASH的区别解析
  2. 基于kingscada的自动绕线机工程,仿真绕线,硕子来回绕线形成线团自动运送到仓库
  3. 设计模式-结构模式-装饰器模式 decorater
  4. 主梁弹性模量计算_4主梁作用效应计算-金锄头文库
  5. 前端面试总结 -- 网络基础之 HTTP 和 HTTPS
  6. 如何写互联网产品分析报告,从哪些方面入手?
  7. 牛顿插值c语言分析作业,牛顿插值函数C语言程序实现
  8. 公开课计算机原理,《计算机的基本工作原理》公开课材料
  9. SurfaceFlinger服务的启动
  10. “Script“ 标签