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 权限。

「转」Android编译选项中的eng、user、user-debug的更多相关文章

  1. 「译」forEach循环中你不知道的3件事

    前言 本文925字,阅读大约需要7分钟. 总括: forEach循环中你不知道的3件事. 原文地址:3 things you didn't know about the forEach loop in ...

  2. 「NetworkOnMainThreadException」:Android 2.3到Android 4.0上传文件的问题

    我在百度知道上的提问: 『之前我用的一段文件上传的代码,配合服务器端的servlet,实现了上传手机上的文件的功能:但是后来我把手机的Android系统从2.3升级到了4.0 ,同样的代码,同样的配置 ...

  3. 「Vue」Vue cli3中引用mui-ui问题及解决办法

    1.引用mui.js无效,top-bar划动,numbox点击无效等问题 解决办法: -main.js中import mui from './lib/mui/js/mui.js' Vue.protot ...

  4. 「Vue」vue cli3中axios的基本用法

    1.安装axiosnpm i axios -S2.main.js中设置import axios from 'axios'Vue.prototype.$axios = axiosPS:这里有个小坑,ax ...

  5. 「ReStory」在 Markdown 中自由书写 React 组件 (Beta)

    介绍 先睹为快 我们在开发一个小小的 React 组件库,但是我们遇到了一个大难题,那就是为我们的组件库书写一个合理的文档. 作为组件文档,我们非常希望我们的组件用例代码能够展现出来,是的我们在书写文 ...

  6. 「译」 .NET 6 中 gRPC 的新功能

    gRPC是一个现代的.跨平台的.高性能的 RPC 框架.gRPC for .NET 构建在 ASP.NET Core 之上,是我们推荐的在 .NET 中构建 RPC 服务的方法. .NET 6 进一步 ...

  7. 「征文」在 cordova 中使用极光统计服务

    写在前面:年前的时候,极光社区组织了一场征文活动 ,收到不少好的文章.现在打算和大家一起分享一下这些优秀的作品 :) 作者:Wilhan - 极光 原文:在 cordova 中使用极光统计服务 正文 ...

  8. Android逆向之旅---静态方式分析破解视频编辑应用「Vue」水印问题

    一.故事背景 现在很多人都喜欢玩文艺,特别是我身边的UI们,拍照一分钟修图半小时.就是为了能够在朋友圈显得逼格高,不过的确是挺好看的,修图的软件太多了就不多说了,而且一般都没有水印啥的.相比较短视频有 ...

  9. 转:Android开源项目推荐之「网络请求哪家强」 Android开源项目推荐之「网络请求哪家强」

    转载自https://zhuanlan.zhihu.com/p/21879931 1. 原则 本篇说的网络请求专指 http 请求,在选择一个框架之前,我个人有个习惯,就是我喜欢选择专注的库,其实在软 ...

  10. Python后端日常操作之在Django中「强行」使用MVVM设计模式

    扫盲 首先带大家了解一下什么是MVVM模式: 什么是MVVM?MVVM是Model-View-ViewModel的缩写. MVVM是MVC的增强版,实质上和MVC没有本质区别,只是代码的位置变动而已 ...

随机推荐

  1. Go-Zero微服务快速入门和最佳实践(一)

    前言 并发编程和分布式微服务是我们Gopher升职加薪的关键. 毕竟Go基础很容易搞定,不管你是否有编程经验,都可以比较快速的入门Go语言进行简单项目的开发. 虽说好上手,但是想和别人拉开差距,提高自 ...

  2. Docker部署Scrapy-redis分布式爬虫框架(整合Selenium+Headless Chrome网页渲染)

    前言 我的京东价格监控网站需要不间断爬取京东商品页面,爬虫模块我采用了Scrapy+selenium+Headless Chrome的方式进行商品信息的采集. 由于最近爬虫用的服务器到期,需要换到新服 ...

  3. C#开发的CPU使用率小应用 - 开源研究系列文章 - 个人小作品

    这次用C#编写一个CPU使用率的小应用.想了一下,大概需要两个内容:一个是获取CPU使用率:一个是托盘图标的动画效果.这两个内容在上次的博文中有介绍了,此博文为具体的应用的例子. 对于要实现的应用,首 ...

  4. 微分流形Loring W. Tu section19 19.12 解答

    微分流形Loring W. Tu section19 19.12 解答,当然咯我自己也不知道是否严谨正确,反正就是自己的思考与想法,简单一写,欢迎友好讨论. 19.12 对于任意的\(f \in C^ ...

  5. Steam中将XBox手柄默认布局改为任天堂手柄布局的方法

    1. 在Steam菜单栏找到"查看",选择大屏幕模式. 2. 进入大屏幕模式后,在菜单界面找到"设置". 3. 在设置界面找到"控制器",选 ...

  6. postgresql建表空间、建库、建模式、建用户的规范

    一.官方概念说明 1.表空间(表空间位置不应该位于数据目录内) 性能优化:您可以将高I/O的表和索引放在高速磁盘上,而将不经常访问的表放在普通的磁盘上. 管理磁盘空间:当数据库存储空间不足时,可以通过 ...

  7. grads读取nc格式文件

    一.通常: 1.grads读取grd和ctl:open  ****.ctl 2.执行gs脚本:run   ****.gs d命令,display展示数据,常用来显示变量,比如rh,rain等 q命令, ...

  8. RustDesk 自建服务器部署和使用教程

    RustDesk 是一个强大的开源远程桌面软件,是中国开发者的作品,它使用 Rust 编程语言构建,提供安全.高效.跨平台的远程访问体验.可以说是目前全球最火的开源远程桌面软件了,GitHub 星星数 ...

  9. Mac远程控制工具有哪些

    适用于Mac的远程控制工具有很多,这里我们给大家列举五个常用软件. 1.Apple Remote Desktop 苹果自带远程桌面正如其名称所承诺的那样.作为 Apple 出品的应用程序,您可以想象它 ...

  10. 数据结构单向链表——找到并输出倒数第k个结点的数据

    /********************************************************************************************** * fu ...