在android目录添加自己的项目工程
来源:互联网 发布:破解版软件是什么意思 编辑:程序博客网 时间:2024/05/18 23:57
1. kernel目录:
./customer/config/ 下添加内核配置文件
./customer/board/下添加工程对应的xxx.c文件,和xxx.h文件
2. device/目录:
该目录下新建自己项目的文件夹。其中的内容可以从现有的项目工程中拷贝过来
然后把文件夹里面的相关文件改名,针对自己的项目需要修改
如:xxx.mk(xxx是项目文件夹的名称)、Kernel.mk、BoardConfig.mk、vendorsetup.sh 、AndroidProducts.mk
3.uboot目录:
./customer/board/config/目录下建立项目对应的头文件 xxx.h
./customer/board目录下的readme.mk
./customer/board目录下新建对应的xxx.c文件。内存相关的timming.c等文件可以从其他工程目录下拷贝
修改./customer/board/config/下新建的xxx.h配置自己的uboot参数
修改./customer/board目录下内存相关的timming.c
编译u-boot:
make xxxx_config
make
===================================================================================
从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 以空格分隔开的指定产品关键词列表
- 在android目录添加自己的项目工程
- 如何在自己的Android项目中添加扫一扫功能
- 在github上添加自己的项目
- Android项目工程目录详解
- Android项目工程目录详解
- Android项目工程目录详解
- Android项目工程目录说明
- Android项目工程目录详解
- 在firefly Android 7.1 的lunch中添加自己的项目
- 在eclipse打开项目工程文件所在的目录
- Unity获取物体在项目工程的目录
- 在自己的工程里面添加新浪微博SDK的工程引用
- android项目之添加android源码目录下的签名
- 在项目中添加自己的代码注释
- 在spark项目中添加自己的jar包
- 如何在meaven项目中添加自己的jar包
- J2ME学习笔记(7)-- 如何在WKT中设置自己的工程目录
- 添加一个自己的工程到openWrt
- (Delphi)New,Getmem,ReallocMem联系与区别(转)
- 升级gcc g++编译器
- android socket用TCP方式,client端怎么监听服务器发送来的数据
- AWK 使用循环取出所有的字段
- 玩转抽象工厂模式
- 在android目录添加自己的项目工程
- 快速启动栏里的显示桌面不见了,桌面找出来
- 内核日志及printk结构浅析
- pgadmin 常用快捷键
- 10月18日总结
- 杨杰:来硅谷工作
- 解决问题"未能从性能计数器获得进程信息"
- 优雅的“重启”apche服务
- printk 实现分析