提公升Android編譯速度

2021-09-08 13:14:36 字數 2815 閱讀 6102

android codebase都非常大。編譯一次都須要花非常多時間。假設是preloader/lk/bootimage還好,可是android的話都是非常久。

實際上這個編譯時間還是能夠進一步縮短!

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 = 1;

(4). 第1次編譯會花多一點時間建立cache,之後就可以享受ccache帶來的優點,減少全部使用gcc的編譯時間,大約25%~30%。

[1].能夠通過ccache -s檢視cache資訊,假設滿了能夠用ccache -c清除全部。在滿了狀態下編譯新codebase,將會舊的那個清除,這會減少效率。所以cache一定要設定正確!

(6). 對mm/new/remake android都有效果。

3. 開啟kernel ccache

(1). 以上ccache僅僅對編譯android有效,kernel部分須要額外設定才行

(2). alps/kernel/makefile檔案裡的

s  = $(cross_compile)as

ld  = $(cross_compile)ld.bfd

cc  = $(cross_compile)gcc

cpp  = $(cc) -e

之後加入:

ifneq ($(use_ccache),)

export ccache_compilercheck := content

export ccache_sloppiness := time_macros,include_file_mtime,file_macro

export ccache_basedir := /

ccache := $(strip $(wildcard $(pwd)/../prebuilts/misc/linux-x86/ccache/ccache))

ifdef ccache

ifneq ($(ccache),$(firstword $(cc)))

cc := $(ccache) $(cc)

endif

ccache =

endif

endif

(3). 這樣在編譯kernel時也能夠享受到ccache帶來編譯時間的縮短。

提公升Win XP速度

1 加快啟動速度 每次啟動windows xp的時候,藍色的滾動條都會不知疲倦地走上好幾圈,對於追求高效率的你,是不是很希望它能少走幾圈呢?其實我們完全可以把它的滾動時間減少,以加快啟動 速度。方法是 開啟登錄檔編輯器,依次展開hkey local machine system currentcon...

提公升程式設計速度

1.多看 多看可以分為,多看總結性的知識點,多看功能型demo,多看技術開發文件。2.多想 就是多思考了,學而不思則罔,思而不學則殆。永恆不變的真理啊。3.多寫 多寫總結性的文件,多寫功能型的demo。最重要的是看到一些知識點之類的,一定要去自己寫一遍。眼過千遍,不如手寫一遍。4.多總結 對知識點進...

簡單提公升編譯速度的乙個方法

instant run 看上去很美好,但也是很操蛋的,廣大人民群眾紛紛表示,為什麼我改了 以後,編譯不生效啊摔 增加電腦記憶體是提公升編譯速度的一種方法,gradle 官方推薦的編譯記憶體為 5120mb 上述配置完成之後,按照 google 的說法,我們在編譯 dev 版本時,就是增量編譯。可以看...