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 不显示的问题


  1. android401$ chooseproduct  
  2.  
  3. Product choices are: 
  4.  
  5.      1. chip2012 
  6.  
  7.      2. core 
  8.  
  9.      3. full_maguro 
  10.  
  11.      4. full 
  12.  
  13.      5. full_panda 
  14.  
  15.      6. full_tuna 
  16.  
  17.      7. full_x86 
  18.  
  19.      8. generic_armv5 
  20.  
  21.      9. generic 
  22.  
  23.      10. generic_x86 
  24.  
  25.      11. large_emu_hw 
  26.  
  27.      12. sample_addon 
  28.  
  29.      13. sdk 
  30.  
  31.      14. sdk_x86 
  32.  
  33.      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 安排。

BoardConfig.mk 里面指定了CPU的特征, TARGET_CPU_ABI 是必须的。其他的可以参考其他文档。

 

在源码根目录添加如下文件结构

vendor/

`-- lhc180

    `-- chip2012

        |-- AndroidProducts.mk

        |-- BoardConfig.mk

        `-- chip2012.mk

 

  1. #AndroidProducts.mk 
  2. # This file should set PRODUCT_MAKEFILES to a list of product makefiles  
  3. #reference /device/ti/pandan/AndroidProducts.mk  
  4.  
  5. PRODUCT_MAKEFILES := \ 
  6.   $(LOCAL_DIR)/chip2012.mk 
  7.  

 

  1.  
  2. #BoardConfig.mk 
  3. #other set rail wifi gpu and more... 
  4. #reference /device/ti/pandan/BoardConfig.mk  and /device/samsung/maguro/BoardConfig.mk 
  5.  
  6. TARGET_CPU_ABI  :armeabi-v7a 
  7.  
  8. TARGET_NO_BOOTLOADER :true 
  9. TARGET_NO_KERNEL     :true 
  10.  
  11. #no audio 
  12. BOARD_USES_GENERIC_AUDIO :true 
  13.  
  14. #no camera 
  15. USE_CAMERA_STUB :true 
  16.  

 

  1.  
  2. #chip2012.mk  
  3. #reference /device/ti/pandan/full_panda.mk  and /device/samsung/maguro/full_maguro.mk 
  4.  
  5.  
  6. PRODUCT_NAME   :product_demo 
  7. PRODUCT_DEVICE :board_demo 
  8. PRODUCT_BRAND  :Android 
  9.  
  10. #add any apk about chip2012 
  11. PRODUCT_PACKAGES :ApiDemo