zoukankan      html  css  js  c++  java
  • Android编译选项eng、user、userdebug的区别

    Android编译选项eng、user、userdebug的区别
    https://www.xuebuyuan.com/1408769.html

    Android编译选项中eng、user、user-debug主要区别
    https://blog.csdn.net/yanghanxing110/article/details/77721007

    eng、user、userdebug区别简述
    https://blog.csdn.net/dearsq/article/details/52589376


    useruserdebugeng
    仅安装标签为 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 权限。


    eng:debug 版本

    user: release 版本

    userDebug版本:部分debug版本

        要了解Android编译选项eng、user和userdebug的区别,需先了解下LOCAL_MODULE_TAGS这一Android.mk文件里的配置项,一般配置形式为LOCAL_MODULE_TAGS := user eng optional test这个样子。
        那么LOCAL_MODULE_TAGS设置为不同值有何作用呢?下面是对应不同值编译的结果:
        1、user:只有在user版本时该模块才被编译进去;
        2、eng:只有在eng版本时该模块才被编译进去;
        3、test:只有在tests版本时该模块才被编译进去;
        4、optional:在所有版本中都编译该模块进去。
        其中的值可设置为1个或多个,分别对应编译选项的同一个或多个。那么eng、user、userdebug的区别是什么呢?接下来一一揭开:
        1、当make eng时,也即相当于make。此时BuildType为eng,那么其编译进去的内容包括:
          · Intended for platform-level debugging
          · Installs modules tagged with: eng, debug, user, and/or development
          · Installs non-APK modules that have no tags specified
          · Installs APKs according to the product definition files, in addition to tagged APKs
          · Sets ro.secure=1
          · Sets ro.debuggable=0
          · Sets ro.kernel.android.checkjni=1
          · adbd is enabled by default
        2、当make user时,此时BuildType为user,那么其编译进去的内容包括:
          · Intended to be the final release
          · Installs modules tagged as user
          · Installs non-APK modules that have no tags specified
          · Installs APKs according to the product definition files (tags are ignored for APK modules)
          · Sets ro.secure=1
          · Sets ro.debuggable=0
          · adbd is disabled by default
        3、当make userdebug时,此时BuildType为userdebug,那么其编译进去的内容包括:
           the same as user, except:
          · Intended for limited debugging
          · Installs modules tagged with debug
          · Sets ro.debuggable=1
          · adbd is enabled by default 
        参考网址:https://hi.baidu.com/aokikyon/item/194b9bd9a6188ef593a9740e
                  http://www.rosoo.net/a/201108/14878.html
                  http://www.cnblogs.com/mr-raptor/archive/2012/06/07/2540359.html
  • 相关阅读:
    Java之JVM调优案例分析与实战(4)
    Qt浅谈之四十九俄罗斯方块(代码来自网络)
    自作聪明的开发
    Visual Studio 连接 SQL Server 的connectionStringz和
    删除反复行SQL举例
    一起学android之怎样设置TextView中不同字段的字体颜色(22)
    A008-drawable资源
    android 自己定义组件随着手指自己主动画圆
    一个简单的HTML5摇一摇实例
    关于事件的传递机制。
  • 原文地址:https://www.cnblogs.com/bluestorm/p/11125055.html
Copyright © 2011-2022 走看看