代码混淆java proguard_Java简单混淆代码Proguard介绍【一】

混淆代码,可以加大别人反编译的难度,从而最大化的保护自己的代码安全。

本章节,只介绍 最简单的proguard混淆代码。

场景:我写了一个发短信的程序,回调给游戏一个发短信是否成功的参数,如果成功,游戏就给用户加道具。本意:只想暴露给游戏 doPay()接口,但不想让别人知道我内部的代码及发送短信的内容,所以我就要混淆我的代码,只保留doPay()接口不被混淆~

工程目录结构:

e67a732671574edbf7ed10a714ccd94a.png

PaymentForSms.java  中,有 doPay方法

public static void doPay(Context context,String uid,String productName,String productPrice,SmsResultCallback callback)

具体实现:

准备: Eclipse ,Ant包(网上随便一搜,一大堆,类似java jdk安装方法),android sdk自身带的 proguard.jar工具 + build.xml + progard.cfg

实现:

接下来,重点就是 build.xml 和 progard.cfg的编写了。。。代码中,有详细注释。如果不明白的,可以 百度一下,就非常清晰了...

build.xml

name="targetPro"

default="targetB" >

name="android-sdk"

value="D:\android-sdk-4.2" />

name="android-jar"

value="${android-sdk}/platforms/android-8/android.jar" />

name="targetB"

depends="targetA"

unless="philander" >

bootclasspath="${android-jar}"

destdir="E:/SDK_Test/build/classes"

encoding="GBK"

includeantruntime="on" >

basedir="E:/SDK_Test/build/classes"

destfile="source_sdk.jar" >

混淆代码 ...

proguard.cfg

#jar包所在地址

-injars temp.jar

#jar包输出地址

-outjars proguard_sdk.jar

#引用的库的jar,用于解析injars所指定的jar类

-libraryjars D:/android-sdk-4.2/tools/support/annotations.jar

-libraryjars libs/android-support-v4.jar

-libraryjars D:/android-sdk-4.2/platforms/android-8/android.jar

-optimizationpasses 7

#混淆时不会产生形形色色的类名

-dontusemixedcaseclassnames

#指定不去忽略非公共的库类

-dontskipnonpubliclibraryclasses

-verbose

-dontoptimize

#不预校验

-dontpreverify

#优化

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

#检查引用是否正确,如果在-libraryjars中定义了,无需在次声明

-dontwarn android.net.http.**

#取消打印日志

-assumenosideeffects class android.util.Log {

public static *** d(...);

public static *** v(...);

public static *** i(...);

}

#不需要混淆的类  1、暴露的接口     2、自定义的Callback  3、用到第三方库的时候

-keep public class com.rekoo.listener.SmsResultCallback {*;}

-keep public class com.rekoo.single.sms.PaymentForSms {*;}

-printmapping  proguard.map

混淆代码,就比较简单了~ build.xml右键-Run as - Ant build

刷新工程,工程目录下面,就生成了 proguard_sdk.jar 混淆jar包了。。打开看一下,就ok了。。。如有问题,请留言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值