【Qzone】入戏太深 第四步 创建一个新的Android产品项目 模拟器版

2015-1-30 19:54


创建一个新的Android产品项目 (模拟器版)


如果要开发自己的产品,则需要定义一个产品项目,过程如下。

首先我们定义产品的规格,假设如下:

公司名称 anne

产品名称 DWP

主板名称 devwangboard

然后按照下面的步骤新建产品项目:

第(1)步:在源代码目录下创建一个用户目录

命令mkdir vendor 
图片 
 
 
第(2)步:在用户目录下创建一个公司目录

命令mkdir vendor/anne
图片
图片

 
第(3)步:在公司目录下创建一个products目录

命令mkdir vendor/anne/products
图片
图片


第(4)步:在上面创建的products下创建一个makefile文件DWP.mk,这个文件至少包含如下代码:

# Overrides

PRODUCT_BRAND :=anne

PRODUCT_NAME := DWP

PRODUCT_DEVICE := devwangboard

如果没有BRAND则会出错,亲测,另外这个文件的内容还要添加如下,不然会开不了机。

PRODUCT_PACKAGES :=\

AlarmClock \

Email \

Fallback \

Launcher2 \

Music \

Camera \

Settings \

LatinIME \

NotePad \

SoundRecorder \

CertInstaller \

DeskClock

$(call inherit-product, $(SRC_TARGET_DIR)/product/core.mk)

# Overrides

PRODUCT_MANUFACTURER := anne

PRODUCT_BRAND :=anne

PRODUCT_NAME := DWP

PRODUCT_MODEL := Devwang Phone

PRODUCT_DEVICE := devwangboard

PRODUCT_LOCALES := zh_CN
产品makefile文件的编写有一套规则,详细的可以上网查询。
图片
图片

第(5)步:在vendor/anne/products目录下创建一个AndroidProducts.mk文件,定义Android产品配置文件mk的路径,也就是DWP.mk文件的路径,具体如下:
PRODUCT_MAKEFILES := \

 $(LOCAL_DIR)/DWP.mk
图片
图片


第(6)步:在公司目录下创建一个主板目录,此目录名必须与第(4)步中特定产品的makefile中PRODUCT_DEVICE变量值相同。这个目录下将包括一个makefile文件BoardConfig.mk,

它会被用到此板的产品使用。
命令mkdir vendor/anne/devwangboard
图片
图片

第(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

注意点号.和build之间有个空格,不然会出错。

图片


命令:lunch 产品号
图片


命令:make PRODUCT-DWP-user
图片 

编译需要一定的时间,一段漫长的等待。亲测要做顿饭+吃顿饭的时间,嘿嘿。

参考博客:http://blog.csdn.net/wh_19910525/article/details/7993266

OK 

编译完之后生成如下四个文件。

图片

运行模拟器需要配置的环境变量

export PATH=/home/devwang/android-2.3.7_r1/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=/home/devwang/android-2.3.7_r1/out/target/product/devwangboard

图片

运行模拟器 不带带参数
kernel也可以的
emulator -kernel ./kernel/goldfish/arch/arm/boot/zImage &
图片

打开设置关于手机查看
图片 

OK OK OK


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值