`

关于Android使用proguard进行代码混淆

阅读更多

      自Android 2.3 SDK发布后,Google便在Android SDK Tools里加入了proguard,proguard是一个可以对.java文件进行一定程度上的代码混淆,使用proguard是一件极方便工作,在你项目中没有其他外部Jar包的情况下,在“project.properties”文件里,添加一行:

 

proguard.config=proguard.cfg

      代码即可,然后通过Android Tools(右击项目名)里导出APK即可,如果项目所使用的的SDK版本低于2.3,只需要进行%android_dir%/tools/lib目录,复制proguard.cfg文件到项目的根目录下导出APK即可。

 

      这是一般情况,即无第三方Jar包,如果存在第三方Jar包,那么打开proguard.cfg文件进行编辑,在其中加入以下代码:

 

-libraryjars %lib_jar_path%

 

     有几个Jar包,便添加几次,如在项目的libs目录下有a.jar,b.jar,c.jar三个Jar包:

 

-libraryjars libs/a.jar
-libraryjars libs/b.jar
-libraryjars libs/c.jar

      此外,还有些特殊情况,会令导出发生异常,视具体异常情况而定,修改proguard.cfg文件。

 

      比如出现了以下异常:

 

Warning: com.google.android.maps.MapView: can't find referenced class com.android.mkstubs.stubber.MethodStubber
Warning: com.google.android.maps.MapView$1: can't find referenced class com.android.mkstubs.stubber.MethodStubber

 

即:

 

Warning: %class_full_name%: can't find referenced class %class_full_name%

 

      这种异常情况,需要在proguard.cfg文件中,添加以下代码:

 

-dontwarn %class_full_name%

 

      即可,便以上面例子而言,应当如下:

 

-dontwarn com.google.android.maps.*

      等等,此类情况修改proguard.cfg文件即可,还有种特殊情况,需要对引入的Jar包进行修改,如下:

 

Warning: library class android.content.res.XmlResourceParser extends or implements program class org.xmlpull.v1.XmlPullParser
Warning: library class android.view.LayoutInflater depends on program class org.xmlpull.v1.XmlPullParser

       这是因为引用的Jar包中含有xmlpull类库,Android系统的类库中已经包含了xmlpull,这样混淆出现了冲突,解决办法是把它里面已存在的和系统库冲突的类去掉,就可以了,产生冲突的类可见控制台输出。

      另外对不想混淆的类/方法/变量,可以使用-keep指定,具体参考proguard.cfg文件写法。

分享到:
评论

相关推荐

    Android 4.0及以上版本 ProGuard 代码混淆

    ProGuard 是一款广泛应用于 Android 开发中的代码混淆工具,它能够通过删除未使用的类、字段、方法等,从而缩小 APK 的体积,并提高应用运行速度。此外,ProGuard 还能为类、字段、方法等命名,使得反编译后的代码...

    proguard,代码混淆

    在Java和Android开发中,代码混淆是一个至关重要的环节,它能够保护应用程序的源代码,防止未经授权的逆向工程。ProGuard是一款功能强大的开源混淆工具,由Eric Lafortune开发,它不仅提供代码混淆功能,还包含了...

    proguard4.6 代码混淆器

    **ProGuard 4.6:专业Java代码混淆工具** 在Android开发中,代码安全和优化是至关重要的环节,而ProGuard 4.6正是这样一个工具,专为Java代码提供混淆、优化、压缩和预检查等功能。它能有效地保护你的应用程序源...

    Android 2_3 代码混淆proguard技术介绍 - Zy的技术心

    Android 2_3 代码混淆proguard技术介绍 - Zy的技术心

    java代码混淆器proGuard

    - 对于Android应用,ProGuard是默认的代码混淆工具,防止恶意用户分析和篡改代码。 - 对于服务器端的Java应用,混淆可以增强代码的保密性,减少知识产权泄露的风险。 - 对于开源项目,混淆可以保护作者的劳动成果...

    Android Java代码混淆工具:ProGuard简介及使用.docx

    在Android开发中,ProGuard是最广泛使用的Java代码混淆工具之一,它不仅能够混淆代码,还能够对代码进行优化,减少APK的大小,提高运行效率。 #### ProGuard的工作原理 ProGuard通过对类、方法和字段的名称进行...

    ProGuard工具包,Java代码混淆

    ProGuard是Android和Java平台上的一个强大的开源工具,它能实现代码混淆、优化、压缩以及预校验等功能。本文将深入探讨ProGuard的工作原理、配置与应用。 ### 1. ProGuard概述 ProGuard是一款免费的Java字节码混淆...

    java 代码混淆 proguard

    ProGuard是一款广泛使用的Java代码混淆工具,它能有效地压缩、优化和混淆Java字节码,使其难以阅读和理解。 ProGuard的主要功能包括: 1. **压缩**:删除未使用的类、字段和方法,减小最终的APK或JAR文件大小,...

    如何混淆Android项目代码(ProGuard)防止反编译.rar

    为了对抗这种威胁,开发者通常会采用代码混淆技术,其中ProGuard是Android官方推荐的混淆工具。本教程将深入探讨如何使用ProGuard来混淆Android项目代码,以防止反编译。 一、ProGuard介绍 ProGuard是一款免费的...

    android ndk+代码混淆demo

    通过学习和研究这个项目,开发者可以了解到在Android应用中使用原生代码的流程,以及如何使用ProGuard进行代码混淆,增强应用的安全性。同时,这个项目还涵盖了Eclipse IDE下的项目配置和构建过程,对于理解Android...

    proguard4.4混淆器

    对于Android开发,ProGuard与R8混淆器一起使用,R8是Google推出的新一代代码混淆工具,速度更快,但ProGuard 4.4在某些特定场景下仍然有其价值。 在实际使用ProGuard 4.4时,需要注意以下几点: - **保留关键类和...

    Android代码混淆 proguard语法及常用

    新写的proguard代码混淆的文档 大家可以看看

    最好用的JAVA代码混淆工具proguard-7.0.0.zip

    Java代码混淆工具ProGuard是Java开发者在发布应用时常常使用的一种工具,它的主要目的是保护代码知识产权,防止未经授权的反编译和抄袭。在本压缩包文件"proguard-7.0.0.zip"中,包含了ProGuard的最新版本7.0.0,这...

    Android混淆 各个版本proguard文件

    从Android Gradle插件3.4.0版本开始,R8成为默认的代码混淆工具,它是Google推出的下一代代码混淆工具,比Proguard更快更强大,同时兼容Proguard的配置文件。 6. **混淆与 DexGuard:** DexGuard是Eclipse ADT...

    Android 反编译和代码混淆

    1. **ProGuard**: ProGuard是Android Studio内置的代码混淆工具,它支持优化、 Shrinking(减少代码大小)、Obfuscation(混淆)和Preverification(预验证)等功能。通过配置ProGuard规则,开发者可以自定义混淆...

    Android proguard.cfg

    在Android开发过程中,为了保护应用的安全性和优化代码大小,开发者通常会使用ProGuard工具进行代码混淆、优化和压缩。ProGuard是Android Studio内置的一个强大的工具,它可以将Java字节码转换为更难理解的形式,...

    Android添加Proguard混淆支持完整实例

    在Android开发过程中,为了保护应用的安全性和优化代码大小,开发者通常会使用Proguard工具进行代码混淆。Proguard是一个强大的Java类文件 shrinker、optimizer、 obfuscator 和 preverifier,它能够删除未使用的...

    ProGuard4.8使用proguard来保护我们的代码

    在使用ProGuard时,我们可能会遇到一些问题,如代码混淆后导致的运行时错误。ProGuard会在构建过程中生成日志文件,帮助我们排查问题。通过设置 `-printmapping` 和 `-verbose` 选项,我们可以获取详细的映射文件和...

    proguard程序混淆器

    ProGuard是一款强大的Java字节码处理工具,主要功能包括代码混淆、优化、压缩和预校验。它被广泛应用于Android应用开发中,用于保护源代码的安全性和减小程序体积,提高运行效率。在J2ME(Java 2 Micro Edition)...

    androidStudio代码混淆插件AndroidProguard

    Android Studio是一款广泛使用的Android应用程序开发集成环境,而代码混淆是其中的一个重要环节,尤其是在发布应用时,为了提高代码的安全性和减少体积,通常会使用到Proguard工具。AndroidProguard插件则是为...

Global site tag (gtag.js) - Google Analytics