Android 构建配置中的变量(通常在设备制造商或定制 ROM 的 AndroidProducts.mk 或产品配置文件中定义)

以下是 Android 构建系统中常见的用于产品配置、资源复制和构建规则的变量


1. PRODUCT_COPY_FILES

  • 作用:指定需要从源码树复制到镜像的文件。

  • 示例

    makefile 复制代码
    PRODUCT_COPY_FILES += \
        device/manufacturer/device_name/file.conf:$(TARGET_COPY_OUT_VENDOR)/etc/file.conf

2. PRODUCT_PACKAGES

  • 作用:定义需要打包进系统镜像的应用程序或模块(如 APK、可执行文件、库等)。

  • 示例

    makefile 复制代码
    PRODUCT_PACKAGES += \
        Camera2 \
        Contacts \
        libexample

3. PRODUCT_PROPERTY_OVERRIDES

  • 作用:覆盖系统属性值,通常用于设置设备特定的系统行为。

  • 示例

    makefile 复制代码
    PRODUCT_PROPERTY_OVERRIDES += \
        ro.product.model=MyDevice \
        dalvik.vm.heapsize=256m

4. PRODUCT_DEFAULT_PROPERTY_OVERRIDES

  • 作用 :设置默认的系统属性,优先级低于 PRODUCT_PROPERTY_OVERRIDES

  • 示例

    makefile 复制代码
    PRODUCT_DEFAULT_PROPERTY_OVERRIDES += \
        ro.adb.secure=1

5. PRODUCT_TAGS

  • 作用:为产品添加标签,用于控制某些功能是否启用。

  • 示例

    makefile 复制代码
    PRODUCT_TAGS += dalvik.gc.type-precise

6. PRODUCT_LOCALES

  • 作用:定义支持的语言和地区设置。

  • 示例

    makefile 复制代码
    PRODUCT_LOCALES := en_US zh_CN

7. PRODUCT_AAPT_CONFIG

  • 作用:指定 AAPT 工具在打包资源时使用的资源配置。

  • 示例

    makefile 复制代码
    PRODUCT_AAPT_CONFIG := normal large xlarge

8. PRODUCT_AAPT_PREF_CONFIG

  • 作用:指定首选的资源配置(如屏幕密度)。

  • 示例

    makefile 复制代码
    PRODUCT_AAPT_PREF_CONFIG := xxhdpi

9. PRODUCT_BOOT_JARS

  • 作用:定义在启动过程中加载的 Java 库(JAR 文件)。

  • 示例

    makefile 复制代码
    PRODUCT_BOOT_JARS += \
        framework \
        ext

10. PRODUCT_SYSTEM_SERVER_JARS

  • 作用:定义系统服务所需的 JAR 文件。

  • 示例

    makefile 复制代码
    PRODUCT_SYSTEM_SERVER_JARS += services

11. PRODUCT_USES_LIBCXX

  • 作用:指定是否使用 libc++ 而不是 libstdc++。

  • 示例

    makefile 复制代码
    PRODUCT_USES_LIBCXX := true

12. PRODUCT_CHARACTERISTICS

  • 作用:定义设备的特性(如手机、平板、电视等)。

  • 示例

    makefile 复制代码
    PRODUCT_CHARACTERISTICS := phone

13. PRODUCT_COPY_FILES_SKIP_STRIP

  • 作用:指定不需要 strip 的文件列表。

  • 示例

    makefile 复制代码
    PRODUCT_COPY_FILES_SKIP_STRIP += \
        system/bin/example_binary

14. PRODUCT_EXTRA_RECOVERY_KEYS

  • 作用:为 Recovery 添加额外的信任密钥。

  • 示例

    makefile 复制代码
    PRODUCT_EXTRA_RECOVERY_KEYS += \
        key1 \
        key2

15. PRODUCT_GMS_CLIENTID_BASE

  • 作用:定义 GMS 客户端 ID 的基础字符串。

  • 示例

    makefile 复制代码
    PRODUCT_GMS_CLIENTID_BASE := android-google

16. PRODUCT_MANUFACTURER

  • 作用:定义设备制造商名称。

  • 示例

    makefile 复制代码
    PRODUCT_MANUFACTURER := MyCompany

17. PRODUCT_MODEL

  • 作用:定义设备型号名称。

  • 示例

    makefile 复制代码
    PRODUCT_MODEL := MyDeviceModel

18. PRODUCT_NAME

  • 作用:定义产品的名称。

  • 示例

    makefile 复制代码
    PRODUCT_NAME := my_product

19. PRODUCT_DEVICE

  • 作用:定义设备的硬件名称。

  • 示例

    makefile 复制代码
    PRODUCT_DEVICE := my_device

20. PRODUCT_BRAND

  • 作用:定义设备的品牌名称。

  • 示例

    makefile 复制代码
    PRODUCT_BRAND := MyBrand

这些变量共同构成了 Android 构建系统中的产品配置体系。

相关推荐
ujainu8 小时前
护眼又美观:Flutter + OpenHarmony 鸿蒙记事本一键切换夜间模式(四)
android·flutter·harmonyos
三少爷的鞋8 小时前
为什么我不在 Android ViewModel 中直接处理异常?
android
草莓熊Lotso9 小时前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
恋猫de小郭9 小时前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter
工程师老罗16 小时前
如何在Android工程中配置NDK版本
android
Libraeking19 小时前
破壁行动:在旧项目中丝滑嵌入 Compose(混合开发实战)
android·经验分享·android jetpack
市场部需要一个软件开发岗位19 小时前
JAVA开发常见安全问题:Cookie 中明文存储用户名、密码
android·java·安全
JMchen12321 小时前
Android后台服务与网络保活:WorkManager的实战应用
android·java·网络·kotlin·php·android-studio
crmscs1 天前
剪映永久解锁版/电脑版永久会员VIP/安卓SVIP手机永久版下载
android·智能手机·电脑
localbob1 天前
杀戮尖塔 v6 MOD整合版(Slay the Spire)安卓+PC端免安装中文版分享 卡牌肉鸽神作!杀戮尖塔中文版,电脑和手机都能玩!杀戮尖塔.exe 杀戮尖塔.apk
android·杀戮尖塔apk·杀戮尖塔exe·游戏分享