vendor的英文單詞有“提供商”的意思,在google的android原始代碼裡vendor目錄包含了cpu硬體提供商的一些資訊。
android系統作為開放的手持裝置作業系統,在釋出之初必須要提供配置接口給cpu提供商,這樣android的系統才能在不同的cpu上運作。
實際上vendor目錄就是android系統預留給我們加入定制化資訊的目錄。在這個目錄中可以完成對系統預設應用程式的添加移除、及其背光,gps和opengl硬體适應層的vendor庫檔案或者代碼。
參考sample和htc dream建立rickleaf作為一個新的cpu廠商,在rickleaf建立一個heaven的目錄作為廠商的一個特别裝置
在android的platform代碼中,如果你的代碼需要編譯或者 一些二進制檔案和庫需要複制到目标闆,就必須有個android.mk檔案來管理。
vendor裡面的android.mk檔案主要負責編譯cpu廠商的特定代碼和複制檔案到目标闆,
一般 項目中的android.mk檔案内容如下:
這個檔案負責對android系統的一些配置,包括如下等
arm cpu的版本
audio的架構類型
gps的适應層名字
是否vendor有自己的init.rc檔案
android的image類型(inand需要yaffs2的image,mmc需要ext3或者ext4(android2.3)的image
如果在platform中加入了自己的子產品,也可以加入配置機制,并且在這個檔案中決定是否加入到系統中來
這個檔案為
product_makefiles 指定一個mk檔案
在指定的mk檔案中完成對android系統中app層面的一些配置,下面簡單列舉:
添加預設的android應用程式
采用哪種dpi
采用哪種圖資
為android添加vendor的資訊
加入預設鈴聲
product_property_overrides
修改一些預設的property設定,關于什麼是property請大家去浏覽google的文檔,可以粗略的了解為類似系統資料庫的東西駐留在記憶體中,可以供應用程式讀寫
product_packages
product_copy_files
android通過以上兩個變量來對android packages和一些系統檔案進行添加和移除
product_locales
這個變有兩個作用:一個是加入系統支援的語言類型;另一個是決定預設用哪一種圖資,比如ldpi,mdpi還是hdpi
product_brand
廠商名字
product_name
産品名字
product_device
裝置名字