首页
学习
活动
专区
圈层
工具
发布

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

它包括相同的 ProGuard 规则,但还包括其他在字节码一级(方法内和方法间)执行分析的优化,以进一步减小 APK 大小和帮助提高其运行速度。...每次构建时 ProGuard 都会输出下列文件 dump.txt 说明 APK 中所有类文件的内部结构。mapping.txt:提供原始与混淆过的类、方法和字段名称之间的转换。...在每次添加库的时候,需要及时进行make a release build DexGuard时Proguard同一个团队开发的软件, 优化代码,分离dex文件从而解决65k方法限制的文件 关于proguard-android.txt...proguard中一共有三组六个keep关键字的含义 keep 保留类和类中的成员,防止它们被混淆或移除。 keepnames 保留类和类中的成员,防止它们被混淆,但当成员没有被引用时会被移除。...大部分情况下它包含所有图片,图标和源文件,菜单文件和布局。 ? resources.arsc —— 这个文件包含了所有 value 资源。这个文件包含了你 value 目录下的所有数据。

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android-Proguard(混淆)

    以我们的常用开发工具andorid studio 为例,Android Studio自身集成Java语言的ProGuard作为压缩,优化,混淆和预校验,并配合Gradle工具进行构建,我们只需要在工程应用目录的...build.gradle文件中设置minifyEnabled为true,然后可以到proguard-rules.pro文件中加入我们的混淆规则即可。...大家看到了,有两个混淆文件,proguard-android.txt和proguard-rules.pro,proguard-rules.pro是我们需要自己编写的混淆文件,proguard-android.txt...除了proguard之外,还有一个DexGuard,是专门用来优化混淆Android应用的。它包括资源混淆,字符串加密,类加密和dex文件分割等。....** # 二颗星表示保持本包和子包下的类名(不包含内容) # 只保持本包的类名和内容 -keep class com.xzt.demotwo.*{*;} #可以保持本包和子包的类名和内容 -keep

    1.6K40

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

    它包括相同的 ProGuard 规则,但还包括其他在字节码一级(方法内和方法间)执行分析的优化,以进一步减小 APK 大小和帮助提高其运行速度。...每次构建时 ProGuard 都会输出下列文件 dump.txt 说明 APK 中所有类文件的内部结构。mapping.txt:提供原始与混淆过的类、方法和字段名称之间的转换。...在每次添加库的时候,需要及时进行make a release build DexGuard时Proguard同一个团队开发的软件, 优化代码,分离dex文件从而解决65k方法限制的文件 关于proguard-android.txt...proguard中一共有三组六个keep关键字的含义 keep 保留类和类中的成员,防止它们被混淆或移除。 keepnames 保留类和类中的成员,防止它们被混淆,但当成员没有被引用时会被移除。...大部分情况下它包含所有图片,图标和源文件,菜单文件和布局。 image.png resources.arsc —— 这个文件包含了所有 value 资源。

    2K10

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

    PS: 1、 如果仅仅是为了代码混淆,ProGuard有一个兄弟产品DexGuard,有兴趣的可以去试试,地址在http://www.saikoa.com/dexguard 2 、ProGurad...和 proguard-project.txt。...(三)、ProGuard工作原理 ProGuard 由shrink、optimize、obfuscate和preverify四个步骤组成,每个步骤都是可选的,需要那些步骤都可以在脚本中配置。...ProGuard的工具目录.png bin目录: bin目录中包含了几个bat和shell脚本,通过这些脚本可以直接执行proguard.jar,proguardgui.jar和retrace.jar...proguardgui.jar:是Proguard提供的一个图形界面工具,通过proguardgui.jar可以方便的查看和编辑Proguard配置,以及调用proguard.jar来执行一次优化过程。

    2.6K22

    App安全二三事

    本地加密 本地的加密,我们通常从混淆——proguard入手,这是最简单的加密,成本最低,而且可以比较有效的扼杀一些在破解边缘徘徊的初级破解者,让他们能够悬崖勒马,浪子回头,然而,对于真正想要破解的人来说...再高级一点,我们通过Dexguard、各种第三方so加固服务、加壳服务等方式来进行保护,这些方式的确会极大的增加破解者的破解成本,到对于主流的加固技术,相应的破解技术也是非常成熟的,所以说,虽然技术很牛逼...,但只要破解者知道了你加固的方式,就可以轻而易举的找到破解的方法,也就是比proguard多了一次Google的过程。...识别用户请求链路 根据必要的API调用流程和闭环,限制一组API调用中不同个体API相对于其它API的调用频率(相对次数)限制。...但这个检测通常需要耗费一定的系统资源,同时,当业务比较复杂的时候,如何保证请求检测的实时性和高效性,就成了一个很难平衡的问题。

    1.2K20

    一个 2 年 Android 开发者的 18 条忠告

    查看issues(打开和关闭的都看),这可以让你对这个library的健壮性和稳定性有更好的了解。 如果你时间充足,你应该深入这个库的代码看看它到底是都真的值得使用。...福利:你应该从通读这个和这个开始。 你需要ProGuard,是的,你真的需要! 绝对不要犯还没有使用ProGuard的情况下就在Play Store上发布app的错误。...ProGuard不仅仅减小了你的代码,还混淆了代码,让逆向工程师更难理解和复制。 它是Android SDK附带的,完全免费,因此没有理由不用。...我曾见过几个开发者没有使用ProGuard就把app发布了。对于一个技术很普通的黑客来说破解你的app也就是几个小时的事情。...小贴士:但是如果你需要顶尖的安全性,ProGuard就力不从心了,你需要DexGuard。 使用一个恰当的架构 你永远都会庆幸自己从一开始就选择了一个恰当的架构。

    1.2K80

    一个 2 年 Android 开发者的 18 条忠告

    查看issues(打开和关闭的都看),这可以让你对这个library的健壮性和稳定性有更好的了解。 如果你时间充足,你应该深入这个库的代码看看它到底是都真的值得使用。...福利:你应该从通读这个和这个开始。 5. 你需要ProGuard,是的,你真的需要! 绝对不要犯还没有使用ProGuard的情况下就在Play Store上发布app的错误。...ProGuard不仅仅减小了你的代码,还混淆了代码,让逆向工程师更难理解和复制。 它是Android SDK附带的,完全免费,因此没有理由不用。...我曾见过几个开发者没有使用ProGuard就把app发布了。对于一个技术很普通的黑客来说破解你的app也就是几个小时的事情。...小贴士:但是如果你需要顶尖的安全性,ProGuard就力不从心了,你需要DexGuard。 6. 使用一个恰当的架构 你永远都会庆幸自己从一开始就选择了一个恰当的架构。

    65830

    Android代码混淆技术总结(一)「建议收藏」

    这种技术的思想是,首先将要实现平坦化的方法分成多个基本块(就是case代码块)和一个入口块,为每个基本快编号,并让这些基本块都有共同的前驱模块和后继模块。...最常用的就是ProGuard开源工具,其混淆后效果如右图所示。 甚至通过定制混淆字典,可以达到下面这种混淆效果,参考开源项目[7]: 那么这个标识符混淆的原理是怎样的呢?...2.3.2 开源项目 (1) ProGuard (2) https://github.com/burningcodes/DexConfuse DexConfuse是一个简单的dex混淆器,可以混淆类名...、方法名和字段名。...上面我们介绍了Proguard免费混淆工具,它可以混淆类名、方法名和变量名,但是不支持字符串混淆,要使用字符串混淆就需要使用DexGuard商业版混淆器。

    4K31

    实现 APK 保护时常见的坑和解决方案

    在使用如 ProGuard,DexGuard 等常见的产品之余,也有很多公司自行研发了一些保护的方案,专门来针对自家产品做出保护,比如说我司也开发了专门防止二次打包的工具。...坑四:smali 代码注入 讲到保护 APK 那必定是要修改 smali 代码的,不管以何种形式的保护,都无法避免,而我之前设计的方案,由于要注入大量类和方法,因此对 MultiDex 就有了很高的要求...而拆分的时候又要注意,Application 类和用作 Luancher 的 Activity 必须在第一个 dex 内,于是又多出了要解析 AndroidManifest.xml 的需求,而且还要补足...坑六:在代码混淆的基础上继续做保护 如 Proguard 等保护类产品,会对 APP 的代码进行混淆处理,以实现反编译后代码难以读懂的效果。

    66830

    【详解】使用proguard混淆javaweb项目代码

    使用ProGuard混淆JavaWeb项目代码在开发JavaWeb应用时,为了保护源代码不被轻易反编译和阅读,通常会采用代码混淆技术。...ProGuard是一个广泛使用的免费工具,可以用来优化、缩小和混淆Java字节码。本文将详细介绍如何使用ProGuard对JavaWeb项目进行代码混淆。1....ProGuard简介ProGuard是一个Java类文件的过滤器,它可以删除无用的类、字段、方法和属性,重命名剩余的部分,使反编译后的代码难以阅读。...使用ProGuard对JavaWeb项目进行代码混淆是一项重要的安全措施,可以有效防止代码被反编译和盗用。通过本文的介绍,相信你已经掌握了使用ProGuard的基本步骤和技巧。...ProGuard 是一个用于 Java 代码混淆和优化的工具,广泛应用于 Android 开发中,但也可以用于 Java Web 项目。

    1.1K10

    ProGuard 在 Android 上的使用姿势

    ProGuard 除了可以大幅减少代码的空间之外,还可以让所有的标识符(包、类和成员)都使用更短的名字,如 a.A 和 a.a.B。这个过程就是混淆。...在您读 ProGuard 手册时,您没必要看那些 输入 / 输出的部分,因为这些 Android Gradle 打包插件会替您指定输入源(您和第三方库的代码) 和 Android jar 库(您构建应用时用到的...在某些情况下,ProGuard 的警告确实有助于您发现闪退的罪魁祸首和关于您配置上的其他问题。...您可以在 ProGuard 官网的表格看一下概览。 作为一个可选的方案来写 ProGuard 规则,您可以直接在某个不想被混淆和移除的类、方法、属性上添加 @Keep 注解。...ProGuard 和 混淆后的堆栈 我之前提及到,在构建过程中 ProGuard 会在处理类文件时输出映射关系和日志文件。当您需要保留构建产物时,您应当保存好这些文件和 APK 在一起。

    3.9K40

    【Android 安全】DEX 加密 ( Proguard 简介 | Proguard 相关网址 | Proguard 混淆配置 )

    文章目录 一、Proguard 简介 二、Proguard 相关网址 三、Proguard 混淆配置 一、Proguard 简介 ---- Android 开发中 Proguard 主要作用是对 Java.../en/products/proguard/manual Proguard 用法 : https://www.guardsquare.com/en/products/proguard/manual/usage...Proguard 混淆相关文档 : https://www.guardsquare.com/en/products/proguard/manual/usage#keepoptions 三、Proguard...Proguard 混淆配置 : -keep 指定 类 , 类成员 , 不被混淆 ; ( 类成员指的是类的成员方法 和 成员属性 ) -keepclassmembers 指定 类成员 不被混淆 , 类...和 类 方法 可以混淆 ; -keepclasseswithmembers 指定 类 和 类成员 , 不被混淆 , 前提是 指定的类成员存在 ; 开启 Proguard : 在 Module 下的 build.gradle

    1.1K00

    【详解】ProGuard代码混淆

    本文将详细介绍如何使用ProGuard进行代码混淆,并探讨其工作原理和最佳实践。什么是ProGuard?ProGuard是一个免费的Java类文件压缩器、优化器、混淆器和预验证器。...ProGuard的工作原理ProGuard通过读取输入的jar文件或目录,分析类之间的依赖关系,然后根据配置文件中的规则执行压缩、优化和混淆操作。...测试和调试启用ProGuard后,建议在发布前进行充分的测试,确保应用的功能没有受到影响。如果遇到问题,可以通过查看日志和使用​​-printmapping​​选项生成映射文件来定位问题。...下面是一个典型的 ProGuard 配置文件示例,以及如何在 Android 项目中启用和使用它。1. 启用 ProGuard首先,在 ​​build.gradle​​ 文件中启用 ProGuard。...调整规则:根据测试结果调整 ProGuard 规则,确保关键类和方法不被混淆。ProGuard 是一个用于 Android 应用程序的代码优化和混淆工具。

    29500

    android文件混淆详解

    public void Start(java.lang.String); 【对该方法不进行混淆】 } -keepclasseswithmembernames class * { 【保护指定的类和类的成员的名称...,如果所有指定的类成员出席(在压缩步骤之后)】 native ; } -keepclasseswithmembers class * { 【保护指定的类和类的成员,但条件是所有指定的类和类成员是要存在...public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable {【保护指定的类文件和类的成员...进行发编译的时候是不允许有空格的 如果换了正确路径还不好用的话,直接删除proguard就好了 注意:SDK和程序路径最好不要有空格符 情况2: Proguard returned with error...ProGuard.java:195) [2011-10-21 13:22:32 - ZMKSMarket_Build_v1.0] at proguard.ProGuard.execute(ProGuard.java

    1.1K100
    领券