美文网首页
快速完成Android混淆之道

快速完成Android混淆之道

作者: G米 | 来源:发表于2017-03-14 17:25 被阅读587次

此篇文章将快速混淆 无需自己动手配置及混淆过程中出现的问题作为记录
说实话第一次看混淆 密密麻麻 自己都被混淆了 但静下心来 混淆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试试

H69(4AH7XJO80TVQWZLWM{K.png

仔细查看 已经给出了参考链接
https://www.guardsquare.com/en/proguard/manual/troubleshooting#unresolvedlibraryclassmember
试图忽略警告
解决方案:
在proguard-rules.pro文件中添加

-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/ 好一顿查找最终给出答案

![JNF38]G(GK_K8@3G%(6Q5KV.png](https://img.haomeiwen.com/i1820728/da63a25415ac77fc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

代码如下

-keepclassmembers class * extends de.greenrobot.dao.AbstractDao {
    public static java.lang.String TABLENAME;
}
-keep class **$Properties

参考:http://stackoverflow.com/questions/34216163/daoconfig-init-failure-with-greendao-on-samsung-devices-with-Android-5-0

一波三折 再试试 编译成功 ,大功告成。
使用反编译工具apktool 查看源码的顺序也乱了 总算把衣服穿好了
相信也有遇到类似问题 在此记录下混淆过程遇到几个问题 ,
喜欢的就点个赞吧

相关文章

  • 快速完成Android混淆之道

    此篇文章将快速混淆 无需自己动手配置及混淆过程中出现的问题作为记录说实话第一次看混淆 密密麻麻 自己都被混淆了 但...

  • Android之快速混淆

    Android开发的都应该知道混淆,这是app上线前必须要走的流程, 混淆的重要性本文就不多说了,下面直接贴快速混...

  • ProGuard详解

    Android分享:代码混淆那些事Android代码混淆之混淆规则Android-Dev-Favorites An...

  • Android代码混淆

    待整理。。。 参考: Android混淆从入门到精通 Android代码混淆之混淆规则 代码混淆规则配置文件:pr...

  • Android快速搞定代码混淆

    ProGuard manual https://www.guardsquare.com/en/proguard/m...

  • 写给Android 混淆小白的快速混淆方法

    为啥子要混淆 简单来说,Android 进行ProGuard,可以起到压缩,混淆,预检,优化的功能,虽然不能说更安...

  • Android 混淆相关

    Android 混淆原则 混淆 ProGuard常用语法 混淆基本指令

  • 打包Apk

    5分钟搞定android混淆 我的Android混淆(Proguard文件)是怎么写的 【Android Stud...

  • 关于Android混淆的一些经验

    一些关于混淆的好文章 Android混淆从入门到精通 写给Android开发者的混淆使用手册 读懂 Android...

  • 美团Android资源混淆保护实践

    第164期:美团Android资源混淆保护实践 Android开发 美团Android资源混淆保护实践 我们往往忽...

网友评论

      本文标题:快速完成Android混淆之道

      本文链接:https://www.haomeiwen.com/subject/qejhnttx.html