创建一个新的Android产品项目

http://blog.csdn.net/jiajie961/archive/2010/11/07/5993126.aspx


从google网站上下载的android源代码编译时默认是编译google设定的产品,如果要开发自己的产品,
则需要重新定义一个产品项目,过程如下:
首先我们定义产品的规格,举例如下:
公司名称 ardent
产品名称  MTP
主板名称 merlin
然后安装下面的步骤新建产品项目:
(1)在源代码目录下创建一个用户目录
mkdir vendor

(2)在用户目录下创建一个公司目录
mkdir vendor/merlin

(3)在公司目录下创建一个products目录
mkdir vendor/merlin/products

(4)在上面创建的products下创建一个产品makefile文件MTP.mk,内容如下:
PRODUCT_PACKAGES := \
    AlarmClock \
    Email \
    Fallback \
    Launcher2 \
    Music \
    Camera \
    Settings \
    LatinIME \
    NotePad \
    SoundRecorder \
    Bluetooth \
    CertInstaller \
    DeskClock


$(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk)
#
# Overrides
PRODUCT_MANUFACTURER := ardent
PRODUCT_BRAND := ardent
PRODUCT_NAME := MTP
PRODUCT_MODEL := MultiMedia Touch Phone
PRODUCT_DEVICE := merlin
PRODUCT_LOCALES := zh_CN
产品makefile文件的编写有一套规则,详细情况见此文后面的补充内容。

(5)在vendor/merlin/products目录下创建一个AndroidProducts.mk文件,定义Android产品配置文件的路径,具体如下:
PRODUCT_MAKEFILES := \
  $(LOCAL_DIR)/MTP.mk

(6)在公司目录下创建一个主板目录
mkdir vendor/ardent/merlin

(7)在主板目录下新建一个主板配置文件BoardConfig.mk,内容如下:
TARGET_NO_BOOTLOADER := true
TARGET_NO_KERNEL := true
TARGET_CPU_ABI := armeabi
BOARD_USES_GENERIC_AUDIO := true
USE_CAMERA_STUB := true


(8)如果你希望修改系统属性,则可以在主板目录下新建一个system.prop文件,该文件中可以修改系统属性,举例如下:
# 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)在主板目录下建议一个Android的主板配置文件AndroidBoard.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/ardent/merlin
include $(CLEAR_VARS)
#
# include more board specific stuff here? Such as Audio parameters.      
#

(10)编译新的项目
. build/envsetup.sh
make PRODUCT-MTP-user

补充内容:
(1)上面的新建的几个文件的编写可以参考build/target/board/generic目录下的AndroidBoard.mk,BoardConfig.mk和system.prop
(2)产品makefile的编写规则,变量定义解释如下:
PRODUCT_NAME      终端用户可见的产品名称,对应到“Settings“中的“About the phone”信息      
PRODUCT_MODEL     End-user-visible name for the end product     
PRODUCT_LOCALES 1个以空格分隔开的两个字母的语言码加上2字节的国家码的列表,影响到"Settings"中的语言,时间,日期和货币格式设置,
                                举例:en_GB de_DE es_ES fr_CA
PRODUCT_PACKAGES 需要安装的APK应用程序列表
PRODUCT_DEVICE     工作设计名称,即主板名称
PRODUCT_MANUFACTURER     生产厂家
PRODUCT_BRAND     软件设计针对的客户品牌     
PRODUCT_PROPERTY_OVERRIDES     以"key=value"为格式的属性列表
PRODUCT_COPY_FILES 文件复制列表,格式为“原文件路径:目的文件路径”,编译过程中会按照此规则复制文件     
PRODUCT_OTA_PUBLIC_KEYS 产品的OTA公共密匙列表
PRODUCT_POLICY     声明此产品使用的政策     
PRODUCT_PACKAGE_OVERLAYS 指示是否使用默认资源或添加任何产品特定的资源,例如:vendor/acme/overlay
PRODUCT_CONTRIBUTORS_FILE HTML文件中包含项目的贡献者     
PRODUCT_TAGS 以空格分隔开的指定产品关键词列表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值