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

当我运行proguard时,我可以将jar文件中的所有内容保存在一句话中吗?

当您运行ProGuard时,可以使用"-keep"选项来保留jar文件中的特定内容。"-keep"选项用于指定要保留的类、方法、字段等。您可以使用通配符来匹配多个类或方法。

以下是一个示例命令行参数,用于将jar文件中的所有内容保存在一句话中:

代码语言:txt
复制
-keep class com.example.** { *; }

这个命令将保留com.example包及其子包中的所有类和成员。

请注意,使用"-keep"选项可能会导致生成的代码变得庞大,因为它会保留所有指定的内容。因此,在使用此选项时,需要权衡代码大小和混淆效果之间的平衡。

对于更详细的ProGuard用法和选项,请参考腾讯云的ProGuard产品文档:ProGuard产品介绍

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

相关·内容

ProGuard 在 Android 上使用姿势

每个 Android 应用都应该使用代码压缩认为是的! 但是在您激动跳起来之前,请先继续阅读下去。当您开启 ProGuard ,在某些非常微妙情况下会让您应用崩溃。...简单来说,ProGuard 您项目中 .class 文件做为输入,然后寻找代码中所有的调用点,计算出代码中所有可达调用关系图,然后移除剩余部分(即不可达代码和那些不会被调用代码)。...在您可以测试是否开启 ProGuard所有代码在运行时都能正常工作前,您需要先构建您应用。...keep 住),keep 住指定一些成员 **keepclasseswithmembers **— 当且仅当所有的成员在匹配存在,会 keep 住 这些类和它成员 建议您从 ProGuard...ProGuard 和 混淆后堆栈 之前提及到,在构建过程 ProGuard 会在处理类文件输出映射关系和日志文件。当您需要保留构建产物,您应当保存好这些文件和 APK 在一起。

2.5K40

在 Android Instant App(安卓即时应用程序)启用 ProGuard (混淆)

**因此,与可安装应用程序构建相反,ProGuard(混淆)可以独立运行在每个功能模块代码。...对于该文件初始内容,您应该复制并粘贴可安装应用程序规则(从本指南第 1 步)。...如果你愿意,不必为每个功能创建单独规则文件,您可以使用相对路径(例如「../ aia-proguard-rules.pro」)所有功能模块指向单个文件。 3....使用一点 shell 魔法(在后面的所有命令都是基于 Linux 系统 bash命令),我们可以得到 ProGuard(混淆)规则需要保留列表: $ apkanalyzer dex packages...请记住通过运行应用程序并检查所有可能情况来彻底进行测试,因为某些错误只能在运行时发生。 ---- 希望本指南能够让你更好地理解为什么 ProGuard(混淆)可以使你即时应用程序崩溃。

2.5K30

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

c类只有一个a方法,从字符串内容我们可以看出,这个是Utils类methodNormal()方法。 为什么要创建这样一个项目呢?...好了,这就是proguard-android.txt文件所有默认配置,而我们混淆代码也是按照这些配置规则来进行混淆。经过上面的讲解之后,相信大家对这些配置内容基本都能理解了。...混淆Jar 在本篇文章第二部分想讲一讲混淆Jar内容,因为APK不一定是我们交付唯一产品。...首先我们写都是Java代码,Java代码运行要基于Jre基础之上,没有Jre计算机无法识别Java语法,因此第一个要依赖就是Jrert.jar。...不过细心朋友可能会发现,在上面整理出了五个依赖Jar包,但是在图中却添加了六个。这是在写这篇文章碰到一个新坑,也是定位了好久才解决觉得有必要重点提一下。

1.6K70

深入探索 Android 包瘦身(上)

此外,每当在 res 文件夹下放一个文件,aapt 就会自动生成对应 id 并保存在 .R 文件,但 .R 文件仅仅只是保证编译程序不会报错,实际上在应用运行时,系统会根据 ID 寻找对应资源路径...,它可以 浏览任何 Android 可执行文件,并且检查出信息,比如类接口、成员变量等等,此外,它还可以支持多种格式,比如说 APK、Jar、Class、So 以及所有的 Android 二进制文件如清单文件等等...此外,我们也可以在配置混淆文件 android.util.Log 置为无效代码,以去除 apk 打印日志代码。而 proguard-rules.pro 是该模块下混淆配置。...$JavaScriptInterface { public *; } # 仅希望保护类下特定内容需使用匹配符 ; //匹配所有构造器 ; //匹配所有字段...ProGuard 在删除所有跟踪(包括组成日志消息字符串操作)方面更有效。 2)、ProGuard 应用模式匹配算法可以识别和替换短指令序列,从而提高代码效率并为更多优化打开了机会。

1.9K30

创建Android库方法及Android .aar文件用法小结

可以提供构建应用所需一切内容,包括源代码、资源文件和 Android 清单。...您应用模块现在可以访问 Android 库任何代码和资源,库 AAR 文件在构建已捆绑到您 APK 。...库模块可能包含自己 ProGuard 配置文件 通过 ProGuard 配置文件添加到包含其 ProGuard 指令库,您可以在自己库上启用代码压缩。...构建工具会为库模块将此文件嵌入到生成 AAR 文件。在您将库添加到应用模块,库 ProGuard 文件附加至应用模块 ProGuard 配置文件 (proguard.txt)。...通过 ProGuard 文件嵌入到您库模块,您可以确保依赖于此库应用模块不必手动更新其 ProGuard 文件即可使用库。

2.8K10

“码码”再也不用担心代码被反编译了!

它还可以使用简短无意义名称来重命名已经存在类、字段、方法和属性。...四、使用proguard工具对挑选出来特定.jar进行代码混淆 (1)通过eclipse工程com.stkj.action包下所有类,打包成com.stkj.action.jar。...此.jar 用于代码混淆测试 (2)运行proguardgui.jar文件。 或者右键选择java(TM)运行。打开proguard图形界面工具。...对于复杂混淆来说,图形界面没有的属性,就要参考proguard提供使用文件,按照自己想要要求在.pro文件配置了。其实proguard使用关键就是编写这个配置文件。..., proguard将会按照配置文件描述内容,对com.stkj.action.jar 进行执行。 执行中注意出现问题。执行成功后会有提示成功信息。

2.9K60

史上最全Android build.gradle配置教程

二、Modulebuild.gradle文件: 从文件内容可以看出,主要分为三大部分,如下图所示: ?...proguard-rules.pro文件位于当前项目的根目录下,可以在该文件定义一些项目特有的混淆规则。...2.7、packagingOptions{}闭包:打包相关配置 当项目中依赖第三方库越来越多时,有可能会出现两个依赖库存在同一个(名称)文件。...那么就可以根据提示,然后使用以下方法重复文件剔除,比较常用是通过exclude去除重复文件,例如: packagingOptions{ //pickFirsts做用是 当有重复文件 打包会报错...’], dir: ‘libs’):implementation fileTree是一个本地依赖声明,表示libs目录下所有.jar后缀文件都添加到项目的构建路径当中。

3.5K30

Android插件化基础3----Android编译打包流程详解

系统资源build/tools/zipalign目录,它主要工作是apk包进行对齐处理,使apk包所有资源文件举例文件起始偏移为4字节整数倍,这样通过内存映射访问apk速度会更快,验证apk...ProGuard工具目录.png bin目录: bin目录包含了几个bat和shell脚本,通过这些脚本可以直接执行proguard.jar,proguardgui.jar和retrace.jar...如果bin目录添加到环境变量,就可以直接在命令行执行progurad,proguardgui和retrace命令了,避免每次都要输入 java -jar + lib目录: lib目录包含了Proguard...混淆之后jar文件执行过程如果出现异常,生成异常信息很难被解读,方法调用堆栈都是一些混淆之后名字,通过retrace.jar可以异常堆栈信息方法名还原成混淆前名字,方便程序解决bug...有一种思路是,在我们使用自定义View,前面都必须加上我们包名,比如com.a.b.customeview,我们可以遍历所有Layout下XML布局文件,查找所有匹配com.a.b标签即可 2.3

2K22

Android Proguard(混淆)

在查找类库时候,proguard运行类库是不算在内。需要指明是应用在运行时依赖类库。...元素名已经存在在mapping文件元素,按照映射表重命名;没有存在到mapping文件元素,重新赋一个新名字。mapping文件可能引用到输入文件类和类库类。...正常编译器会自动处理他们,并且输出出来jar包也可以轻易换个字典再重新混淆一次。最有用做法一般是选择已经在类文件存在字符串做字典,这样可以稍微压缩包体积。...目标文件针对java6情况下,预校验是可选;针对java7情况下,预校验是必须,除非目标运行平台是Android平台,设置它可以节省一点点间。...(这里也看不太懂,压缩阶段不是依赖keep声明入口节点?) allowoptimization 修饰-keep, 声明一个元素可以被优化,即使它已经声明被保护。

2.5K30

史上最全Android build.gradle配置详解(小结)

二、Modulebuild.gradle文件: 从文件内容可以看出,主要分为三大部分,如下图所示: ?...proguard-rules.pro文件位于当前项目的根目录下,可以在该文件定义一些项目特有的混淆规则。...2.7、packagingOptions{}闭包:打包相关配置 当项目中依赖第三方库越来越多时,有可能会出现两个依赖库存在同一个(名称)文件。...那么就可以根据提示,然后使用以下方法重复文件剔除,比较常用是通过exclude去除重复文件,例如: packagingOptions{ //pickFirsts做用是 当有重复文件...’], dir: ‘libs’):implementation fileTree是一个本地依赖声明,表示libs目录下所有.jar后缀文件都添加到项目的构建路径当中。

1.7K20

Android 代码混淆机制

如果不加混淆,相当于直接源代码拱手送人,内容严密app权限审核可以说是形同虚设。...:project.properties文件“# proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt...还有一种情况是可以正常打包出APK文件,但是不一定能运行,能运行也会在某一步上出错,这种情况一般是因为把代码不可混淆字段或文件给混淆了比如引入jar包和so文件等,导致程序功能变化。...二、通过ProGuard工具混淆代码 如果你想把你Android项目打包成jar文件然后再混淆,那这种方法比较适合 下载运行ProGuard工具 1.首先到http://proguard.sourceforge.net...系统默认会带上rt.jar,这里我们可以先remove掉,然后到jre下面copy所有的包。

1.3K20

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

三, 是我们java 元素名称是在配置文件配置好。 所以使用proguard,我们需要有个配置文件告诉proguard 那些java 元素是不能混淆。...-flattenpackagehierarchy {package_name} 重新包装所有重命名包并放在给定单一包 -repackageclass {package_name} 重新包装所有重命名文件中放在给定单一包...:proguard-project.txt”这行前“#”删除即可; 2.修改混淆配置文件:找到项目根目录下proguard-project.txt文件,修 改其中代码,这部分是最关键; 3.保存相关文件供以后出错使用...”这行前“#”删除,最后导出即可 实现对代码混淆,即使我们没有去编写proguard-project.txt内容。...最后说明下: 第三方jar如果有.so文件,不用去理会,引 入第三方jar文件不要混淆,否则可能会报异常 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139265

72820

android混淆那些坑

这里minifyEnabled即用来控制在编译是否需要启用ProguardminifyEnabled修改为true,即表示启用Proguard。’...lib目录 lib目录包含了Proguard工具对应jar文件,其中又包含三个文件proguard.jar,proguardgui.jar和retrace.jar。...混淆之后jar文件执行过程如果出现异常,生成异常信息很难被解读,方法调用堆栈都是一些混淆之后名字,通过retrace.jar可以异常堆栈信息方法名还原成混淆前名字,方便程序解决bug...如果bin目录添加到环境变量,就可以直接在命令行执行proguard,proguardgui和retrace命令了,避免每次都要输入java -jar + proguard.jar使用 使用proguard.jar...打包忽略警告 当在导出,发现很多could not reference class之类warning信息,如果确认app运行中和那些引用没有什么关系的话,就可以添加-dontwarn标签,就不会在提示这些

3.1K60

android代码混淆

proguard 原理 Java代码编译成二进制class 文件,这个class 文件可以反编译成源代码 ,除了注释外,原来code 基本都可以看到。...proguard 就是这样混淆工具,它可以分析一组class 结构,根据用户配置,然后把这些class 文件可以混淆java 元素名混淆掉。...所以使用proguard,我们需要有个配置文件告诉proguard 那些java 元素是不能混淆。...{filename}    使用给定文件关键字作为要混淆方法名称 -overloadaggressively    混淆应用侵入式重载 -useuniqueclassmembernames...{package_name}    重新包装所有重命名文件中放在给定单一包 -dontusemixedcaseclassnames    混淆不会产生形形色色类名 -keepattributes

1.5K80

Android编程权威指南笔记3:Android Fragment讲解与Android Studio依赖关系,如何添加依赖关系

Android Fragment 当我在学习,了解了Fragment词汇 Fragment是一种控制器对象,就把所了解简单说一下。...这个步骤在以后代码,你也可以看到,或者你打过,这里也打过。 创建一个动态UI:FragmentManager提供了对Activity运行Fragment添加、删除、替换操作。...多个Fragment之间通信:两个单独Fragment之间是不应该进行通信。应该使用他们所存在Activity作为沟通纽带。 Fragment类可以用很多方法来实现各种各样结果。...虽然Fragment定义了自己生命周期,但是该生命周期取决于其活动:如果活动停止,则不能启动其中碎片; 当活动被破坏所有碎片将被破坏。...'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir

1.7K30

使用Gradle管理你Android Studio工程

前言 关于Android Gradle更多详细内容已经出书《Android Gradle权威指南》,大家可以购买,看更多没有介绍知识点和内容,购买链接如下 https://item.jd.com/12162983...配置文件,在这里可以所有project以及module配置一些常用配置。...这里是循环处理每个applicationVariant,当他们输出文件名以apk结尾并且buildType是release,重新设置新输出文件名,这样就达到了我们批量修改生成文件目的。...不就好了吗,可以批量替换?...今天我们不谈这个,想要是在我们生成APK包已经包含了检测代码覆盖率代码,这样当我们安装APK后运行进行一些测试时候,这些检测代码覆盖率代码就会被执行到,这样最后我们导出一份代码测试覆盖率文件

95140

Maven - 代码混淆proguard-maven-plugin vs 代码加密classfinal

密码读取顺序已经改为:参数获取密码||环境变量获取密码||密码文件获取密码||控制台输入密码||GUI输入密码||退出 tomcat下运行加密后war 加密后war放在tomcat/webapps...,看不到方法具体内容;当class被classloader加载,真正方法体会被解密注入。...v1.1.6 增加机器绑定功能 v1.1.5 增加无密码加密方式,启动无需输密码,但是并不安全 v1.1.4 纯命令行下运行jar,从配置文件读取密码,读取后清空文件 v1.1.3 加入输入密码弹框...v1.1.2 修复windows下加密后不能启动问题 v1.1.1 启动jar在控制台输入密码,无需将密码放在参数 v1.1.0 加密jar解密代码加入加密后jar包,无需使用多余jar...启动包加密之后,方法体被清空,保留方法参数、注解等信息.主要兼容swagger文档注解扫描 反编译只能看到方法名和注解,看不到方法体具体内容 启动过程解密class,完全内存解密,不留下任何解密后文件

17900

「万物生长」一个APK从诞生到活跃在Android手机上

APK诞生 上述之前在其他文章里面也常见图,而这张图讲述一个APK诞生流程,可以分为以下几个流程 aapt工具资源文件转化出对应R文件和编译好文件,但是这类资源文件不包含assets目录下文件...Proguard + Dex Dex工具就是Class文件转换成二进制这里就不做介绍 在关于proguard内容上,对于8成开发者阮大概最熟悉内容就是混淆了。...其实这个工具还给我们带来了第二个优势,就是代码内容缩短,在整体包体积缩小起到了至关重要作用。 那Proguard只有这么点作用??显然并不是这样。...来模拟程序运行尽可能出现情况来优化和简化代码. 为了数据流分析需要Optimize会多次遍历所有字节码ProGuard会开启多线程来加快速度。...代码编译以后,我们能够发现生成代码中会同时生成以Lambda来标识类,这就是说明了他解析方案,而代码实现方式就是我们在Java 7常见方案了。 不过你觉得新产品提升会止步于此

93020

SpringBoot 玩一玩代码混淆,防止反编译代码泄露

编译 简单就是把代码跑一哈,然后我们代码 .java文件 就被编译成了 .class 文件 反编译 就是针对编译生成 jar/war 包 里面的 .class 文件 逆向还原回来,可以看到你代码写啥...(不混淆)--> -keepnames interface ** { *; } # 此选项保存所有软件包所有原始接口文件(不进行混淆) #-keep interface * extends * {...-- 就是输入Jar名称,我们要知道,代码混淆其实是一个原始jar,生成一个混淆后jar,那么就会有输入输出。...-- 配置一个文件,通常叫做proguard.cfg,该文件主要是配置options选项,也就是说使用proguard.cfg那么options下所有内容可以移到proguard.cfg -->...-- 可以在此处写option标签配置,不过上面使用了proguardInclude,故而我更喜欢在proguard.cfg配置 -->

79820
领券