zoukankan      html  css  js  c++  java
  • 「转」Android编译选项中的eng、user、user-debug

    Android编译选项中eng、user、user-debug主要区别

    reference:

    使用编译类型

    在针对特定产品进行编译时,如果能在最终发布版本的基础上进行细微修改,通常会非常有用。

    在模块定义中,模块可以通过 LOCAL_MODULE_TAGS 指定标记,这些标记可以是以下一个或多个值:optional(默认)、debugeng

    1、如果某个模块通过 LOCAL_MODULE_TAGS 指定标记,标记默认为 eng。仅当编译选项为eng时,系统才会安装该模块。

    2、如果某个模块通过 LOCAL_MODULE_TAGS 指定标记,标记默认为 debug。仅当编译选项为eng/user-debug时,系统才会安装该模块。

    3、如果某个模块没有通过 LOCAL_MODULE_TAGS 指定标记,则其标记默认为 optional。仅当 PRODUCT_PACKAGES 的产品配置需要可选模块时,系统才会安装可选模块。

    已定义的编译类型

    类型 意义
    eng 这是默认的编译类型。安装带有 eng 和/或 debug 标记的模块。除了带有标记的模块之外,还会根据产品定义文件安装相应模块。ro.secure=0ro.debuggable=1ro.kernel.android.checkjni=1adb 默认处于启用状态。
    user 这是旨在用作最终版本配置步骤的编译类型。 安装带有 user 标记的模块。除了带有标记的模块之外,还会根据产品定义文件安装相应模块。ro.secure=1ro.debuggable=0adb 默认处于停用状态。
    userdebug 除了以下几点之外,其余均与 user 相同: 还会安装带有 debug 标记的模块。ro.debuggable=1adb 默认处于启用状态。

    详细情况为:

    user userdebug eng
    仅安装标签为 user 的模块 安装标签为 user、debug 的模块 安装标签为 user、debug、eng 的模块
    设定属性 ro.secure=1,打开安全检查功能 设定属性 ro.secure=1,打开安全检查功能 设定属性 ro.secure=0,关闭安全检查功能
    设定属性 ro.debuggable=0,关闭应用调试功能 设定属性 ro.debuggable=1,启用应用调试功能 设定属性 ro.debuggable=1,启用应用调试功能

    设定属性 ro.kernel.android.checkjni=1,启用 JNI 调用检查
    默认关闭 adb 功能 默认打开 adb 功能 默认打开 adb 功能
    打开 Proguard 混淆器 打开 Proguard 混淆器 关闭 Proguard 混淆器
    打开 DEXPREOPT 预先编译优化 打开 DEXPREOPT 预先编译优化 关闭 DEXPREOPT 预先编译优化

    注意:如果目标构建变体为 user,则 adb 无法获取 root 权限。

  • 相关阅读:
    109. 有序链表转换二叉搜索树
    108. 将有序数组转换为二叉搜索树
    235. 二叉搜索树的最近公共祖先
    538. 把二叉搜索树转换为累加树
    230. 二叉搜索树中第K小的元素
    669. 修剪二叉搜索树
    513. 找树左下角的值
    637. 二叉树的层平均值
    671. 二叉树中第二小的节点
    DDL-Oracle中的5种约束总结(未完待续)
  • 原文地址:https://www.cnblogs.com/schips/p/the_meaning_of_android_building_type.html
Copyright © 2011-2022 走看看