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

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真实项目源码分享

    本应用为娱乐类应用,汇集了各种笑话...应用内容实时更新,有源码你可以学到项目漂亮框架,如何从网上把数据,代码混淆等一系列知识。你值得拥有。blog地址:http://blog.csdn.net/u012151933/article/details/41349113

    开源bbs源码java-Android-ProGuard:Android分享:代码混淆那些事

    它可以混淆Android项目里面的java代码,对的,你没看错,仅仅是java代码。它是无法混淆Native代码,资源文件drawable、xml等。 ProGuard作用 压缩: 移除无效的类、属性、方法等 优化: 优化字节码,并删除未使用的...

    java源代码混淆器proguard4.8 + 安卓源码混淆配置文件(原创)

    压缩包根目录下有我修改的安卓JAVA项目混淆配置文件,proguard自带的混淆配置文件在SAMPLE目录下,但混淆后运行经常报错,因此根据查阅网上资料做了修改,测试通过。可以作为个性化混淆配置的基础版

    JAVA上百实例源码以及开源项目源代码

    Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来...

    Android插件框架Android-Plugin-Framework.zip

    此项目是Android插件框架完整源码以及实例。用来开发Android插件APK,并通过动态加载的方式在宿主程序中运行。 若插件APK是完全独立的APK,那么插件apk也可独立安装运行。 若插件APK不是完全独立的apk,比如...

    android手机安全卫士

    1.整体项目采用MVC框架,是对android知识点的综合应用,用到的技术有 (activity,service,broadcast,content provider,Notification , 数据库,自定义title,自定义控件,自定义toast,widget,aidl进程间通讯, javascript和...

    Dashy Worm 短跑蠕虫Unity多点触控游戏项目源码模版C#

    Dashy Worm 短跑蠕虫Unity多点触控游戏项目源码模版C# 支持Unity版本5.5.0f3及以上 描述 Dashy Worm 是一款有趣、令人上瘾的游戏,具有可爱的图形,可以让玩家玩上几个小时。游戏的目标非常简单:控制你的蠕虫通过在...

    pinyin4j-2.5.0.jar

    网上下载的pinyin4j-2.5.0的jar包引入项目中,但是打包时出现了烦人的错误警告,如:com.hp.hpl.sparta.Node$1...但是没用,究其原因是因为jar包中有Android不能识别的类,后来自己找源码打包。 最后奉上jar包给各位。

    Android代码-DualSimInfo

    3、集成方式:直接倒入源码或者使用gradle中的打包任务打包成jar导入项目中即可。 4、能够通过本工具获取到双sim卡的imei、imsi、simState、operator、subId、slotId(simId)、默认上网卡等信息。 5、在6.0以上版本...

    Android代码-dexknife-wj

    使用方法可以参见上述的项目,本插件略微有些改动。详情见说明或者demo或者源码 更新说明 1.1.1 1.更新加密方式,加固之后压缩体积大幅度缩小,转移到这个版本请更新jiagu.zip。 2.添加自动打包成jiagu.zip的

    AndroidModulePattern:Android项目组件化示例代码,支持Fragment和View

    Android项目组件化示例代码 Android组件化方案: Android组件化之终极方案: 现在的 AndroidModulePattern 使用 阿里ARouter作为路由; Android组件化方案已经支持 Fragment组件化,使用方法请下载Demo查看; 本项目...

    Android国际化文本资源文件处理

    1,读取项目中的所有strings.xml文件并导出为excel得到excel1。 2,可以将同样结构的excel2中的内容同步到excel1。 3,将所有excel1中的内容以自行配置(StringsToExcel.java)的文件夹(如"values-ko-rKR", "values-ja...

    JAVA上百实例源码以及开源项目

    此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这...

    android-volley-master:volley原始包-源码包

    请注意,该项目已弃用,不再维护,请使用jCenter的正式版本。 compile ' com.android.volley:volley:1.0.0 ' 介绍 这是的非官方镜像(带有一些小错误修正)。 Gradle compile ' ...

    Zygisk-Il2CppDumper-master.zip

    Zygisk版Il2CppDumper,在游戏运行时dump il2cpp数据,可以绕过保护,加密以及混淆。如何食用1.安装Magisk v24以上版本并开启Zygisk2.生成模块 1) GitHub Actions a.Fork这个项目 b.在你fork的项目中选择Actions选项...

    java8源码-MinimalistWeather:Android平台上一款开源天气App

    源码 MinimalistWeather MinimalistWeather 是 Android 平台上一款开源天气 App ,目前还在开发中。项目基于 MVP 架构,采用各主流开源库实现。开发此项目主要是为展示各种开源库的使用方式以及 Android 项目的设计...

    Android代码-EasyRouter

    通常看来,我要理解ARouter,就要去读ARouter的源码,这当然是不错的方法,但需要花费很多的时间去理解源码,而这个项目能给你的好处是一步步有条理的指导你如何去设计路由框架、一些技术点的作用及为什么要用这些...

    Android-APK加固dex加密解密

    现在随意在应用市场下载一个 APK 文件然后反编译,95% 以上基本上都是经过混淆,加密,或第三方加固(第三方加固也是这个原理),那么今天我们就对 Dex 来进行加密解密。让反编译无法正常阅读项目源码。

    Android-Batch-Pack:Android-Batch-Pack可以每次批量打包和修改umeng的频道标签

    本项目是方法1用ant实现的打包,推荐使用方法3,方法3无需签名,不用编译源码,速度快。 Android-Batch-Pack 的介绍和使用说明 Android-Batch-Pack 是实现批量打包apk的工具,适用于包含了第三方library project的...

    关于Android Studio封装SDK的那些事儿

    前言 首先SDK是提供给别人调用的工具。所以常见的SDK都是以jar包,so库,aar包等方式导入APP项目中。然后提供一些公开的API供接入方调用。...新建Android项目,然后修改app下的build.gradle 将 apply

Global site tag (gtag.js) - Google Analytics