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

相关推荐
DengDongQi6 分钟前
Jetpack Compose 滚轮选择器
android
stevenzqzq7 分钟前
Android Studio Logcat 基础认知
android·ide·android studio·日志
代码不停16 分钟前
MySQL事务
android·数据库·mysql
朝花不迟暮21 分钟前
使用Android Studio生成apk,卡在Running Gradle task ‘assembleDebug...解决方法
android·ide·android studio
yngsqq36 分钟前
使用VS(.NET MAUI)开发第一个安卓APP
android·.net
Android-Flutter1 小时前
android compose LazyVerticalGrid上下滚动的网格布局 使用
android·kotlin
Android-Flutter1 小时前
android compose LazyHorizontalGrid水平滚动的网格布局 使用
android·kotlin
千里马-horse1 小时前
RK3399E Android 11 将自己的库放到系统库方法
android·so·设置系统库
美狐美颜sdk1 小时前
Android直播美颜SDK:选择指南与开发方案
android·人工智能·计算机视觉·第三方美颜sdk·视频美颜sdk·人脸美型sdk
我命由我123451 小时前
Kotlin 面向对象 - 装箱与拆箱
android·java·开发语言·kotlin·android studio·android jetpack·android-studio