Android 中的 Consumer-rules.pro 和 proguard-rules.pro 有什么区别?

2023-12-26

我已经在 Android 中创建了一个模块以在我的主应用程序中使用,并且似乎有两个文件 Consumer-rules.pro 和 proguard-rules.pro。

我想知道以下事情

  1. 所有模块代码是否都会被主模块亲卫规则的规则混淆 即使模块没有指定任何规则?
  2. Android 中的 Consumer-rules.pro 和 proguard-rules.pro 有什么区别?
  3. 我应该在我的模块中启用 minifyEnabled 吗?
  4. 我注意到我可以在主模块中为我的模块添加混淆规则,这是否意味着 模块中的亲卫规则在主模块中被覆盖吗?

请指教。


我会尽力回答每个问题,但如果有些问题没有意义,请告诉我!

1. 即使模块没有指定任何规则,所有模块代码是否都会被主模块亲卫规则的规则混淆?

混淆不是这样的。当您启用minifyEnabled属性,它会尝试混淆应用程序模块中可用的代码及其第 3 方依赖项,并且您的库模块将被视为第 3 方依赖项。但它不会触及第三方依赖项的任何传递依赖项.


2. Android 中的 Consumer-rules.pro 和 proguard-rules.pro 有什么区别?

proguard-rules.pro是您为模块及其依赖项声明与 Proguard 相关的规则的文件。

消费者规则.pro是您声明可由使用者应用于您的模块的规则的文件(无论是谁使用你的模块/库作为依赖项——通常是库开发人员).


3. 我应该在我的模块中启用 minifyEnabled 吗?

我建议你这样做(每个开发者都应该发布 APK),但要确保一切都按预期工作,因为底层类.dex申请后的变化minifyEnabled。它有助于减少输出 APK 大小、优化代码、混淆类文件等等......


4. 我注意到我可以在主模块中为我的模块添加 proguard 规则,那么这是否意味着模块中的 proguard 规则在主模块中被覆盖?

不,基本上图书馆规则是从消费者规则文件来自库模块本身,因此当您在应用程序模块中声明库的这些规则时,它会以相同的方式应用消费者规则,这基本上表明消费者在缩小时应该使用这些规则。

proguard-rules.pro库的 是您声明库的第三方依赖项规则的地方(这被认为是您的应用程序模块/主模块的传递依赖项),并且它不会被应用程序模块规则覆盖。


我希望这是有道理的!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 中的 Consumer-rules.pro 和 proguard-rules.pro 有什么区别? 的相关文章

  • Selenium Webdriver 中显式等待 findElements

    登录后 页面重定向到一个页面 我想等待页面加载 我在其中按 tagName 查找元素 By inputArea By tagName input List
  • SeekBar 未设置实际进度。 SetProgress() 不适用于早期的 Android 版本 [重复]

    这个问题在这里已经有答案了 我有一个应用程序 我想根据从 Web 服务检索到的值设置特定 SeekBar 的进度 但是 当我使用 SetProgress int 时 只有 SeekBar 的 搜索者 被设置 该栏未按预期 填充 它看起来是这
  • Spring @Transactional 并发

    class MyService 公共无效a 同步 某个键 b Transactional 传播 传播 REQUIRES NEW 公共无效b 数据库工作吗 除非您使用代码编织 否则这是行不通的 Spring处理事务的默认方式是通过AOP代理
  • 为什么我无法解开根节点并反序列化对象数组?

    为什么我无法通过展开根节点来反序列化对象数组 import java io IOException import java util Arrays import java util List import org codehaus jack
  • android listactivity onCheckedChangeListener

    我正在开发一款应用程序 并且我有一个ListActivity 其选择模式设置为choice mode multiple 现在我想重写方法 当一项被调用时调用该方法选中 未选中 我发现onCheckChanged 方法仅针对RadioGrou
  • 如何更改tomcat jmx密码的文件权限

    我正在尝试保护 Windows 平台上托管的本地 tomcat 实例上的 JMX 访问 我已经创建了访问权限和密码文件 并使用以下 VM 参数插入这些文件 Dcom sun management jmxremote password fil
  • 使用react-native使用WebView设置用户代理

    我想修改 WebView 中的用户代理字符串 以便在服务器端我可以检测到请求来自我的反应本机应用程序 我想使用 WebView 中的 source 属性来做到这一点 对于 IOS 和 Android 我该如何执行此操作 您只需将其设置为 W
  • 摆动刷新周期

    我试图了解何时使用重新验证 重绘 打包 令人惊讶的是 我没有找到详细的底层文档 请随意链接 到目前为止我已经明白这都是 RepaintManager 的责任 油漆 重新油漆指的是脏 干净的东西 pack validate revalidat
  • Handler、MessageQueue、Looper,它们都是运行在UI线程上的吗?

    我正在尝试解决线程问题 并且我知道我可能会使用Handler将消息 可运行对象发布到MessageQueue 这又被Looper并发送回Handler进行加工 如果我发帖到Handler在我的活动中 是Activity Handler Me
  • 如何告诉 Java SAX 解析器忽略无效字符引用?

    当尝试使用字符引用解析不正确的 XML 时 例如 x1 Java 的 SAX 解析器因致命错误而惨死 例如 org xml sax SAXParseException Character reference x1 is an invalid
  • 获取运行时生成的类的字节

    我正在使用一个 Java 框架 该框架使用自定义类加载器在运行时生成一些 代理 类 我想为任何这样的类获取自定义 ClassLoader 从 loadClass 返回的与该类对应的原始字节数组 这可能吗 我知道 如果一个类作为资源存在 那么
  • Spring @Configuration如何缓存对bean的引用

    使用基于 Java 的配置时 Spring 如何防止再次调用 bar 我想知道编译时注释处理或通过代理方法 Configuration public class AppConfig Bean public Foo foo return ne
  • 如何在其他窗口之上生成独立的 JFileChooser 对话框?

    Like 其他一些人 https stackoverflow com questions 4161207 javavm windows 7 64bit jfilechooser not showing dialog box谁问过类似的问题
  • 电子邮件发不出去,短信中的链接为 404

    我们刚刚完成将 Google AppInvites 集成到我们的应用程序中 我们注意到以下问题 电子邮件不会被发送 而发送的短信会带有一个链接 显示会出现 404 页面 仅当我设置 设置其他平台目标应用程序 对于 Android 和 iOS
  • 如何根据服务器/环境动态加载服务器配置?

    目前 我设置了 Maven 配置文件 以便能够为不同的环境 开发 演示 暂存 生产等 部署我的项目 并且它工作得很好 但问题是 对于我拥有的每个模块 Web 应用程序 我需要复制 粘贴此配置文件 它们都是属性文件 当我需要更改环境 服务器配
  • 如何等待 Kotlin 协程完成

    我读过几十篇文章 但不知何故 没有一个答案似乎适用于我的情况 我想要实现的是在Fragment中等待ViewModel使用Room执行操作 Dao Query SELECT FROM my table WHERE id id suspend
  • Jersey bean 验证 ParameterNameProvider

    我正在阅读关于泽西岛的文档Bean验证 https jersey java net documentation latest bean validation html The ParameterNameProvider示例显示如何定义方法的
  • recyclerview 未连接适配器;跳过布局

    刚刚实施RecyclerView在我的代码中 替换ListView 一切正常 显示数据 但正在记录错误消息 15 25 53 476 E RecyclerView No adapter attached skipping layout 15
  • LinkedBlockingQueue 抛出 InterruptedException

    我有这段代码 ALinkedBlockingQueue应该只抛出一个Exception如果在等待添加到队列时被中断 但这个队列是无限的 所以它应该尽快添加 为什么我的关闭方法会抛出一个InterruptedException private
  • 如何使用SAXReader解析GPX文件?

    我正在尝试解析GPX file http en wikipedia org wiki GPS eXchange Format 我用 JDOM 尝试过 但效果不太好 SAXBuilder builder new SAXBuilder Docu

随机推荐

  • 为什么 getUserMedia() 在 chrome 中显示权限被拒绝错误

    我正在使用 getUserMedia 在 Node js 和 Angular 项目 MEAN 中进行视频流 我的
  • 停止过滤WordPress函数wp_insert_post

    我必须对 WordPress 构建的网站进行一些小的更改 并且我遇到了 wp insert content 函数的一些问题 该函数对输入进行清理 完全删除一些 HTML 标签 例如 并删除其他标签的属性 我想关掉它 我到处都能找到链接htt
  • 如何设置TextView的文本?

    我面临将文本设置为的问题TextView在android中我的代码是 public class Main extends Activity Override public void onCreate Bundle savedInstance
  • MatTableDataSource:无法读取未定义的属性“长度”

    我在使用角度材料数据表时遇到以下错误 我可以从 api 获取数据 但无法在视图中呈现它 Error 错误图像 https i stack imgur com CjT7x jpg TS dataSource new MatTableDataS
  • 如何在 .NET 中克隆字典?

    我知道我们应该使用字典而不是哈希表 但我找不到克隆字典的方法 即使我将其转换为 ICollection 来获取 SyncRoot 我知道这也是不受欢迎的 我现在正忙着改变这一点 我是否有正确的假设 即无法以通用方式实现任何类型的克隆 这就是
  • Ruby 中非常便宜的命令行选项解析

    编辑 请 please please在回复之前请阅读本文底部列出的两个要求 人们不断发布他们的新宝石和库等等 这显然不符合要求 有时我想以非常便宜的方式将一些命令行选项修改为一个简单的脚本 一种有趣的方法是 无需处理 getopts 或解析
  • 如何为使用 Vuex 存储的 Vue 表单组件编写 Jest 单元测试?

    我有一个登录表格 当我用数据填写登录表单并单击登录按钮时 表单数据 用户名 密码 被发送到服务器并得到响应 回 如果表单数据无效 则会显示一条消息
  • 在 Rails 中显示两个文本正文之间的差异

    有没有一种简单的方法可以做到这一点 创建标记文本来显示两段文本之间的更改 也许是一个内置的助手 看过但没找到 您可以使用 jsdifflib http snowtide com jsdifflib http snowtide com jsd
  • TabLayout高亮和波纹效果

    我对 TabLayout 有两个问题 1 我可以删除TabLayout突出显示或更改选项卡布局的突出显示颜色吗 2 我可以为选项卡添加涟漪效果吗 每个选项卡都包含 TextView 我尝试添加自定义背景 如下所示
  • 以编程方式更改 Gnome 终端主题

    我想在本地计算机 Ubuntu GNOME 上创建一个设置 终端窗口具有不同的背景颜色 具体取决于我是登录到本地计算机还是通过 ssh 连接到远程计算机 有没有办法做到这一点 这并不能满足您的要求 但它可能会满足您的要求 您可以修改您的 b
  • Material UI v1 - 设置表格列宽

    我想使用 css 在 Material UI 表上设置列宽 而不是在 React 中使用 类 但我不明白如何控制列宽 我尝试设置 TH 列的宽度 但它不起作用 参见示例 Material ui 表示例 https codesandbox i
  • 将 .RData 文件加载到 Python 中

    我有一堆 RData 时间序列文件 希望将它们直接加载到 Python 中 而不需要先将文件转换为其他扩展名 例如 csv 关于实现这一目标的最佳方法有什么想法吗 对于那些不想安装 R 来完成此任务 r2py 需要它 的人来说 作为替代方案
  • 正交投影 Python

    我使用正交投影来绘制地图 我使用这个程序 from mpl toolkits basemap import Basemap import numpy as np import matplotlib pyplot as plt import
  • 在视图模型中实现 IDataErrorInfo

    我有一个 ViewModel 类 其中一个 Phone 对象作为其属性之一 我的主窗口数据上下文设置为 ViewModel 我是否需要在基础 Phone 模型类或包含 Phone 属性的 ViewModel 类上实现 IDataErrorI
  • 设计用户的rails pg db迁移未定义方法“database_authenticatable”

    undefined method database authenticatable for
  • 将屏幕坐标从按钮传递给父级

    我正在为 Android 制作一个钢琴应用程序 作为示例 测试 我的活动中有 4 个按钮 家长是一个Relative Layout我还有一些文本视图可以告诉手指触摸的屏幕坐标 还有一个 textView Entered Button 可以检
  • 无法在 Windows 8 上的 Rails 中通过回形针保存图像

    我使用 回形针 gt 4 1 在 Windows 8 上 将图片保存到我的产品中 我有以下代码 产品控制器 class ProductsController lt ApplicationController before action se
  • Python3 / JS - 如何使用 eel 处理本地文件上传?

    我目前正在开发一个类似 Electron 的本地软件Eel https pypi org project Eel 该软件旨在捆绑为需要在用户本地计算机上运行的独立 Windows 应用程序 在这个软件中 我希望能够在 Python 后端选择
  • 使用 sed 修改 /etc/sudoers

    我正在尝试编写一个 sed 程序来附加Defaults user requiretty行后Defaults requiretty in etc sudoers 我尝试了以下命令 sudo sed i Defaults requiretty
  • Android 中的 Consumer-rules.pro 和 proguard-rules.pro 有什么区别?

    我已经在 Android 中创建了一个模块以在我的主应用程序中使用 并且似乎有两个文件 Consumer rules pro 和 proguard rules pro 我想知道以下事情 所有模块代码是否都会被主模块亲卫规则的规则混淆 即使模