android添加新产品定义
来源:互联网 发布:mac 股票行情 编辑:程序博客网 时间:2024/04/29 21:51
原文网址: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
- <board_name>
产品定义文件
特殊产品变量定义在产品定义文件中,一个产品定义文件可以继承其它的产品定义文件,从而减少代码复制和便于维护。
在产品定义文件中包含的变量包括:
en_GB de_DE es_ES fr_CA
PRODUCT_PACKAGESLists the APKs to install.Calendar Contacts
PRODUCT_DEVICEName of the industrial designdream
PRODUCT_MANUFACTURERName of the manufactureracme
PRODUCT_BRANDThe brand (e.g., carrier) the software is customized for, if any PRODUCT_PROPERTY_OVERRIDESList of property assignments in the format "key=value" PRODUCT_COPY_FILESList 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_KEYSList of OTA public keys for the product PRODUCT_POLICYIndicate which policy this product should use PRODUCT_PACKAGE_OVERLAYSIndicate whether to use default resources or add any product specific overlaysvendor/acme/overlay
PRODUCT_CONTRIBUTORS_FILEHTML file containing the contributors to the project. PRODUCT_TAGSlist of space-separated words for a given product下面的片段描述一个典型产品定义文件。
$(call inherit-product, build/target/product/generic.mk)#OverridesPRODUCT_NAME := MyDevicePRODUCT_MANUFACTURER := acmePRODUCT_BRAND := acme_usPRODUCT_LOCALES := en_GB es_ES fr_FRPRODUCT_PACKAGE_OVERLAYS := vendor/acme/overlay
- android添加新产品定义
- android添加新产品定义
- Android系统新产品定制
- 新产品
- 新产品
- Magento给新产品页面添加分页
- ANDROID Porting系列二、配置一个新产品
- Android系统新产品定制(1)
- Android移植之系统配置新产品篇
- Android.mk中添加宏定义
- Android.mk中添加宏定义
- Android.mk中添加宏定义
- Android.mk中添加宏定义
- 在android&iphone平台上如何策划新产品
- Android系统新产品定制-0.1版(2)
- ArcGIS for iOS、Android、Windows新产品全线发布
- 【移动产品】ArcGIS for iOS、Android、Windows新产品全线发布
- Android 为一个新产品作编译配置(Product Definition Files)
- 子类抛出的异常类型不能比父类抛出的异常类型更宽泛!
- 工舞作倾
- JNI中jstring 和char* 之间的转换方法
- 笔试题13:采用UDP协议,编写一个简单发送字符串的程序(源码)
- Hadoop集群间distcp方案探讨
- android添加新产品定义
- ubuntu下wine中安装qq2010(转载)
- android 呼入电话的监听(来电监听)
- 友情的力量
- ios 拨打电话
- Heap Corruption
- usaco 3.4.3
- Android网络编程
- 你明白了