android添加新产品定义

转载 2015年07月07日 17:13:39

原文网址:http://www.kandroid.org/online-pdk/guide/build_new_device.html

配置一个新产品

详细描述

以下步骤描述如何为一个新的移动设备配置makefiles以让产品能够运行Android系统。

1. 在vendor/目录下创建一个公司目录

mkdir vendor/<company_name>

2. 在步骤1中你创建的公司目录下创建一个products目录

mkdir vendor/<company_name>/products/

3. 创建一个特定产品的makefile,叫做vendor/<company_name>/products/<first_product_name>.mk,它至少包含如下代码:

$(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk)
  #
  # Overrides
  PRODUCT_NAME := <first_product_name>
  PRODUCT_DEVICE := <board_name>

4. 为一个特定产品添加变量,可以被添加的变量定义在Product Definition文件中。

5. 在products目录中,创建一个AndroidProducts.mk文件,这个文件指向一个产品的makefiles,它主要负责寻找所有的产品。

  #
  # This file should set PRODUCT_MAKEFILES to a list of product makefiles
  # to expose to the build system.  LOCAL_DIR will already be set to
  # the directory containing this file. 
  #
  # This file may not rely on the value of any variable other than
  # LOCAL_DIR; do not use any conditionals, and do not look up the
  # value of any variable that isn't set in this file or in a file that
  # it includes.
  #
  
  PRODUCT_MAKEFILES := \
    $(LOCAL_DIR)/first_product_name.mk \

6. 在你的公司目录下创建一个特定板子目录,它要匹配PRODUCT_DEVICE变量,<board_name>将会引用上面特定产品的makefile。任何使用该板子的产品都将包含一个makefile。

mkdir vendor/<company_name>/<board_name>

7. 在前面一步创建的目录中创建一个BoardConfig.mk文件(vendor/<company_name>/<board_name>)

  # These definitions override the defaults in config/config.make for <board_name>
  #
  # TARGET_NO_BOOTLOADER := false
  # TARGET_HARDWARE_3D := false 
  #
  TARGET_USE_GENERIC_AUDIO := true

8. 如果你希望修改系统属性,在<board_name>目录中创建一个system.prop文件(vendor/<company_name>/<board_name>)。

  # system.prop for 
  # This overrides settings in the products/generic/system.prop file
  #
  # rild.libpath=/system/lib/libreference-ril.so
  # rild.libargs=-d /dev/ttyS0

9. 在products/AndroidProducts.mk中添加指向<second_product_name>.mk文件

  PRODUCT_MAKEFILES := \
    $(LOCAL_DIR)/first_product_name.mk \
    $(LOCAL_DIR)/second_product_name.mk

10. 在vendor/<company_name>/<board_name>的Android.mk文件中至少包含如下代码:

  # make file for new hardware  from 
  #
  LOCAL_PATH := $(call my-dir)
  #
  # this is here to use the pre-built kernel
  ifeq ($(TARGET_PREBUILT_KERNEL),)
  TARGET_PREBUILT_KERNEL := $(LOCAL_PATH)/kernel
  endif
  #
  file := $(INSTALLED_KERNEL_TARGET)
  ALL_PREBUILT += $(file)
  $(file): $(TARGET_PREBUILT_KERNEL) | $(ACP)
		$(transform-prebuilt-to-target)
  #
  # no boot loader, so we don't need any of that stuff..  
  #
  LOCAL_PATH := vendor/<company_name>/<board_name>
  #
  include $(CLEAR_VARS)
  #
  # include more board specific stuff here? Such as Audio parameters.      
  #

11. 为同种板子创建第二个产品,创建第二个特定的产品的makefile叫做vendor/company_name/products/<second_product_name>.mk,包含如下内容:

  $(call inherit-product, $(SRC_TARGET_DIR)/product/generic.mk)
  #
  # Overrides
  PRODUCT_NAME := <second_product_name>
  PRODUCT_DEVICE := <board_name>

到了这里,你应该有两个新产品,叫做<first_product_name>和<second_product_name>为了验证一个产品是否配置正确(例如<first_product_name>),执行如下命令:

  . build/envsetup.sh
  make PRODUCT-<first_product_name>-user

你应该能找到新版本的二进制文件位于/out/target/product/<board_name>。


新产品文件树

以下文件树说明在你的系统上照以上步骤完成应该有的。

  • <company_name>
    • <board_name>
      • Android.mk
      • product_config.mk
      • system.prop
    • products
      • AndroidProducts.mk
      • <first_product_name>.mk
      • <second_product_name>.mk

产品定义文件

特殊产品变量定义在产品定义文件中,一个产品定义文件可以继承其它的产品定义文件,从而减少代码复制和便于维护。

在产品定义文件中包含的变量包括:

Parameter Description Example
PRODUCT_NAME End-user-visible name for the overall product. Appears in the "About the phone" info.  
PRODUCT_MODEL End-user-visible name for the end product  
PRODUCT_LOCALES A space-separated list of two-letter language code, two-letter country code pairs that describe several settings for the user, such as the UI language and time, date and currency formatting. The first locale listed in PRODUCT_LOCALES is is used if the locale has never been set before. en_GB de_DE es_ES fr_CA
PRODUCT_PACKAGES Lists the APKs to install. Calendar Contacts
PRODUCT_DEVICE Name of the industrial design dream
PRODUCT_MANUFACTURER Name of the manufacturer acme
PRODUCT_BRAND The brand (e.g., carrier) the software is customized for, if any  
PRODUCT_PROPERTY_OVERRIDES List of property assignments in the format "key=value"  
PRODUCT_COPY_FILES List of words likesource_path:destination_path. The file at the source path should be copied to the destination path when building this product. The rules for the copy steps are defined in config/Makefile  
PRODUCT_OTA_PUBLIC_KEYS List of OTA public keys for the product  
PRODUCT_POLICY Indicate which policy this product should use  
PRODUCT_PACKAGE_OVERLAYS Indicate whether to use default resources or add any product specific overlays vendor/acme/overlay
PRODUCT_CONTRIBUTORS_FILE HTML file containing the contributors to the project.  
PRODUCT_TAGS list of space-separated words for a given product

下面的片段描述一个典型产品定义文件。

$(call inherit-product, build/target/product/generic.mk)

#Overrides
PRODUCT_NAME := MyDevice
PRODUCT_MANUFACTURER := acme
PRODUCT_BRAND := acme_us
PRODUCT_LOCALES := en_GB es_ES fr_FR
PRODUCT_PACKAGE_OVERLAYS := vendor/acme/overlay

举报

相关文章推荐

android添加新产品定义

原文网址:http://www.kandroid.org/online-pdk/guide/build_new_device.html 配置一个新产品 详细描述 以下步骤描述如何为一个新的移动设...

Android系统新产品定制(1)

配置过程分析: jackie@jackie-host:~/svn/vimicro$ . ./build/envsetup.sh including device/vimicro/vortex/ve...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

北京某公司"新产品研发项目管理"内训圆满结束!

2015年6月12--13日,北京某公司新产品研发项目管理培训,中科院计算所培训中心副校长谢老师主讲。    在21世纪,持续的竞争优势不仅来自于新技术,更多地出自卓越的新产品开发流...

如何解决新产品开发中的技术导向与需求导向之矛盾

如何解决新产品开发中的技术导向与需求导向之矛盾     一、到底谁说了算?       这是在新产品开发中,再常见不过的问题。在很多企业,每当开发新产品时,市场人员和技术人员互相吵架,甚至你告...
  • catoop
  • catoop
  • 2012-04-10 15:55
  • 3646

几维安全荣获2017 C3安全峰会投资论坛“明日之星 · 最佳创新产品”奖!

7 月 6 日至 7 日,以“智进 · 御远”为主题的“ 2017 C3 安全峰会”在成都世纪城会展中心隆重召开,新一代移动安全公司几维安全不仅作为本次峰会投资论坛中「最具潜力创客团队」六强参加了本次...

如何做好新产品上市前的评估工作

一项调查研究发现,在上市的新产品当中,绝大多数的新产品推广都是失败的,能够成活的新产品比例仅仅占到5%,这就意味着上市的新产品95%都在不同的推广时期“夭折”了,那么,企业应该在新产品上市前做好哪些工...

【新产品】.NET条形码控件 Spire.Barcode for .NET发布

Spire.Barcode for .NET是专门为.NET开发人员(C#,VB.NET,ASP.NET)设计的专业条形码组件,用于生成、读取、扫描1D和2D条形码。开发人员和程序员可以使用Spire...

英特尔首席执行官Brian Krzanich阐述了英特尔的一系列新产品

1月6日,在CES 2014(国际消费电子展)上,英特尔首席执行官Brian Krzanich阐述了英特尔的一系列新产品、计划和战略合作,旨在加速各种移动、可穿戴设备的创新以及个人开发者的自有互联作品...

2013 EMC新产品网络发布大会[演示文档下载]

2013 EMC新产品网络发布大会[演示文档下载] 大会简介 IT风潮瞬息万变,技术革新迅速更迭。当前,我们正处在以局域网、服务器、互联网为依托的第二平台。面向未来,以云服务、移动宽带网络、大数据分...

微软MIX11大会第一天主旨以及新产品发布总结

期盼已久的MIX11终于开幕了,虽然没有去现场,担心心情还是蛮激动的。MIX11第一天Keynote实况大概1个多小时,其中介绍了下一代微软浏览器,新工具更新以及新产品发布等,下面总结一下MIX11第...
  • jv9
  • jv9
  • 2011-04-13 06:34
  • 667
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)