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

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

Proguard 混淆配置 : -keep 指定 类 , 类成员 , 不被混淆 ; ( 类成员指的是类的成员方法 成员属性 ) -keepclassmembers 指定 类成员 不被混淆 , 类... 类 方法 可以混淆 ; -keepclasseswithmembers 指定 类 类成员 , 不被混淆 , 前提是 指定的类成员存在 ; 开启 Proguard : 在 Module 下的 build.gradle...} } 上述 proguard-rules.pro 是开发者自己手动配置的 , 上述 proguard-android-optimize.txt 混淆配置文件是系统自动生成的 , 该 proguard-android-optimize.txt...(‘proguard-android-optimize.txt’)}”) 语句 , 打印了混淆脚本 proguard-android-optimize.txt 的路径 , 其打印结果如下 , 该混淆脚本在...\intermediates\proguard-files\proguard-android-optimize.txt-3.6.1 生成混淆配置脚本 proguard-android-optimize.txt

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

Android-Proguard(混淆)

以我们的常用开发工具andorid studio 为例,Android Studio自身集成Java语言的ProGuard作为压缩,优化,混淆预校验,并配合Gradle工具进行构建,我们只需要在工程应用目录的...大家看到了,有两个混淆文件,proguard-android.txtproguard-rules.pro,proguard-rules.pro是我们需要自己编写的混淆文件,proguard-android.txt...除了proguard之外,还有一个DexGuard,是专门用来优化混淆Android应用的。它包括资源混淆,字符串加密,类加密dex文件分割等。...底层组件类不要混淆   -keep public class * extends android.app.Activity   -keep public class * extends android.app.Application...; 7,Parcelable的子类Creator静态成员变量不混淆,否则会产生Android.os.BadParcelableException异常; -keepclass*implementsAndroid.os.Parcelable

1.3K40

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

文章目录 一、Proguard 配置简介 二、Proguard 完整注释 一、Proguard 配置简介 ---- 更多 ProGuard 混淆配置参考 : https://www.guardsquare.com...保留这些类类成员 : # 保留这些类类成员 -keep public class com.google.vending.licensing.ILicensingService 5 ....保留类成员 , 包括成员函数 成员变量 : # 不要混淆 Activity 及 子类的 成员 , 以防在 XML 的 onCLick 属性中用到 ....# 如果想要启用优化 , 不能只在 ProGuard 项目配置中将优化标志设为 true ; # 相反还要在 build.gradle 中指向 "proguard-android-optimize.txt...verbose # 保留一些反射中可能用到的属性 -keepattributes *Annotation*,Signature,InnerClasses,EnclosingMethod # 保留这些类类成员

37900

Android中的Proguard使用

介绍 之前介绍了如何使用命令行将Jar包根据配置文件进行ProGuard,以及ProGuard的过程,会遇到的问题等。接下来会介绍常用的ProGuard如何配置参数。...**则可以匹配所有在mypackage和它子目录的所有类 而FieldsMethods与Java中类似。除了Method的参数中不需要包含它的名字,就和Javap中一样。...默认的,ProGuard在解析classes会跳过这些类成员,因为程序通常不会引用它们。有些情况下,程序的包Library的包相同,从而可以引用包可见的类成员。...如果它们没有在Shrink阶段被移除的话 -keepclassmembernames class scala.concurrent.forkjoin.ForkJoinPool { long eventCount...; int workerCounts; int runControl; scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode

91630

微信Android增量Proguard方案

目前Android微信采用模块化的Gradle构建方式,也是业界普遍采用的一种方式。...,也不允许您修改优化的行为,比如-optimizations -optimizationpasses,这种黑盒的行为往往一旦出现了问题,高昂的维护成本也不容忽视;第三章节我们将进一步解释采用Proguard...而 R8 【图6】是 D8 的衍生产品,旨在集成 ProGuard D8 的功能,目前仍在优化中,逐渐成熟,具体查看QuardSquare官网[1]了解更多。...: 图7 Proguard输出两个产出文件 usage.txt mapping.txt【图7】,usage.txt 是将无用Class、FieldMethod进行删除,mapping.txt保留...Class、FieldMethod的original-obfucate class mapping、inline mapping【图8】,其中inline最为常见,也是Proguard难以增量的主要原因之一

2.2K20

ProGuardAndroid 上的使用姿势

如果以上还不足以说服您使用 ProGuard,其实移除无用代码混淆所有名称还有其他更多的优化效果: 在一些版本的 Android 设备上,DEX 代码会在安装或者运行时被编译成机器码。...在您读 ProGuard 手册时,您没必要看那些 输入 / 输出的部分,因为这些 Android Gradle 打包插件会替您指定输入源(您第三方库的代码) Android jar 库(您构建应用时用到的...APK Analyzer ProGuard Android Studio 集成的 APK Analyzer 可以帮您看到哪些类被 ProGuard 移除了并支持为它们生成 keep 规则。...除了让您的代码更小巧之外, ProGuard R8 可以选择优化您的代码让它运行得更快,当然这又是另一篇文章的话题了…… ---- ¹ proguard-android.txt 文件之前是在 SDK...tools 目录下(SDK/tools/proguard/proguard-android.txt),但在新版的 SDK Tools Android Gradle 插件版本2.2.0+上,可以在构建时从

2.5K40

Eclipse与Android源码中ProGuard工具的使用

ProGuardandroid提供的一个免费的工具,它能够移除工程中一些没用的代码,或者使用语义上隐晦的名称来重命名代码中的类、字段函数等,达到压缩、优化混淆代码的功能。...根据ProGuard的具体使用环境,我分在Eclipse工具android源码两种编译环境浅谈ProGuard的使用方法。...ProGuard的混淆文件:proguard-project.txtproject.properties(在老版本的ADT中,只会生成一个叫proguard.cfg的文件)。...: sdk.dir, user.home) ,意指要让ProGuard 来压缩混淆代码,把这句注释去掉即可!...此时就需要我们配置混淆的个性化文件proguard-project.txt(eclipse环境中)或者proguard.flags(android源码环境),在其中去配置不需要混淆的类、方法变量等。

1.3K90

Android 安全】DEX 加密 ( Proguard 混淆 | 混淆后的报错信息 | Proguard 混淆映射文件 mapping.txt )

文章目录 一、Proguard 混淆后的报错信息 二、Proguard 混淆映射文件 mapping.txt 更多 ProGuard 混淆配置参考 : https://www.guardsquare.com.../en/products/proguard/manual/usage 一、Proguard 混淆后的报错信息 ---- 前提 : proguard-rules.pro 混淆配置中配置保留行数 ; # 保留行数...:2473) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop...(Handler.java:30) , 报错的是混淆后的信息 , 可读性很差 ; 二、Proguard 混淆映射文件 mapping.txt ---- 前提 : proguard-rules.pro 混淆配置中配置保留行数...; # 保留行数 -keepattributes SourceFile,LineNumberTable Proguard 混淆后 , 会提供一个 原始代码 与 混淆过的代码 的对应关系文件 mapping.txt

94100

Android插件化、热补丁中绕不开的ProGuard的坑

ProGuard简介 ProGuard是2002年由比利时程序员Eric Lafortune发布的一款优秀的开源代码优化、混淆工具,适用于JavaAndroid应用,目标是让程序更小,运行更快,在Java...背景 在我们实施插件化、热补丁修复时,为了让插件、补丁原来的宿主兼容,必须依赖ProGuard的applymapping功能的进行增量混淆,但在使用ProGuard的applymapping时会遇到部分方法混淆错乱的问题...前者包含我们编写代码、第三方的SDK,而后者通常是系统库,不需要编译到程序中,比如引用的android.jar、rt.jar。...ProGuard代码优化可以解决这些问题,移除没有使用到的代码、优化指令、逻辑,以及方法内部的局部变量分配内联,让程序运行的更快、占用磁盘、内存更低。...初始化 ProGuard初始化会读取我们配置的proguard-rule.txt各种输入类以及依赖的类库,输入的类被ClassPool统一管理,我们的rule.txt配置了keep类的条件,ProGuard

1.5K60

Scala简介安装

Scala简介安装     本篇文章为大家介绍以下ScalaScala的安装以及IDE(eclipse)的使用,虽然这个基本环境没有什么技术含量,但是基本环境做不好,往后探讨再高深的东西,都是白扯,...Scala既是面向对象的语言,也是面向函数的语言。scala可以为你在做大量代码重用扩展是提供优雅的层次结构,并可以通过高阶函数来实现这样的目标。...scala不是一门纯的函数式编程语言,所以有别纯函数式语言的区别之一是:scala提供变量常量,而纯函数式编程语言是没有变量这概念的。     ...2.使用 Scala基本是基于Java的,所有的使用的方法基本Java相同,差别就在与一些命令不同,如下: 1>通过cmd     通过cmd命令窗口,输入scala,查看Scala的版本信息,Java...调用执行:scala Person ?     看到这里你就会发现,ScalaJava的共通之处了。

84060

PythonScala的序列

序列是一门高级语言里都会具备的一种数据结构,ScalaPython也不例外。在不同的语言里,序列有着各种不同的别称以及增添了不同的功能,今天只关注ScalaPython基本的内置数据结构。...Python要介绍的有两种,分别是列表元组;Scala里的则是数组,列表元组。不要被相同的名字糊弄了,PythonScala的列表元组虽然同名,但本质上是不一样的。...> array2 res4: Array[Int] = Array(1, 2, 3) 其实无论在ScalaPython,我们都不应该把赋值语句理解为赋值,而是赋与一个指向变量的对象。...('f', (1,2,3)) 看完Scala里独特的数组,现在回过头看看列表元组。...Python的元组则是一个不可变的能容纳各个类型元素的序列,初始化Scala很相似,使用方式很简单,使用中括号就可以了: tuple0 = (1,2) tuple0[0] 1

71010

ScalaKotlin脚本编程

ScalaKotlin脚本编程 ScalaKotlin作为运行在JVM上的编程语言,解决了Java的很多痛点。...今天我们来聊聊如何将ScalaKotlin作为脚本语言使用(Java不支持以脚本形式运行哦)。...Scala脚本编程 Scala脚本的扩展名仍为scala,运行命令为scala普通的Scala类一样。...可以看到Kotlin脚本程序一样不需要主函数,Scala脚本同样以args参数接收用户输入(args是一个Array[String]类型的数组) 在命令行执行:scala Main.scala 高寒...ScalaKotlin脚本编程的异同 Scala脚本的扩展名执行方式普通Scala类一样;Kotlin脚本的扩展名为kts,执行的时候需要加-script参数 Scala提供了对于外部命令调用的快捷方法

1.7K10

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

这里有许多通用 安卓即时程序专用(AIA 意为 Android Instant Apps)的技术可以减少 APK 大小,你应该都去了解一下,但使用 ProGuard(混淆)来移除未使用的代码对 nstant...当 ProGuard(混淆)集成到 Android 构建中时,新的 com.android.feature Gradle 插件(用于构建 AIA (安卓即时应用程序)模块)根本不存在,并且 ProGuard...它为资源文件 Android Manifest 中使用的类生成所需的 ProGuard(混淆)规则,但在构建即时应用程序的情况下,它们最终可能会出现在错误的模块中。...更好的方法是在完整的,可安装的应用程序中重新使用 ProGuard(混淆)映射文件,但设置维护起来很困难。更简单的方法是简单地禁用非基本特征中的混淆。...要为非基本模块禁用混淆处理,请将此规则添加到其ProGuard(混淆)配置中: -dontobfuscate 如果你在基本模块非基本模块之间有共享配置文件,我建议你创建一个单独的配置文件。

2.5K30

scala的optionsome

Scala 一直隐藏的一些重要内容将要现身:Scala 也是一种函数语言(这里的函数性是与其他 dys 函数语言相对而言的)。 Scala 的面向函数性非常值得探讨,这不仅是因为已经研究完了对象内容。...Scala 中的函数编程将提供一些新的设计结构理念以及一些内置构造,它们使某些场景(例如并发性)的编程变得非常简单。....本月,您将首次进入 Scala 的函数编程领域,查看大多数函数语言中常见的四种类型:列表(list)、元组(tuple)、集合(set) Option 类型。...这类似于:我们可以要求经理倾听我们反对他们要求的不可能完成的项目期限,然后经理再进一步把我们的反对传达给上司用户。 Scala 提供了一种普通的函数方法,打破了这一僵局。...清单 2 展示了 Scala 的模式匹配: 清单 2.

1.2K50
领券