返回首页
当前位置: 主页 > 讲师博文 >

Android系统移植及编译(三)

时间:2014-08-22 14:51来源:华嵌长沙中心 作者:周龙 点击:
作者: 华嵌嵌入式培训 长沙中心 讲师:周龙 要在android源码中增加对自己特定产品的支持,只需要在[android_root]/device目录下,增加自己的产品目录和配置文件就可以了。如: [android_
  

           在Android源码中增加对自己产品的支持

 

 作者: 华嵌嵌入式培训 长沙中心    讲师:周龙

 

   要在android源码中增加对自己特定产品的支持,只需要在[android_root]/device目录下,增加自己的产品目录和配置文件就可以了。如:

        [android_root]/device/whhq/tq210/

  whhq:  一般为公司名,或者其他任意的目录名;

   tq210: 具体产品名;

在上面增加的产品目录下,增加相应的配置文件(配置文件主要配置一些环境变量,指定哪些模块需要编译,哪些文件需要拷贝到最终的目标板上面去等等)。三个必须要有的文件:

        vendersetup.sh

        AndroidProducts.mk

        BoardConfig.mk

⑴vendersetup.sh

   这个文件会被build/envsetup.sh调用执行,所以这个文件里可以调用所有的在build/envsetup.sh定义的变量和函数;一般地,我们在这个文件里调用build/envsetup.sh定义的add_lunch_combo函数,以增加一个lunch选项:

  如:add_lunch_combo  $TARGET_PRODUCT-$TARGET_BUILD_VARIANT

  $TARGET_PRODUCT : 用具体的目标产品名替代

  $TARGET_BUILD_VARIANT: eng, user ,userdebug

  如下,一个很简单的例子:(device/whhq/tq210/vendersetup.sh)

 

⑵AndroidProducts.mk

      这个是产品的主makefile,主要设置PRODUCT_MAKEFILES := 一系列与产品相关的makefile文件;

        上述变量中至少要包含一个目标产品同名的.mk文件,即$(TARGET_PRODUCT).mk;

        被包含的.mk文件,主要定义哪些packages或资源文件将要编译到最终的system.img中。

如下,一个很简单的例子:(device/whhq/tq210/AndroidProducts.mk)

  

full_tq210.mk里面主要调用full_base.mk(这里面定义一些的基本的变量,及需要编译的模块等),另外再定义一些与具体产品相关的变量,以及需要拷贝到目标板上面去的文件。

 

 

⑶BoardConfig.mk

主要设置前面讲述的那些环境变量的值:

如下,一个很简单的例子:(device/whhq/tq210/BoardConfig.mk)

    

      

 

未完.....待续.....

更多内容请关注华嵌官网

 

------分隔线----------------------------

  • 胡老师
  • 李老师
  • 周老师
  • 李老师
合作伙伴
  • 武汉工程大学合作培训机构

  • 国家信息技术紧缺人才培养工程(NITE)

  • ARM公司全球授权培训中心

  • 国内首家Symbian授权培训

  • 微软全球嵌入式合作伙伴

  • Altera全球合作培训机构