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

相关推荐
2301_771717219 小时前
解决mysql报错:1406, Data too long for column
android·数据库·mysql
dvjr cloi10 小时前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
随遇丿而安12 小时前
第2周:`EditText` 不只是输入框,它是 Android 输入体验的第一道门
android
我命由我1234512 小时前
Kotlin 开发 - lateinit 关键字
android·java·开发语言·kotlin·android studio·android-studio·android runtime
一起搞IT吧13 小时前
Android性能系列专题理论之十:systrace/perfetto相关指标知识点细节含义总结
android·嵌入式硬件·智能手机·性能优化
小书房17 小时前
Kotlin的by
android·开发语言·kotlin·委托·by
jinanwuhuaguo18 小时前
(第二十八篇)OpenClaw成本与感知的奇点——从“Token封建制”到“全民养虾”的本体论地基
android·人工智能·kotlin·拓扑学·openclaw
xxjj998a18 小时前
Laravel4.x核心特性全解析
android·mysql·laravel
JoshRen19 小时前
2026教程:在Android Termux中集成Gemini 3镜像站实现移动端文档自动处理与摘要生成(附国内免费方案)
android
诸神黄昏EX20 小时前
Android Google KEY
android