Android源代码定制:添加customize.mk文件进行分项目和分客户的定制

简介: Android源代码定制:添加customize.mk文件进行分项目和分客户的定制

在Android源代码定制中,通常需要根据不同的项目和客户需求来进行特定的修改。然而,如何做到在保证系统原始内容不被混淆的同时,灵活地添加自定义的bin、应用程序、引导动画等内容,以及修改属性呢?这篇文章就将分享一个简洁有效的方法——添加customize.mk文件。

前期准备

首先,需要在源代码根目录下创建一个customize.mk目录,以用于存放的定制内容。在这个目录下,你可以根据需要创建子目录,例如appsbinbootanimation等。可以将自定义的应用程序、二进制文件、引导动画文件等分别放入这些子目录中。

例如,下面的树状结构图就是一个customize.mk目录的样例:

.
├── apps
│   ├── common
│   └── r58
│       └── SougouInput
│           ├── Android
│           └── SogouInput.apk
├── bin
│   ├── candump
│   ├── cansend
│   ├── netcfg
│   └── watchprops
├── bootanimation
└── customize.mk

在这个例子中,在apps/r58目录下添加了搜狗输入法的apk文件,以及在bin目录下添加了一些自定义的二进制文件。

修改源代码

然后,需要在Android的设备配置文件device.mk中,包含的customize.mk文件,以应用的定制内容。例如,如果你的设备配置文件是device/rockchip/rk356x/device.mk,你可以在其中添加一行:

include vendor/customize/customize.mk

这样,当编译系统时,就会自动读取并应用customize.mk文件中的内容。

编写customize.mk

接下来,就可以开始在customize.mk文件中添加的定制内容了。在这个文件中,可以通过条件判断语句(例如ifeq),来根据不同的项目和客户进行不同的设置。

例如,下面的customize.mk文件就实现了这样的功能:

# 在customize.mk中
include $(call all-subdir-makefiles)
$(warning Enter customize.mk is included $(TARGET_PRODUCT))
 
ifeq ($(TARGET_PRODUCT),rk3568_r)
$(warning Enter rk3568_r)
PRODUCT_PACKAGES += \
    SogouInput
 
PRODUCT_COPY_FILES += \
    vendor/customize/bin/netcfg:system/bin/netcfg \
    vendor/customize/bin/watchprops:system/bin/watchprops 
 
PRODUCT_PROPERTY_OVERRIDES += persist.internet_adb_enable=1
PRODUCT_PROPERTY_OVERRIDES += persist.vendor.orientation=0
PRODUCT_PACKAGES += libvendoroper
PRODUCT_PACKAGES += vendor_test
endif

在这个文件中,首先包含了所有的子目录,然后判断当前的目标产品是否为rk3568_r。如果是,那么就添加了一些定制的应用程序和二进制文件,以及修改了一些系统属性作为示例。我顺便加了一些打印 ,编译源码的时候可以看打印黄色字体是否进入了 我们指定的项目流程。

结束语

使用customize.mk文件,可以在不改动系统原始内容的基础上,灵活地添加自定义的内容和修改属性。这使得能够更方便地进行Android源代码的定制。希望这篇文章对你的工作有所帮助,如果有任何问题或有更好的办法,欢迎留言讨论

相关文章
|
9天前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
55 1
|
4天前
|
Java 开发工具 Android开发
探索安卓与iOS开发的差异:平台选择对项目的影响
在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据着重要的位置。本文旨在深入探讨这两个平台在开发过程中的主要差异,包括编程语言、开发工具、用户界面设计、性能优化以及市场分布等方面。通过对比分析,我们将揭示平台选择如何影响项目规划、执行效率和最终成果,为开发者在选择适合自己项目需求的平台时提供参考依据。
|
10天前
|
开发工具 git 索引
repo sync 更新源码 android-12.0.0_r34, fatal: 不能重置索引文件至版本 ‘v2.27^0‘。
本文描述了在更新AOSP 12源码时遇到的repo同步错误,并提供了通过手动git pull更新repo工具来解决这一问题的方法。
31 1
|
10天前
|
搜索推荐 Android开发
学习AOSP安卓系统源代码,需要什么样的电脑?不同配置的电脑,其编译时间有多大差距?
本文分享了不同价位电脑配置对于编译AOSP安卓系统源代码的影响,提供了从6000元到更高价位的电脑配置实例,并比较了它们的编译时间,以供学习AOSP源代码时电脑配置选择的参考。
29 0
学习AOSP安卓系统源代码,需要什么样的电脑?不同配置的电脑,其编译时间有多大差距?
|
16天前
|
IDE 开发工具 Android开发
探索安卓与iOS开发的差异:平台选择对项目成功的影响
在移动应用开发的广阔天地中,安卓和iOS两大平台各领风骚,引领着技术进步的潮流。本文旨在深入剖析这两个平台在开发过程中的关键差异点,包括编程语言、开发工具、用户界面设计以及市场分布等方面。通过对比分析,我们不仅能更好地理解每个平台的独特优势,还能洞察这些差异如何影响项目决策和最终成果。无论你是开发者还是企业决策者,了解这些内容都将助你一臂之力,在选择适合自己项目的开发平台时做出更明智的决策。
|
16天前
|
IDE 开发工具 Android开发
探索iOS与安卓开发的差异:平台选择对项目成功的影响
【8月更文挑战第22天】在数字化时代,移动应用成为企业和个人展示创意、提供服务的重要工具。iOS和安卓作为两大主流平台,各自拥有独特的优势和限制。本文将深入探讨这两个平台在开发过程中的主要差异,以及这些差异如何影响项目规划、用户体验和市场策略。通过比较分析,旨在为开发者和企业决策者提供有价值的见解,帮助他们根据项目需求做出明智的平台选择。
|
8天前
|
存储 监控 数据库
Android经典实战之OkDownload的文件分段下载及合成原理
本文介绍了 OkDownload,一个高效的 Android 下载引擎,支持多线程下载、断点续传等功能。文章详细描述了文件分段下载及合成原理,包括任务创建、断点续传、并行下载等步骤,并展示了如何通过多种机制保证下载的稳定性和完整性。
16 0
|
17天前
|
SQL 分布式计算 大数据
Android项目架构设计问题之平衡技术选型与业务需求之间的关系如何解决
Android项目架构设计问题之平衡技术选型与业务需求之间的关系如何解决
21 0
|
17天前
|
开发工具 Android开发
Android项目架构设计问题之SDK内部减少每次回调时的冗余判断逻辑如何解决
Android项目架构设计问题之SDK内部减少每次回调时的冗余判断逻辑如何解决
13 0
|
17天前
|
开发工具 Android开发
Android项目架构设计问题之外部客户方便地设置回调如何解决
Android项目架构设计问题之外部客户方便地设置回调如何解决
14 0