首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在使用AndroidX时,proguard-android-optimize.txt中的"@Keep support annotation“规则还适用吗?

在使用AndroidX时,proguard-android-optimize.txt中的"@Keep support annotation"规则仍然适用。

AndroidX是一个用于支持Android平台的开发库集合,它提供了一套更现代化、模块化的API,用于替代旧版的Support库。在使用AndroidX时,仍然可以使用proguard-android-optimize.txt文件中的"@Keep support annotation"规则来保留特定的类、方法或字段,以防止被ProGuard混淆和优化。

"@Keep support annotation"是一种注解,用于告诉ProGuard保留被注解的元素,不进行混淆和优化。这对于一些需要在运行时反射或动态加载的类、方法或字段非常有用。

在使用AndroidX时,可以在proguard-android-optimize.txt文件中添加以下规则来保留使用AndroidX的类、方法或字段:

-keep class androidx.** { ; } -keep interface androidx.* { *; }

这些规则将保留AndroidX库中的所有类和接口,以防止被ProGuard混淆和优化。

对于AndroidX的应用场景,它可以用于开发各种类型的Android应用程序,包括但不限于移动应用、物联网应用、多媒体应用等。AndroidX提供了丰富的API和组件,使开发者能够更高效地构建功能强大、稳定可靠的应用程序。

腾讯云提供了一系列与云计算相关的产品和服务,其中包括与Android开发相关的云服务。您可以参考腾讯云的文档和产品介绍来了解更多关于Android开发和云计算的内容。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动开发平台:https://cloud.tencent.com/product/mpp
  • 腾讯云移动推送:https://cloud.tencent.com/product/umeng
  • 腾讯云移动测试服务:https://cloud.tencent.com/product/mts
  • 腾讯云移动应用分析:https://cloud.tencent.com/product/map
  • 腾讯云移动直播:https://cloud.tencent.com/product/mlvb
  • 腾讯云移动短信:https://cloud.tencent.com/product/sms
  • 腾讯云移动智能硬件:https://cloud.tencent.com/product/iotexplorer

请注意,以上链接仅供参考,具体的产品和服务选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Android 安全】DEX 加密 ( Proguard 简介 | 默认 ProGuard 分析 )

保留被注解声明类 : 被 @android.support.annotation.Keep 注解修饰类不被混淆 ; # 保留被 @android.support.annotation 注解声明类...保留被注解声明函数 : 被 @android.support.annotation.Keep 注解修饰函数不被混淆 ; # 保留被 @android.support.annotation 注解声明函数...# 如果想要启用优化 , 不能只 ProGuard 项目配置中将优化标志设为 true ; # 相反还要在 build.gradle 中指向 "proguard-android-optimize.txt...-keep class androidx.annotation.Keep # 保留被 @android.support.annotation 注解声明类 -keep @android.support.annotation.Keep...class * {*;} # 保留被 @androidx.annotation 注解声明类 -keep @androidx.annotation.Keep class * {*;} # 保留被

36200

【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize | 混淆 Obfuscate | 预检 | 混淆文件编写 | 混淆前后对比 )

开启 Proguard , 在编译 , 会自动进行如下一系列优化 : 压缩 Shrink : 检查 并 删除 没有使用类 , 字段 , 方法 , 属性 ; 这里要注意 , 如果通过反射使用一个类...层代码 , 使用无意义标识符替代 Java 类名 , 变量名 , 方法名 等名称 ; 预检 Preveirfy : 预检 Java 平台上预处理代码 ; 开启 ProGuard 配置...: build.gradle 构建脚本 " android / buildTypes " 层级 , 配置 debug / release 相关选项 , 即可开启 ProGuard ; 设置...是用户自己配置混淆配置文件 , 进行打包 , 将这两个 ProGuard 配置文件进行合并处理 ; 二、混淆文件编写 ---- 混淆文件编写 : 引用第三方库及服务 , 一般不进行混淆 , 去相应开源页面..., 查找混淆配置 ; 遇到某个包或类编译遇到警告退出 , -dontwarn 配置该包不要爆出警告 ; 遇到没有找到类 , 使用 -keep 不要混淆该类 ; 常用混淆配置 : " -dontwarn

3.5K20

【Android 安装包优化】开启资源压缩 ( 资源压缩配置 | 启用严格模式资源引用检查 | 自定义保留移除资源配置 | 资源压缩效果 )

, 如 XML 文件资源 , 将其只保留一个根节点 ; 资源压缩配置是 build.gradle 构建脚本 " android / buildTypes " 下 debug / release...'), 'proguard-rules.pro' } } } 二、启用严格模式资源引用检查 ---- 资源压缩器 压缩资源 , 默认使用比较保守模式 , 通过动态 id 获取资源不会被移除...; 三、自定义保留/移除资源配置 ---- 参考文档 : 自定义要保留资源 如果开发者有想要特定保留或者必须移除资源 , 可以进行自定义配置 ; " res/raw " 目录下创建 " keep.xml..." 文件可以配置 保留 / 移除 资源 ; 使用 tools:keep 属性指定要保留资源 ; 如果保留多个资源使用逗号隔开 ; 使用 tools:discard 属性指定要移除资源 ; 如果移除多个资源使用逗号隔开..., 程序没有引用该资源 , 在编译 , 该资源自动替换成如下类型 ; <?

1.2K40

如何在10分钟内让Android应用大小减少 60%?

六、混淆 1 构建多个版本 gradlebuildTypes增加不同构建类型,使用applicationSuffix和versionNameSuffix可以生成多个版本同一设备上运行 创建.../annotation/Keep.html)注解。...类上添加@Keep可原样保留整个类。方法或字段上添加它可完整保留方法/字段(及其名称)以及类名称。请注意,只有使用注解支持库,才能使用此注解。...使用-keep选项,有许多事项需要考虑;如需了解有关自定义配置文件详细信息,请阅读ProGuard 手册。问题排查一章概述了您可能会在混淆代码遇到其他常见问题。...keepclasseswithmembers 保留类和类成员,防止它们被混淆或移除,前提是指名成员必须存在,如果不存在则还是会混淆。

1.6K10

如何在10分钟内让Android应用大小减少 60%?

六、混淆 1 构建多个版本 gradlebuildTypes增加不同构建类型,使用applicationSuffix和versionNameSuffix可以生成多个版本同一设备上运行 创建...support/annotation/Keep.html)注解。...类上添加@Keep可原样保留整个类。方法或字段上添加它可完整保留方法/字段(及其名称)以及类名称。请注意,只有使用注解支持库,才能使用此注解。...使用-keep选项,有许多事项需要考虑;如需了解有关自定义配置文件详细信息,请阅读ProGuard 手册。问题排查一章概述了您可能会在混淆代码遇到其他常见问题。...keepclasseswithmembers 保留类和类成员,防止它们被混淆或移除,前提是指名成员必须存在,如果不存在则还是会混淆。

82020

【Android 热修复】热修复原理 ( 多 Dex 打包机制 | 多 Dex 支持 | Dex 分包设置 | 开发和产品风格设置 | 源码资源 )

Class 机制 | 类查找顺序机制 )三、 类查找顺序机制 博客章节有讲解到 , Android 类加载 , 必须进行分包操作 , 必须有 1 个主包 , 若干其它分包 , 主包只包含应用启动少量代码...目录下创建 " dex.keep " 文本文件 , 这里设置主包打包 Java 字节码文件 , 其它类都打包到分包 ; dex.keep 主包打包规则文件内容 : kim/hsl/hotfix/...( 非必须 ) productFlavors 设置后 , 可以开发调试 , 节省时间 , 不是必须 , 不设置也不会报错 ; 如果配置了 productFlavors 选项 , 那么必须在 defaultConfig...dev { // 开发使用 minSDKVersion = 21 允许 Android Gradle 插件 // 为每个 Module 模块产生一个 APK..." } // 定义不同开发和产品风格 productFlavors { // 开发风格 dev { // 开发使用

82921

【Kotlin】Kotlin 中使用 ButterKnife ( 仅用于适配 Kotlin 语言 | 不推荐新项目使用 )

Android Studio 配置 Kotlin 和 ButterKnife 示例 IV . Kotlin 注解错误使用 V . 错误处理 导入库冲突 ( 与 androidx 冲突 ) I ....当前需求 : 目前需求是保证之前 Java 代码能平稳运行 , 基本框架不变 , Kotlin 中使用 ButterKnife 进行视图绑定操作 ; II ....ButterKnife 配置 : ButterKnife 只需要在 Module 下 build.gradle 构建脚本配置 , ① 配置依赖库 : Module 下 build.gradle...Libraries using reflection such as annotation processors need to be updated manually to add support...推荐用法 : 老版本应用 ( 没有使用 androidx ) 继续使用老版本 ButterKnife , 新版本应用就别用这个框架了 , 使用 JetPack 视图 / 数据 绑定 ; ① 老项目

2.3K30

Android 代码混淆语法讲解及常用模板

AndroidStudio moudle 根目录我们一般可以看到 proguard-rules.pro 文件,这个文件就是用来配置代码混淆。 ?...(...); } 解释说明 -dontusemixedcaseclassnames 表示混淆使用大小写类名 -dontskipnonpubliclibraryclasses 表示不跳过...建议使用此选项,因为根据proguard-android-optimize.txt描述,优化可能会造成一些潜在风险,不能保证在所有版本Dalvik上都正常运行。...因为 android.support 包下,许多类都是高版本才能使用,不过你不用担心低版本使用了会报错,因为 support 包里面的类都已经对版本进行判断,所有直接忽略即可。...比如proguard-android.txt中使用-dontwarn android.support.**就可以匹配android.support包下所有内容,包括任意长度子包。

1.5K20

Android AGP8.1.0组件化初探

theme: orangeAndroid AGP8.1.0组件化初探前言:前面两篇完成了从AGP4.2到 AGP8.1.0升级,本文是由于有哥们留言说AGP8.0使用ARouter组件化有问题,于是趁休息时间尝试了一下...:a.按照上面7步骤配置主模块和其他组件模块,一个都不能少。...b.同时跳转保证路径一直即可。...若配置完还有问题,请仔细检查每一步,直到正常跳转和数据传递,本人是亲自尝试了多个项目,基本上都没问题.14.3 数据传递和接收问题图片解决方法:a.kotlin中使用ARouter接收数据需要使用@...@Autowired(name = "name"),name一定要和传递一致c.传递数组记得序列化,接收也是一样15.AGP8.1.0小技巧:15.1 没有添加统一依赖配置:implementation

42920

Android安全攻防战,反编译与混淆技术完全解析(下)

-dontoptimize 表示不进行优化,建议使用此选项,因为根据proguard-android-optimize.txt描述,优化可能会造成一些潜在风险,不能保证在所有版本Dalvik上都正常运行...View方法,因为有这样一种用法,XML配置android:onClick=”buttonClick”属性,当用户点击该按钮就会调用ActivitybuttonClick(View view...-dontwarn android.support.** 表示对android.support包下代码不警告,因为support包中有很多代码都是高版本中使用,如果我们项目指定版本比较低在打包就会给予警告...keepclasseswithmembers 保留类和类成员,防止它们被混淆或移除,前提是指名成员必须存在,如果不存在则还是会混淆。...其中AppCompatActivity是appcompat-v7包,它父类FragmentActivity是support-v4包,这两个包我们都已经添加依赖了。

1.6K70

【Android 安装包优化】Android 中使用 SVG 图片 ( 使用 appcompat 支持库兼容 5.0 以下版本 Android 系统使用矢量图 )

文章目录 一、使用 appcompat 支持库兼容 5.0 以下版本 Android 系统使用矢量图 二、完整代码示例 1、build.gradle 构建脚本 2、布局文件 3、运行效果 三、参考资料...一、使用 appcompat 支持库兼容 5.0 以下版本 Android 系统使用矢量图 ---- 参考 Android 官方文档 : 添加多密度矢量图形 使用支持库添加对矢量图资源支持 : com.android.support...= true ; dependencies 添加支持库 : compile 'com.android.support:appcompat-v7:23.2.0' 或 implementation...:appcompat-v7:23.2.0' implementation 'androidx.appcompat:appcompat:1.2.0' } 引用矢量图 : 布局文件 , 使用 app...:core-ktx:1.3.2' // 矢量图支持库 , 支持 5.0 以下版本手机使用矢量图 , 这个是创建应用时自带配置 implementation 'androidx.appcompat

59120

Android 代码混淆 混淆方案

开启严格模式 当代码通过Resources.getIdentifier() 用动态字符串来获取并使用资源,普通资源引用检查就可能会有问题。...当代码通过 Resources.getIdentifier() 用动态字符串来获取并使用资源,普通资源引用检查就可能会有问题。...strings.xml,多分辨率支持 layout.xml 等,我们不需要使用又不想删除掉,可以使用资源压缩将它们移除。...我们使用 resConfig 属性来指定需要支持属性,例如 一些替代资源,例如多语言支持strings.xml,多分辨率支持 layout.xml等,我们不需要使用又不想删除掉,可以使用资源压缩将它们移除...注解类名和方法 -keep,allowobfuscation @interface android.support.annotation.Keep -keep @android.support.annotation.Keep

2.4K30

【Android 组件化】使用 ARoute 实现组件化 ( 完整组件化项目框架 )

module2 , 3 个模块 build.gradle , 都要进行如下配置 ; build.gradle 下 " android / defaultConfig " 层级添加配置 :...build.gradle 配置 app 模块重点关注 , 组件模式下 , 一定不能引入依赖库 , 否则会报错 , 因为组件模式下这两个依赖库是两个可运行独立应用 ; dependencies...android:name=".Module1Activity"> 这就需要为其单独配置一个清单文件 , 并且还要兼容组件模式下能适用原来这个清单文件...; 此外还需要为其配置 Application 类 , 需要为其单独指定 Java 文件 , 并且模块化模式 , 不使用该文件 ; 1、创建组件模式下使用类和清单文件 module1 下创建...组件模式 使用 Application 类和清单文件 ; Application 类如下 : package kim.hsl.module1; import android.app.Application

2.3K20

【Android Gradle 插件】Android 依赖管理 ⑥ ( 依赖冲突处理 | transitive 依赖传递设置 | exclude 依赖排除设置 | force 强制指定依赖库 )

四、通过 configuration 配置排除子依赖库 五、force 强制指定依赖库 一、查询 Android 依赖库配置 ---- 遇到 依赖冲突 , 如果要 排查某个依赖子库 ,...依赖库路径位置 , D:\001_Develop\001_SDK\Sdk\extras\android\m2repository\com\android\support 路径依赖库如下图所示...dependencies 配置依赖 , implementation 依赖配置 后 , 可以 闭包 使用 transitive 函数 设置依赖是否传递 , 如果为 transitive 函数设置...B 依赖库 , 导致了冲突 ; 依赖库 , 可以将其中某个依赖库剔除 , 如 androidx.appcompat:appcompat 依赖库 , 依赖了 androidx.annotation...:activity:1.2.4 使用如下配置 , 闭包调用 ModuleDependency#exclude 方法 , 可以排除 androidx.activity:activity 依赖库 ; 设置之后

2.7K31

【错误记录】Android Studio 中生成测试覆盖率报告出错 ( ExampleInstrumentedTest > useAppContext FAILED )

文章目录 一、报错信息 二、解决方案 一、报错信息 ---- Android Studio 工程 , 启用了 " android # buildTypes # debug " testCoverageEnabled...com.android.support:appcompat 支持库配置 vectorDrawables.useSupportLibrary = true // 国际化资源配置...release { // 是否开启优化混淆 minifyEnabled true // 是否启用资源压缩 , 未使用资源会被优化...:core-ktx:1.3.2' // 矢量图支持库 , 支持 5.0 以下版本手机使用矢量图 , 这个是创建应用时自带配置 implementation 'androidx.appcompat..." android # defaultConfig " 设置了 applicationIdSuffix ".tom" 包名后缀 , " android # buildTypes # debug "

62730
领券