您好,登錄后才能下訂單哦!
[由底層向上構建順序: 芯片架構層 -> 核心板層 -> 設備層 -> 產品層]
芯片架構層: 產品使用的硬件架構,ARM X86等.
核心主板層: 硬件電路的核心板配置
設備層: 外圍設備的配置, 鍵盤,鼠標, 外接設備等.
產品層: 最終系統生成需要的配置, 支持(默認)的國家語言, 是否攝像頭, sensor等.
[我們只需要配置產品層就行了.]
1.vendorsetup.sh,這個文件用來統計這個基線所有的產品[型號] (下面以虛擬產品型號:c123)在源碼/device/c123/下,新建vendorsetup.sh,里面添加”add_lunch_combo c123[產品名稱]”,這個vendorsetup.sh文件將會在 envsetup.sh[build/下]中掃描device和vendor這兩個文件:
# Execute the contents of any vendorsetup.sh files we can find. for f in `test -d device && find -L device -maxdepth 4 -name 'vendorsetup.sh' 2> /dev/null | sort` \ `test -d vendor && find -L vendor -maxdepth 4 -name 'vendorsetup.sh' 2> /dev/null | sort` do echo "including $f" . $f done unset f
2.AndroidProducts.mk,這個存放在具體產品文件下[device/c123/],用來定義產品的一些配置信息.一般只用來做一個'重定向':
PRODUCT_MAKEFILES := \ $(LOCAL_DIR)/c123.mk1212
3.在device/c123/下新建名稱為c123.mk[就是AndroidProducts.mk的重定向文件]這個文件通常會配置一些手機需要的文件信息,如media,audio等xml文件,GMS包,jar引入,產品信息的命名等,也可以將一些需要拷貝到手機里面的文件放在這里:
# media_profiles and media_codecs PRODUCT_COPY_FILES += device/c123/media/media_profiles.xml:system/etc/media_profiles.xml \ device/c123/media/media_codecs.xml:system/etc/media_codecs.xml \ ... PRODUCT_NAME := 產品名稱[設置 - 關于設備] PRODUCT_DEVICE := 設備名稱 PRODUCT_BRAND := 手機品牌 PRODUCT_MODEL := 產品型號 ...
4.BoardConfig.mk,主要是配置使用什么架構,調整分區,設置分區大小等.也是在device/c123/目錄下.
TARGET_ARCH := arm64 TARGET_ARCH_VARIANT := armv8-a TARGET_CPU_ABI := arm64-v8a ... BOARD_SYSTEMIMAGE_PARTITION_SIZE := 分區大小[單位是bit] BOARD_USERDATAIMAGE_PARTITION_SIZE := 分區大小[單位是bit]
基本以上文件都是放在項目文件下的,在源碼根目錄執行 ‘source build/envsetup.sh’ 的時候會自動把這些文件加載進行,然后 ‘choosecombo’ 選擇添加的項目名,然后執行 ‘make’ 就會編譯那個項目了.
關于Android.mk這個文件是一個android編譯單個目標的makefile.基本上源碼里面每個apk生成以及farmework很多編譯都需要這個文件.
注:源碼是Android 6.0.[此文章本人于2016-11-16在CSDN發表過.]
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。