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

相关推荐
冬奇Lab6 小时前
MediaPlayer 播放器架构:NuPlayer 的 Source/Decoder/Renderer 三驾马车
android·音视频开发·源码阅读
炸炸鱼.7 小时前
Python 操作 MySQL 数据库
android·数据库·python·adb
用户41659673693559 小时前
nextlib 项目架构与深度技术指南 (Architecture & Technical Master Guide)
android
aq55356009 小时前
Laravel10.x重磅升级,新特性一览
android·java·开发语言
Trouvaille ~10 小时前
【MySQL篇】数据类型:存储数据的基础
android·数据库·mysql·adb·字符集·数据类型·基础入门
2401_8858850411 小时前
开发视频短信接口好开发吗?图文视频短信接口对接教程
android·音视频
千码君201612 小时前
kotlin:Jetpack Compose 给APP添加声音(点击音效/背景音乐)
android·开发语言·kotlin·音效·jetpack compose
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.12 小时前
MySQL半同步复制与GTID实战详解
android·mysql·adb
用户416596736935513 小时前
深度解码:记一次视频时间戳(PTS)异常导致的播放故障排查
android
大白菜和MySQL15 小时前
linux系统环境常用命令
android·linux·adb