(8)Android之路====Android新增自定义项目配置

本次介绍并不是很深入,仅作为一种参考学习,在lunch的时候,打印出的每一条都是一个完整的项目,这里简单地介绍如何新增一个自定义的完整项目.

因为手头上有一个展锐的机子,所以,这里就以展锐平台为例进行介绍,其它平台配置也是类似的.主要分为4个部分:
PS: 手机SoC,展锐全球出货量占比27%,仅次于qcom, mtk,虽然不是技术第三,但销量目前稳稳的全球第三

1).Android层次项目配置
2).kernel层次项目配置
3).uboot层次项目配置
4).chipram层次项目配置

1).Android层次项目配置

配置一般是在device目录下面,我们这里也是把工程配置在这个下面,本次讲解比较浅显,主要以实现为目的.我手头上的机子是SC9832E,项目代号sharkle,我们这里基于官方提供的参考工程上进行修改来得到我们自己的工程.官方参考工程路径为: device\sprd\sharkle\, 我们参考下面的sp9832e_1h10工程,这里直接复制一份,然后在它的基础上进行修改:

# 进入工程目录
cd device/sprd/sharkle/

# 拷贝工程并重命令新工程为xshark_one_1h10
cp -avR sp9832e_1h10 xshark_one_1h10

# 进入xshark_one_1h10
cd xshark_one_1h10

# list
ls
AndroidBoard.mk     features  sp9832e_1h10_base.mk     system.prop
Android.mk          log_conf  sp9832e_1h10_native.mk   temp_img
AndroidProducts.mk  overlay   sp9832e_1h10_nosec.mk    vendorsetup.sh
BoardConfig.mk      recovery  sp9832e_1h10_oversea.mk
CleanSpec.mk        rootdir   sp9832e_1h10.xml

# 删除不必要的工程配置文件
rm sp9832e_1h10_nosec.mk sp9832e_1h10_oversea.mk

# 修改工程为我们项目名称
mv sp9832e_1h10_native.mk xshark_one_1h10_native.mk

# 修改自定义工程
vim xshark_one_1h10_native.mk

做完上述步骤之后,我们就已经打开了xshark_one_1h10_native.mk文件,我们做如下修改:

--- device/sprd/sharkle/sp9832e_1h10/sp9832e_1h10_native.mk      2019-04-01 14:31:06.243089733 +0800
+++ device/sprd/sharkle/xshark_one_1h10/xshark_one_1h10_native.mk   2019-06-10 15:06:57.457040290 +0800
@@ -18,9 +18,9 @@ export KERNEL_PATH
 BOARD_PATH=$(KERNEL_PATH)/sprd-board-config/sharkle/sp9832e_1h10/sp9832e_1h10_native
 include $(BOARD_PATH)

-$(call inherit-product, device/sprd/sharkle/sp9832e_1h10/sp9832e_1h10_base.mk)
+$(call inherit-product, device/sprd/sharkle/xshark_one_1h10/sp9832e_1h10_base.mk)
 PLATDIR := device/sprd/sharkle
-TARGET_BOARD := sp9832e_1h10
+TARGET_BOARD := xshark_one_1h10
 BOARDDIR := $(PLATDIR)/$(TARGET_BOARD)
 PLATCOMM := $(PLATDIR)/common
 ROOTDIR := $(BOARDDIR)/rootdir
@@ -33,10 +33,10 @@ CHIPRAM_DEFCONFIG := sp9832e_1h10
 UBOOT_DEFCONFIG := sp9832e_1h10
 UBOOT_TARGET_DTB := sp9832e_1h10

-PRODUCT_NAME := sp9832e_1h10_native
-PRODUCT_DEVICE := sp9832e_1h10
+PRODUCT_NAME := xshark_one_1h10_native
+PRODUCT_DEVICE := xshark_one_1h10
 PRODUCT_BRAND := SPRD
-PRODUCT_MODEL := sp9832e_1h10_native
+PRODUCT_MODEL := xshark_one_1h10_native
 PRODUCT_WIFI_DEVICE := sprd
 PRODUCT_MANUFACTURER := sprd

我们把修改好的项目添加到AndroidProducts.mk中,如下:

--- device/sprd/sharkle/sp9832e_1h10/AndroidProducts.mk     2018-12-21 17:57:53.330083114 +0800
+++ device/sprd/sharkle/xshark_one_1h10/AndroidProducts.mk  2019-06-10 10:50:50.605172333 +0800
@@ 
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android AOSP 源码的 device 目录下添加自定义的 framework 模块的步骤如下: 1. 创建新的模块目录: 在 device/{vendor_name}/{device_name}/ 目录下创建一个新的子目录,用于存放自定义的 framework 模块。例如,可以创建一个名为 myframework 的目录: ``` mkdir -p device/{vendor_name}/{device_name}/myframework ``` 2. 添加 Android.mk 文件: 在 myframework 目录下创建一个名为 Android.mk 的文件,用于定义自定义的 framework 模块。例如,可以添加以下代码: ``` LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := myframework LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := JAVA_LIBRARIES LOCAL_SRC_FILES := MyFramework.java LOCAL_SDK_VERSION := current LOCAL_JAVA_LIBRARIES := core-libart LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 LOCAL_STATIC_ANDROID_LIBRARIES := libsqlite include $(BUILD_JAVA_LIBRARY) ``` 其中: - LOCAL_MODULE 定义了模块名称; - LOCAL_MODULE_TAGS 定义了模块的标签,optional 表示该模块是可选的; - LOCAL_MODULE_CLASS 定义了模块的类型,JAVA_LIBRARIES 表示该模块是一个 Java 库; - LOCAL_SRC_FILES 定义了该模块中包含的 Java 源代码文件; - LOCAL_JAVA_LIBRARIES 定义了该模块所依赖的 Java 库; - LOCAL_STATIC_JAVA_LIBRARIES 和 LOCAL_STATIC_ANDROID_LIBRARIES 定义了该模块所依赖的静态库和 Android 库。 3. 添加 Android.bp 文件: 在 myframework 目录下创建一个名为 Android.bp 的文件,用于定义自定义的 framework 模块。例如,可以添加以下代码: ``` java_library { name: "myframework", srcs: ["MyFramework.java"], static_libs: [ "core-libart", "android-support-v4", ], shared_libs: [ "libsqlite", ], sdk_version: "current", installable: true, } ``` 其中: - name 定义了模块名称; - srcs 定义了该模块中包含的 Java 源代码文件; - static_libs 定义了该模块所依赖的静态库; - shared_libs 定义了该模块所依赖的共享库; - sdk_version 定义了该模块所需的 Android SDK 版本; - installable 定义了该模块是否可安装。 4. 编译 Android 系统: 在编译 Android 系统之前,需要先执行以下命令: ``` source build/envsetup.sh ``` 然后编译 Android 系统: ``` lunch {device_name}-{build_type} make -j{n} ``` 其中 {device_name} 是设备名称,{build_type} 是编译类型(如 userdebug),{n} 是编译线程数。 编译完成后,就可以在 Android 系统中使用自定义的 framework 模块了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值