android高度混淆,快速完成Android混淆之道

本文详细介绍了Android应用的混淆配置步骤,包括在build.gradle文件中启用混淆,使用Proguard插件自动生成混淆规则,并针对环信聊天库和GreenDao数据库框架的混淆规则进行了说明。在混淆过程中遇到了环信混淆错误和GreenDao集成问题,通过查阅资料找到了解决方案,成功混淆并保护了源码。混淆对于防止反编译至关重要,确保了应用的安全性。
摘要由CSDN通过智能技术生成

此篇文章将快速混淆 无需自己动手配置及混淆过程中出现的问题作为记录

说实话第一次看混淆 密密麻麻 自己都被混淆了 但静下心来 混淆so easy

目前的app 基本都是经过混淆了的,如果不混淆, 发布出去,别人一反编译 就可以直接看你的源码了那跟没有穿衣服有什么区别

ok 来说一下混淆吧:

首先在build中配置

buildTypes {

release {

minifyEnabled true

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

在查阅多片文章后 大多数都是要自己手写 ,有没有什么偷懒的办法呢。比如插件 没错就是 Proguard 插件

自动为你的 proguard-rules.pro文件添加混淆代码

前提是怎么使用呢 快速传送门:

http://www.cnblogs.com/common1140/p/5569934.html

添加代码完成后 插件几乎涵盖了所有的混淆的代码块

若项目没有用到混淆代码可删除

先来编译打包apk试试

6539a068a44b

H69(4AH7XJO80TVQWZLWM{K.png

-ignorewarnings #忽略

基本指令区代码

#-------------------------------------------基本不用动区域--------------------------------------------

#---------------------------------基本指令区----------------------------------

-optimizationpasses 5

-dontskipnonpubliclibraryclassmembers

-printmapping proguardMapping.txt

-optimizations !code/simplification/cast,!field/*,!class/merging/*

-keepattributes *Annotation*,InnerClasses

-keepattributes Signature

-keepattributes SourceFile,LineNumberTable

-verbose

-ignorewarnings

#----------------------------------------------------------------------------

关于环信混淆

按照官网的环信方法 打包后出错 有点坑

给出正确解决方案

#下面几行 是环信即时通信的代码混淆

#-keep class com.easemob.** {*;}

#-keep class org.jivesoftware.** {*;}

#-dontwarn com.easemob.**

-keep class com.hyphenate.** {*;}

-dontwarn com.hyphenate.**

-keep class com.superrtc.** {*;}

-keep class com.hyphenate.chat.** {*;}

-keep class org.jivesoftware.** {*;}

-keep class org.apache.** {*;}

#另外,demo中发送表情的时候使用到反射,需要keep SmileUtils,注意前面的包名,

#不要SmileUtils复制到自己的项目下keep的时候还是写的demo里的包名

-keep class com.hyphenate.chatuidemo.utils.SmileUtils {*;}

再来编译打包试试 出现以下错误

[DaoConfig init failure with greendao on Samsung Devices with Android 5.0]

由于项目中使用到了GreenDao 在集成过程出错

经过在http://stackoverflow.com/ 好一顿查找最终给出答案

代码如下

-keepclassmembers class * extends de.greenrobot.dao.AbstractDao {

public static java.lang.String TABLENAME;

}

-keep class **$Properties

一波三折 再试试 编译成功 ,大功告成。

使用反编译工具apktool 查看源码的顺序也乱了 总算把衣服穿好了

相信也有遇到类似问题 在此记录下混淆过程遇到几个问题 ,

喜欢的就点个赞吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值