Android4版本後,google文檔 http://source.android.com/source/building-devices.html 中,編譯特定產品的說明 build device 的不再合適了。
在src/development/pdk/ 文檔裏寫了build pdk(product development kit)的方法,不過裏面的文檔還有些幫助,可以參考。
具體的build pdk 的方法見readme文檔。build出來的online-doc文檔裏面有build device的方法,不適用Android4版本。
這裏演示一個build product的例子。chooseproduct 後效果如下:
如果不顯示產品列表,請參考我的另一篇文章,修復chooseproduct 不顯示的問題
- android401$ chooseproduct
- Product choices are:
- 1. chip2012
- 2. core
- 3. full_maguro
- 4. full
- 5. full_panda
- 6. full_tuna
- 7. full_x86
- 8. generic_armv5
- 9. generic
- 10. generic_x86
- 11. large_emu_hw
- 12. sample_addon
- 13. sdk
- 14. sdk_x86
- 15. vbox_x86
要點如下:
1 文件名稱不可更改,BoardConfig.mk AndroidProducts.mk。 chip2012.mk 是自定義的名稱。
2 文檔內的變量在/build/target/product/core.mk generic.mk full.mk裏面的文檔有定義。
3 文件可以添加在/device /vendor 下面都可以,下面的例子添加在vendor目錄下
4 添加的目錄結構可以自定義,必須有要有BoardConfig.mk AndroidProducts.mk文件。下面例子按照companyname/chipname 安排。
5 BoardConfig.mk 裏面指定了CPU的特徵, TARGET_CPU_ABI 是必須的。其他的可以參考其他文檔。
在源碼根目錄添加如下文件結構
vendor/
`-- lhc180
`-- chip2012
|-- AndroidProducts.mk
|-- BoardConfig.mk
`-- chip2012.mk
- #AndroidProducts.mk
- # This file should set PRODUCT_MAKEFILES to a list of product makefiles
- #reference /device/ti/pandan/AndroidProducts.mk
- PRODUCT_MAKEFILES := \
- $(LOCAL_DIR)/chip2012.mk
- #BoardConfig.mk
- #other set rail wifi gpu and more...
- #reference /device/ti/pandan/BoardConfig.mk and /device/samsung/maguro/BoardConfig.mk
- TARGET_CPU_ABI := armeabi-v7a
- TARGET_NO_BOOTLOADER := true
- TARGET_NO_KERNEL := true
- #no audio
- BOARD_USES_GENERIC_AUDIO := true
- #no camera
- USE_CAMERA_STUB := true
- #chip2012.mk
- #reference /device/ti/pandan/full_panda.mk and /device/samsung/maguro/full_maguro.mk
- PRODUCT_NAME := product_demo
- PRODUCT_DEVICE := board_demo
- PRODUCT_BRAND := Android
- #add any apk about chip2012
- PRODUCT_PACKAGES := ApiDemo