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 构建系统中的产品配置体系。

相关推荐
2501_9159090627 分钟前
IPA 深度混淆是什么意思?从混淆强度到实际效果的解读
android·ios·小程序·https·uni-app·iphone·webview
LT10157974441 小时前
2026年手机机型兼容性测试选型指南:安卓机型碎片化、APP闪退UI错乱如何解决
android·测试工具·ui·智能手机
阿pin2 小时前
Android随笔-view是如何显示到屏幕上
android·view
恋猫de小郭2 小时前
Flutter material/cupertino 解耦最新进展,已经在做新样式了
android·前端·flutter
在书中成长2 小时前
HarmonyOS 小游戏《对战五子棋》开发第17篇 - AI的两种评估策略
android·java·javascript
私人珍藏库3 小时前
[Android] Npatch-免Root框架+可内置模块
android·人工智能·智能手机·工具·软件
黄林晴3 小时前
KMP 正式支持 SwiftPM:CocoaPods 迁移配置指南
android·ios·kotlin
AFinalStone4 小时前
Android 7系统网络(二)内核层—netfilter_iptables与路由策略
android·网络
吠品4 小时前
Mac定时关机、开机自动化:用shutdown和pmset就够了
android·java·开发语言
2601_9637713719 小时前
Offloading WP-Cron and Securing Ticket Webhooks on Enterprise IT Sites
android