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

Android ProGuard androidx keep protected方法,但发布是公开的

Android ProGuard是一种用于代码混淆和优化的工具,它可以帮助开发者保护他们的Android应用程序免受反编译和代码泄露的风险。ProGuard可以对应用程序的字节码进行优化和压缩,同时重命名类、方法和变量的名称,使得代码变得难以理解和逆向工程。

Androidx是一个用于支持Android开发的开源软件库,它提供了许多用于构建现代Android应用程序的组件和工具。Androidx库是对旧的Android支持库的重构和扩展,旨在提供更好的性能、可靠性和功能。它包含了许多不同的模块,如界面设计、存储、网络通信等,开发者可以根据自己的需求选择使用。

keep protected方法是指在ProGuard混淆过程中保留某个类中的protected方法,不对其进行重命名或删除。protected方法是一种访问修饰符,表示该方法只能在当前类和其子类中访问。保留protected方法可以确保在混淆后的代码中,该方法的名称和访问权限不会被改变,以保持代码的正确性。

Android ProGuard的优势包括:

  1. 代码混淆:ProGuard可以对应用程序的字节码进行混淆,使得代码变得难以理解和逆向工程,提高应用程序的安全性。
  2. 代码优化:ProGuard可以对应用程序的字节码进行优化和压缩,减小应用程序的体积,提高应用程序的性能和响应速度。
  3. 资源压缩:ProGuard可以对应用程序的资源文件进行压缩,减小应用程序的大小,加快应用程序的下载和安装速度。

Android ProGuard在Android开发中的应用场景包括:

  1. 保护代码安全:通过混淆和优化代码,防止他人对应用程序进行反编译和代码泄露。
  2. 减小应用程序大小:通过优化和压缩代码和资源文件,减小应用程序的体积,提高用户下载和安装的体验。
  3. 提高应用程序性能:通过优化和压缩代码,减少不必要的方法和资源,提高应用程序的性能和响应速度。

腾讯云相关产品中,与Android ProGuard和Androidx相关的产品包括:

  1. 腾讯云移动应用安全保护服务:提供了代码混淆、反调试、反逆向工程等功能,帮助开发者保护移动应用程序的安全性。
  2. 腾讯云移动应用加速服务:提供了全球加速、智能调度、链路优化等功能,加速移动应用程序的访问速度和响应速度。

以上是关于Android ProGuard androidx keep protected方法的完善且全面的答案。

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

相关·内容

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

, 如 Application , MainActivity 等 , 修复包 Dex 文件需要插入到主包后面 , 其它分包前面 , 才能生效 ; 如果主包出现问题 , 只能发布新版本 ; 指定主包文件...中调用 MultiDex.install(base) 代码 , public class MyApplication extends Application { @Override protected...dex.keep " 文本文件 , 这里设置主包打包 Java 字节码文件 , 其它类都打包到分包中 ; dex.keep 主包打包规则文件内容 : kim/hsl/hotfix/MainActivity.class...主 Dex 文件 , classes2.dex 分包 dex ; 3、开发和产品风格设置 ( 非必须 ) productFlavors 设置后 , 可以在开发调试时 , 节省时间 , 不是必须...") minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt

82021

Android制作AAR包并混淆后加载调用

实现效果 上图中可以看到,制作了一个TAAR包,打开后里面可以看到MathFun类和类下公开Add方法。 在新工程中直接引入AAR包,调用里面的实现方法后,在虚拟机中直接显示了出来。...重点:多这一步原因是为了后面的代码混淆,主要这里测试好多次,如果都放在相同包名下,保持MathFun类不混淆,在外部看到AAR包时里面没有方法,如果都不混淆那MathMinify也会在AAR...混淆过后通过原来名字去找混淆后名字,找不到对应方法和类,就会出异常报错。所以有些情况不能进行混淆。...;用以上方法保持类后,你会发现类名虽然未混淆,里面的具体方法和变量命名还是变了,这时如果既想保持类名,又想保持里面的内容不被混淆,我们就需要以下方法了 -keep class cn.hadcn.test...android.support.** { *; } androidx: -keep class androidx.** {*;} -keep interface androidx.** {*;}

4.7K30

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

中 开启 Proguard , 在编译时 , 会自动进行如下一系列优化 : 压缩 Shrink : 检查 并 删除 没有使用类 , 字段 , 方法 , 属性 ; 这里要注意 , 如果通过反射使用一个类时...层代码 , 使用无意义标识符替代 Java 中类名 , 变量名 , 方法名 等名称 ; 预检 Preveirfy : 预检 Java 平台上预处理代码 ; 开启 ProGuard 配置...’ 中 , 配置了两个文件, 其中 proguard-android-optimize.txt 默认混淆配置文件 , 由系统自动生成 ; proguard-rules.pro 用户自己配置混淆配置文件..., 如果出现警告 , 编译打包会被终止 ; # com 包名下不要爆出警告 -dontwarn com.** " -keep " : 不要混淆类 ; # com 包名下类不要混淆 -keep class...:core-ktx:1.3.2' // 矢量图支持库 , 支持 5.0 以下版本手机使用矢量图 , 这个创建应用时自带配置 implementation 'androidx.appcompat

3.5K20

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

前提 代码压缩 必须开启 , 否则资源压缩无效 ; 代码压缩就是 混淆操作 , 参考 【Android 安装包优化】开启 ProGuard 混淆 ( 压缩 Shrink | 优化 Optimize..., 再处理资源 ) 资源压缩不是简单将资源删除 , 而是将资源文件保留 , 资源实际内容替换掉 , 如 XML 文件资源 , 将其只保留一个根节点 ; 资源压缩配置在 build.gradle...:core-ktx:1.3.2' // 矢量图支持库 , 支持 5.0 以下版本手机使用矢量图 , 这个创建应用时自带配置 implementation 'androidx.appcompat...混淆效果 ) 【Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后报错信息 | Proguard 混淆映射文件 mapping.txt ) 【Android 安全】DEX 加密...( Proguard 混淆 | 将混淆后报错信息转为原始报错信息 | retrace.bat 命令执行目录 | 暴露更少信息 ) 【Android 安全】DEX 加密 ( Proguard 混淆 |

1.2K40

Android 安全】DEX 加密 ( Proguard keep 用法 | Proguard 默认混淆结果 | 保留类及成员混淆结果 | 保留注解以及被注解修饰类成员方法 )

文章目录 一、Proguard 默认混淆结果 二、Proguard 保留类及成员混淆结果 三、Proguard 保留注解以及被注解修饰类/成员/方法 更多 ProGuard 混淆配置参考 : https...人为添加保留任何设置 , 使用 默认混淆文件 , 除了 MainActivity , 以及 MainActivity 中 3 个内部类 , IdleHandler , Handler , Thread...{ *; } 由下图可以看出 , 成员变量 , 成员方法 名称都保存下来了 ; 三、Proguard 保留注解以及被注解修饰类/成员/方法 ---- 创建注解 : package kim.hsl.handler...; public @interface Keep { } ProGuard 中配置 保留该注解 , 以及 被该注解修饰类 ; # 保留 Main 类及成员 -keep public class kim.hsl.handler.Main...# 保留 Keep 注解 -keep public class kim.hsl.handler.Keep # 保留被 Keep 注解修饰类 -keep @kim.hsl.handler.Keep

1.5K00

Android微信客户端如何支持R8构建

作者:chrispaul,来自微信客户端团队 背景 在之前版本,微信Android一直采用Proguard构建Release包,主要原因在于: Proguard优化足够稳定 ApplyMapping也能保证正确性...Proguard也有明显不足之处: Kotlin版本升级与Proguard存在不兼容,导致被迫升级Proguard版本; Proguard版本升级导致编译时间变慢,超过30min; 由于历史原因,...庆幸,R8早已支持applymapping,并不提供dex重排能力,所以支持applymapping和dexlayout成功接入R8重点工作内容。...那么R8只会keep public类型activity,非public默认混淆,这与proguard有所区别,解决办法较为简单可直接改为: -keep class * extends android.app.Activity...规则,interface method被keep住,实现类方法未被keep, 例如业务同学添加规则: keep class com.tencent.thumbplayer.** {*;} -keep

1.8K160

Android 代码混淆规则

大家好,又见面了,我你们朋友全栈君。 1. Proguard介绍 Android SDK自带了混淆工具Proguard。它位于SDK根目录\tools\proguard下面。...ProGuard一个免费Java类文件收缩,优化,混淆和预校验器。它可以检测并删除未使用类,字段,方法和属性。它可以优化字节码,并删除未使用指令。...Proguard作用 Android“混淆”可以分为两部分,一部分 Java 代码优化与混淆,依靠 proguard 混淆器来实现;另一部分资源压缩,将移除项目及依赖库中未被使用资源(资源压缩严格意义上跟混淆没啥关系...[,modifier,…] class_specification:指定需要保留类和类成员(作为公共类库,应该保留所有可公开访问public方法) -keepclassmembers [,modifier...访问修饰符(public、protected、private) 4.1 不混淆某个类 -keep public class com.android.proguard.example.Test {

2.4K10

「玲珑宝塔」优化 Apk 包大小

(引入官方解释) 混淆处理目的通过缩短应用类、方法和字段名称来减小应用大小 混淆效果(摘自官方): androidx.appcompat.app.ActionBarDrawerToggle$DelegateProvider...随后列举常用混淆规则(语法): 保留某个类 -keep public class com.hlq.Love 保留某包下所有类及其内部类 -keep class com.hlq...,否则会增加编译时间,一般在发布正式包时打开即可。...未 Keep 文件均已混淆,而 Keep 文件依旧傲娇挺立,如下图: ? 混淆操作,在一定程度增大了破解难度。当然,也没有绝对安全。...1.4 开启 Zipalign 优化 这块我看很湿懵逼,估计唯有鸡大行云流水了。简单摘自官方解释: zipalign 一种归档对齐工具,可对 Android 应用文件进行重要优化。

80720

android文件混淆详解

com.asqw.android.Listener{ public protected ;  【所有方法不进行混淆】 } -keep public class com.asqw.android...,如果所有指定类成员出席(在压缩步骤之后)】 native ; } -keepclasseswithmembers class * { 【保护指定类和类成员,条件所有指定类和类成员要存在.../桌面,在这里面有空格,而proguard进行发编译时候不允许有空格 如果换了正确路径还不好用的话,直接删除proguard就好了 注意:SDK和程序路径最好不要有空格符 情况2: Proguard...我把项目中生成proguard文件夹(此时文件夹)删掉,然后再重新运行项目,就OK 了。...:78) [2011-10-21 13:22:32 - ZMKSMarket_Build_v1.0] at proguard.ProGuard.main(ProGuard.java:499) 抛出这样异常原因第三方

884100

android开发笔记之 Android代码混淆打包

三, 我们java 元素名称是在配置文件中配置好。 所以使用proguard时,我们需要有个配置文件告诉proguard 那些java 元素不能混淆。...常见不能混淆androidCode Android 程序 ,下面这样代码混淆时候要注意保留。 Android系统组件,系统组件有固定方法被系统调用。...com.android.vending.licensing.ILicensingService Java序列化方法,系统序列化需要固定方法。...} 保护指定类成员,如果此类受到保护他们会保护更好 -keepclasseswithmembers {class_specification} 保护指定类和类成员,条件所有指定类和类成员要存在...:proguard-project.txt”这行前“#”删除即可; 2.修改混淆配置文件:找到项目根目录下proguard-project.txt文件,修 改其中代码,这部分最关键; 3.保存相关文件供以后出错时使用

72220

Proguard 常用规则

受支持通配符取决于使用过滤器名称类型,以下通配符通用: ? 匹配名称中任何单个字符。...例如,为了保留一个程序,你要指定Main方法和类。为了保留一个库,你应该指定所有被公开访问元素。...[]); } ``` - 保留所有被公开访问元素 ```proguard -keep public class * { public protected *;...allowshrinking 指定-keep选项中指定入口点可能会压缩,即使必须另外保留它们。 也就是说,可以在压缩步骤中删除入口点,如果它们必需,则它们可能未被优化或混淆。...如果指定了一个方法,则ProGuard仅将该方法作为入口点进行保存。其代码可能仍会进行优化和调整。 类规范 类规范类和类成员(字段和方法模板。

1.6K20

【错误记录】Android 中使用 Room 框架访问数据库报错 ( cannot find implementation for xx.xxDatabase. xxDatabase_Impl )

, 只可能有两个方向出错 : 依赖配置错误 : 没有正确配置 Room 依赖 ; 注解使用错误 : 写代码时 , 没有写对 如果使用 Kotlin 语言开发 , 导入依赖库时 , 需要使用 kapt...kapt 'androidx.room:room-compiler:2.2.5' 如果使用 Java 语言开发 , 则在导入依赖库时 , 需要使用 annotationProcessor 导入注解处理器...如果该文件不存在,则可能由于 Room kapt 编译过程出现了错误,需要查看编译日志并修复相应错误。...四、检查代码混淆错误 如果您项目使用了混淆或压缩功能,需要在 proguard 文件中添加 Room 相关规则,以避免混淆 Room 相关类和接口。...如果以上方法都不能解决问题,可以尝试清除项目并重新构建,或者使用 Android Studio 中 Invalidate Caches / Restart 功能来尝试解决问题。

60020

Android 代码混淆 混淆方案

”可以分为两部分,一部分Java 代码优化与混淆,依靠 proguard混淆器来实现;另一部分资源压缩,将移除项目及依赖库中未被使用资源(资源压缩严格意义上跟混淆没啥关系,一般我们都会放一起用...分析和优化方法二进制代码;根据proguard-android-optimize.txt中描述,优化可能会造成一些潜在风险,不能保证在所有版本Dalvik上都正常运行。 混淆。...把类名、属性名、方法名替换为简短且无意义名称; 预校验。添加预校验信息。这个预校验作用在Java平台上Android平台上不需要这项功能,去掉之后还可以加快混淆速度。...# 保留在Activity中方法参数view方法, # 这样以来我们在layout中写onClick就不会被影响 -keepclassmembers class * extends android.app.Activity...Android代码混淆之ProGuard 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139323.html原文链接:https://javaforall.cn

2.4K30

android代码混淆

二, 我们代码依赖于系统接口,比如被系统代码调用回调方法,这种情况最复杂。 三, 我们java 元素名称是在配置文件中配置好。...所以使用proguard时,我们需要有个配置文件告诉proguard 那些java 元素不能混淆。...}    保护指定类成员,如果此类受到保护他们会保护更好 -keepclasseswithmembers {class_specification}    保护指定类和类成员,条件所有指定类和类成员要存在...com.asqw.android.Listener{ public protected ;  【所有方法不进行混淆】 } -keep public class com.asqw.android...,如果所有指定类成员出席(在压缩步骤之后)】 native ; } -keepclasseswithmembers class * { 【保护指定类和类成员,条件所有指定类和类成员要存在

1.5K80

Android 组件化(一)项目模式管理、模式切换

模块化一个App主模块依赖多个Android子模块,只能运行App主模块;组件化多个App主模块,各个模块都能独立运行测试。那么是否要使用模块化呢?...首先要做就是创建这两个组件,首先创建login组件,先将项目从Android模式切换到Project模式,然后鼠标右键点击StudyComponent → New → Module,出现弹窗,这里选择...创建模块方式和之前一样,只不过这里我们就要选择Android Library进行创建了,它里面没有让你去创建Activity,点击Finish即可。...gradle里面有一种编程语言Groovy,感兴趣的话可以去了解一下。...同时我们修改一下LoginActivity中代码,让它继承自basic模块中BaseActivity,使用父类方法showMsg,弹出Toast。

72120

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

、app 模块注解、app 跳转到 module1 模块 app 模块 : 使用 @Route(path = "/app/MainActivity") 注解标注 Activity 类 , 界面按钮点击方法跳转到...; import com.alibaba.android.arouter.launcher.ARouter; // 在支持路由页面上添加注解(必选) // 这里路径需要注意至少需要有两级,/xx...扩展含义 // ext 后 {} 花括号 , 闭包 , ext{ // 是否模块化模式 // 集成模式 true ( 默认模式 , 模块化 ) // 组件模式 false...---- Module 模块配置比较复杂 ; 首先 , Module 模块在组件模式下可以独立运行应用 , 必须有一个入口 Activity ; 但是 Module 下清单文件这样 : <...}else{ // 组件模式 apply plugin: 'com.android.application' } 此外 , 如果 组件模式 , module 可以独立运行应用 ,

2.3K20

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

(‘proguard-android.txt')方法可从 Android SDKtools/proguard/文件夹获取默认 ProGuard 设置。...它包括相同 ProGuard 规则,还包括其他在字节码一级(方法内和方法间)执行分析优化,以进一步减小 APK 大小和帮助提高其运行速度。...proguard中一共有三组六个keep关键字含义 keep 保留类和类中成员,防止它们被混淆或移除。 keepnames 保留类和类中成员,防止它们被混淆,当成员没有被引用时会被移除。...keepclasseswithmembernames 保留类和类中成员,防止它们被混淆,当成员没有被引用时会被移除,前提指名类中成员必须存在,如果不存在则还是会混淆。...proguard-android-optimize.txt proguard-android.txt 就像文件名写那样,“proguard-android-optimize.txt”更积极混淆选项

81820

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

(‘proguard-android.txt')方法可从 Android SDKtools/proguard/文件夹获取默认 ProGuard 设置。...它包括相同 ProGuard 规则,还包括其他在字节码一级(方法内和方法间)执行分析优化,以进一步减小 APK 大小和帮助提高其运行速度。...proguard中一共有三组六个keep关键字含义 keep 保留类和类中成员,防止它们被混淆或移除。 keepnames 保留类和类中成员,防止它们被混淆,当成员没有被引用时会被移除。...keepclasseswithmembernames 保留类和类中成员,防止它们被混淆,当成员没有被引用时会被移除,前提指名类中成员必须存在,如果不存在则还是会混淆。...proguard-android-optimize.txt proguard-android.txt 就像文件名写那样,“proguard-android-optimize.txt”更积极混淆选项

1.6K10

学(kao)习(bei)官方关于64k异常处理 ^_^

: Unable to execute dex: method ID not in [0, 0xffff]: 65536 较新版本 Android 构建系统虽然显示错误不同,指示同一问题: trouble...如需了解有关 Proguard 格式和语法详细信息,请参阅 Proguard 手册中 Keep Options 一节。...在 multiDexKeepProguard 中指定文件应该在任何有效 ProGuard 语法中包含 -keep 选项。例如,-keep com.example.MyClass.class。...对于发布定制,将 minSdkVersion 设置为适于您实际最低支持级别。此设置生成 Dalvik 可执行文件分包 APK 可兼容更多设备,构建时间更长。...不过,由于是以定制形式实现配置,保留了使用与发布相适最低 API 级别和 ProGuard 代码压缩执行正常构建能力。

93820
领券