Android ProGuard如何隐藏混淆导出库的源代码

Android ProGuard如何隐藏混淆导出库的源代码,第1张

概述我正在开发 Android库,我想隐藏/混淆库的源代码实现. 用户项目应用程序将使用该库的方式是: startActivity( new Intent(context, LibraryActivityName.class) ); 所以我需要在库项目中保留入口点Activity的名称,这就是全部. 当我使用默认的ProGuard设置时: buildTypes { release { 我正在开发 Android库,我想隐藏/混淆库的源代码实现.

用户项目应用程序将使用该库的方式是:

startActivity( new Intent(context,libraryActivityname.class) );

所以我需要在库项目中保留入口点Activity的名称,这就是全部.

当我使用默认的ProGuard设置时:

buildTypes {    release {        MinifyEnabled false        proguardfiles getDefaultProguardfile('proguard-androID.txt'),'proguard-rules.pro'    }}

以及suggested example for library – 没有发生任何事情,通过点击用户应用程序内的活动名称(当他导入它时) – 可以看到源代码.

谢谢,

解决方法 由于您没有典型的库,因此不应包含典型的库示例.

首先,您需要启用Proguard执行,更改此行:

MinifyEnabled true

其次,您不希望保留所有公共类,而只保留活动:

-keep class libraryActivityname { public protected <methods>; }

如果我正确理解你的问题,其余的类可以完全混淆,所以除非你在某处使用反射,否则不需要进一步配置.

如果将混淆的类重新打包到内部包或使用的东西中,也会很好

-repackageclasses my.library.package.internal

这可能也需要

-allowaccessmodification

顺便说一句. ProGuard不会混淆代码本身,只会混淆类/方法名称.

总结

以上是内存溢出为你收集整理的Android ProGuard如何隐藏/混淆导出库的源代码全部内容,希望文章能够帮你解决Android ProGuard如何隐藏/混淆导出库的源代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1122528.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存