创建一个新的Android产品项目

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.propfile

#

# 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 Audioparameters.

#


(10)编译新的项目

. build/envsetup.sh

make PRODUCT-MTP-user


补充内容:

(1)上面的新建的几个文件的编写可以参考build/target/board/generic目录下的AndroidBoard.mkBoardConfig.mksystem.prop


(2)产品makefile的编写规则,变量定义解释如下:

PRODUCT_NAME 终端用户可见的产品名称,对应到“Settings“中的“Aboutthe phone”信息

PRODUCT_MODEL End-user-visible name for the end product

PRODUCT_LOCALES 1个以空格分隔开的两个字母的语言码加上2字节的国家码的列表,影响到"Settings"中的语言,时间,日期和货币格式设置,

举例:en_GBde_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 以空格分隔开的指定产品关键词列表


本文来自CSDN博客,转载请标明出处:ttp://blog.csdn.net/jiajie961/archive/2010/11/07/5993126.aspx

你可能感兴趣的:(创建一个新的Android产品项目)