`
dengbaoleng
  • 浏览: 1189753 次
文章分类
社区版块
存档分类
最新评论

Android项目源码混淆问题解决方法

 
阅读更多
Android项目源码混淆问题解决方法
考虑到代码安全,不让自己的劳动成功那么容易被别人盗取,今天忽然有了兴致对Android代码混淆做了浅浅的学习。在此记录下来,也希望能够对学习android的朋友们有所帮助,免得以后多走弯路。
由于我的Android项目版本是1.6,谷歌对2.2以上才加入了代码混淆支持。不过低版本也可以进行代码混淆,只是需要自己手工配置。
也挺简单的。不过在我配置过程中却遇到了很多问题。从网上找了很多资料也没有解决我的问题。通过不断摸索还是从国外网站上找到了解决办法。
解决方法也很简单,以下是我的解决方案。
1、SDK2.2以上的直接在default.properties文件中加上proguard.config=proguard.cfg即可
2、SDK2.2以下除了上面的设置外还需要做以下配置:
首先从其他SDK2.2以上项目中拷出proguard.cfg文件到项目中;
其次如果项目中没有其他 外部jar包引用的话只需在加一行-dontwarn去掉警告即可;
如果有外部jar包引用需要加上两行
-dontwarn
-dontskipnonpubliclibraryclassmembers
3、如果还是报错不能导出的话a、检查SDK路径时候包含空格;b、把-dontpreverify改为-dontoptimize

-------------------------------------------------------------以下为proguard.cfg文件内容-----------------------
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-dontwarn
-dontskipnonpubliclibraryclassmembers


-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService

-keepclasseswithmembernames class * {
native <methods>;
}

-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}

-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}

注明:QQ技术交流群:108614806 感兴趣的加一下。

分享到:
评论

相关推荐

    Android so加固混淆源码

    "Android so加固混淆源码"就是针对这一需求,提供了一种基础的混淆方法,帮助开发者增强SO库的安全性。 首先,我们需要理解Android的JNI(Java Native Interface)接口。JNI是Java平台标准的一部分,它允许Java代码...

    50个优秀Android项目源码

    这个压缩包包含了50个精心挑选的Android项目源码,为开发者提供了丰富的学习资源。以下是对这些源码涉及的知识点的详细解读: 1. **Activity与Fragment管理**:在Android应用中,Activity和Fragment是构建用户界面...

    android gson 混淆代码 问题

    在Android开发中,Gson库是一个非常常用的工具,...参考博文:[链接](https://ujs-lifazhu.iteye.com/blog/1750820)提供了更多关于在Android项目中处理Gson混淆问题的详细步骤和示例,建议详细阅读以获取更深入的理解。

    Android项目源码仿QQ空间源码.zip

    这个压缩包文件“Android项目源码仿QQ空间源码.zip”显然包含了一个Android应用程序的源代码,该程序设计用于模仿QQ空间的某些功能。QQ空间是中国非常流行的一款社交媒体平台,它集成了社交、博客、相册等多种功能。...

    千辛万苦收集的打包50个优秀Android项目源码

    每个项目都可能有其独特之处,通过深入研究,不仅可以了解各种编程技巧,还能洞察开发者的思考过程和解决问题的方法,这对于成长为一名资深的Android开发者至关重要。建议开发者耐心地逐一研究,将所学应用于实践中...

    Android应用源码电子书阅读器项目源码.zip

    《Android应用源码电子书阅读器项目源码》是一个典型的Android开发案例,它涉及到了许多Android平台上的核心技术和最佳实践。这个项目旨在帮助开发者深入理解Android应用开发的各个环节,包括UI设计、数据管理、网络...

    【android开发】混淆打包proguard模板

    ProGuard是一款强大的Java字节码混淆、优化、预校验和分析工具,它可以为我们的Android项目提供必要的保护,防止恶意逆向工程分析。本文将深入探讨"【android开发】混淆打包proguard模板"的相关知识点。 一、...

    微信Android版项目源码

    9. **性能优化**:微信项目源码会包含许多性能优化技巧,例如使用ProGuard进行代码混淆,减少APK大小,使用LeakCanary检测内存泄漏,以及利用Android Profiler进行性能分析。 10. **权限管理**:随着Android系统对...

    Android SO文件保护OLLVM混淆加固——混淆篇(二)

    2. 拥有Android项目的源码,特别是包含C/C++代码的部分。 3. 熟悉Android NDK(Native Development Kit)和交叉编译概念。 混淆过程通常分为以下几个步骤: 1. **预处理**:清理源代码,移除不必要的注释和调试...

    Android应用源码安全卫士源码

    "Android应用源码安全卫士源码"项目提供了一种方法来保护Android应用程序的安全,防止恶意篡改和逆向工程攻击。以下是对这个项目的详细解析: 首先,Android源码是开发者实现功能、优化性能的基础。理解源码能够...

    代码混淆—关于android被反编译的两种解决方案

    ProGuard是Android Studio内置的一个免费混淆器,它可以删除未使用的类、字段和方法,优化代码,以及混淆剩余的代码。启用ProGuard后,你需要在项目的`proguard-rules.pro`文件中配置规则,例如保留特定库或自定义...

    Android经典源码全集

    7. **生命周期管理**:Activity、Fragment的生命周期是Android开发的基础,源码会展示如何在不同生命周期方法中进行合适的操作,以及如何使用ViewModel和Lifecycle库来处理复杂的生命周期问题。 8. **动画效果**:...

    android源码混淆避免反编译定义.pdf

    本文将详细解释Android源码混淆的原理和应用。 首先,我们要明确混淆的目标:阻止他人通过反编译获取到源代码的可读性。由于Java程序的字节码(.class文件)很容易通过反编译工具(如JD-GUI或FernFlower)转换回...

    Android应用源码安卓在线txt小说阅读器项目.zip

    这个压缩包文件“Android应用源码安卓在线txt小说阅读器项目.zip”包含了开发一个基于Android平台的在线TXT小说阅读器应用的所有源代码。这个项目旨在为Android用户打造一个方便、流畅的阅读体验,特别是针对TXT格式...

    93个android项目源码61-80(apk+源码+图片+文档)-共五卷

    这些Android项目源码集合提供了61到80号的93个项目的完整资源,包括APK安装包、源代码、相关图片以及文档资料。这样的学习材料对于深入理解Android开发至关重要,因为它们涵盖了真实世界应用的各种场景和技术实现。...

    Android项目源码仿百大易商城

    【Android项目源码仿百大易商城】是一个实践性极强的Android开发案例,它旨在模仿知名的电商应用“百大易商城”的功能和界面设计,为Android开发者提供了一个学习和研究移动电商应用开发的平台。这个项目源码涵盖了...

    Android代码混淆配置

    在Android开发中,代码混淆是一项重要的安全措施,用于保护应用源码不被轻易逆向工程解析。本篇文章将深入探讨Android代码混淆配置的细节,帮助开发者理解如何有效地使用这一技术。 混淆是通过重命名类、方法和变量...

    android2.3 eclipse ant混淆

    本文将深入探讨“android2.3 eclipse ant混淆”这一主题,结合标签“源码”和“工具”,我们将关注如何在Android 2.3版本中,使用Eclipse集成开发环境以及Ant构建工具进行Proguard混淆。 首先,让我们了解混淆的...

    50个优秀Android项目源码(第一部分安卓源码)

    这些优秀的Android项目源码是学习和提升Android开发技能的宝贵资源。通过研究这些源码,开发者可以深入了解Android应用的设计模式、架构原则以及最佳实践。以下是一些关键知识点的概述: 1. **设计模式**:在这些...

    几个比较好的Android项目源码

    "几个比较好的Android项目源码"这个资源可能包含了多个优秀的Android应用的源代码,这对于开发者来说是一份宝贵的参考资料。下面,我们将深入探讨这些源码中可能包含的关键知识点。 1. **MVC/MVVM架构模式**:在...

Global site tag (gtag.js) - Google Analytics