Android原始碼編譯指定模組的三種方法

2021-07-25 03:01:58 字數 1940 閱讀 8035

實際開發中,並不需要每次都編譯所有源**,只需要編譯自己修改的模組即可。

android

的編譯系統提供了強大的機制支援單獨模組的編譯,而且十分簡單。

android

提供三種方式用於編譯單獨模組: 1.

make 

模組名這種方法適合第一次編譯,會把依賴模組一併編譯。它需要在全部源**中找到編譯模組的

android.mk

檔案,並檢查依賴模組是否有修改,因此編譯時間較長。使用這種方法,我們只需要搜尋原始碼目錄下的

android.mk

檔案,找到模組名,然後指定給

make

即可。 (1

)編譯應用層原始碼

對於應用層程式,需要檢視

android.mk

檔案的local_package_name

變數。

例如,要編譯

phone

應用程式的原始碼,先檢視

phone

的android.mk

檔案,在終端中執行以下命令:

顯示android.mk

的內容如下: ……

(省略部分內容)

local_path:= $(call my-dir)  

include $(clear_vars)  

local_module := com.android.phone.common   ……

(省略部分內容)

local_package_name

:= phone  ……

(省略部分內容) 找到

local_package_name

字段,其值便是我們需要得到的編譯引數,即

phone

。得到編譯引數後,在終端中執行如下命令便可單獨編譯

phone

模組及其依賴模組:

$make phone  (

2)編譯框架層和系統執行庫原始碼

對於框架層和系統執行庫,需要檢視

local_module

變數。

以frameworks

包中的原始碼為例,在終端中執行以下命令:

$ find  frameworks -name android.mk 

該命令將搜尋

frameworks

目錄下所有的

android.mk

檔案,列表如下:

frameworks/media/libvideoeditor/lvpp/android.mk  

frameworks/media/libvideoeditor/osal/src/android.mk  

……(省略其他部分) 以

為例,在終端中執行以下命令:

顯示android.mk

的內容如下:

local_path:= $(call my-dir)  

include $(clear_vars)  

local_module

include $(build_executable) 

local_module

變數的值便是我們要找的模組名。在終端中執行以下命令:

2.mmm

命令用於在原始碼根目錄編譯指定模組,引數為模組的相對路徑。只能在第一次編譯後使用。比如要編譯

phone

部分原始碼,需要在終端中執行以下命令:

3.mm

命令用於在模組根目錄編譯這個模組。只能在第一次編譯後使用。例如要編譯

phone

部分原始碼,需要在終端中執行以下命令:

$mm  注:

mmm和

mm命令必須在執行「

.build/envsetup.sh

」之後才能使用,並且只編譯發生變化的檔案。如果要編譯模組的所有檔案,需要

-b選項,例如

mm  -b

Debian編譯Android原始碼

筆記本 intel i3 ram 4g linux debian 8.1.0 amd64 xfce cd 1.iso android 4.2.2android官方推薦使用ubuntu編譯原始碼,但我試了ubuntu 12.04 ubuntu 14.04,結果都在安裝好所需檔案重啟電腦後,系統就出莫名...

ubuntu編譯android原始碼

1.首先為安裝ubuntu系統,大家可以參考以下鏈結 建議大家把 根目錄分70g以上 3.安裝編譯必備的工具 清華大學映象庫 5.編譯過程 6.用到的命令 卡住不動 ctrl z 清除make資訊 make clobber 開始編譯 build envsetup.sh 選擇版本 lunch 開始編譯...

Android原始碼編譯(1)

sudo apt get install 這一步需要的庫,廠商一般都會提供出來。如果有些庫不能安裝,嘗試sudo apt get update 再sudo apt get upgrade,再進行預安裝庫。sudo apt get install openjdk x jre sudo apt get ...