android 混淆 内部接口,AS下的proguard使用心得_weixin_39826089的博客-程序员宅基地

技术标签: android 混淆 内部接口  

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

最近项目使用proguard的一些心得记录一下。AS新建时默认就是用proguard做代码混淆

新建默认就这样的1

2

3

4

5

6

7buildTypes {

release {

minifyEnabled false

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

}

}

minifyEnabled true表示混淆

proguard-android.txt是sdk下groguard默认的文件,具体地址在:android-sdk/tools/proguard/proguard-android.txt

proguard-rules.pro就是AS下需要配制文件,默认在项目app根目录下

当修改minifyEnabled true时,必须配制signingConfigs打包key文件,否则会报错,配制如下:1

2

3

4

5

6

7

8

9

10

11

12signingConfigs {

debug {

storeFile file("C:/Users/51/.android/debug.keystore")

}

release{

keyAlias 'xxxx'

keyPassword '123456'

storeFile file('E:/key/xxxx.keystore')

storePassword 'xxxxx'

}

}

debug测试时对应key路径,release正常打包需要的

好的,下面讲下proguard-rules.pro主要配制及我遇到问题,这个网上比较多1-keep public class * extends android.app.Service

keep 保持不变意思,如上面继承service类都不需要混淆1

2

3

4# For native methods, see http://proguard.sourceforge.net/manual/examples.html#native

-keepclasseswithmembernames class * {

native ;

}

保持enum类不被混淆1

2

3

4

5# For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations

-keepclassmembers enum * {

public static **[] values();

public static ** valueOf(java.lang.String);

}

保持内部类不被混淆1

2

3

4

5

6

7

8

9

10#-keep class **$* { *;}

-keepnames class com.zcm.mobile.money.*$* {

public ;

public ;

}

-keepnames class com.zcm.mobile.money.fragment.*$* {

public ;

public ;

}

json类的包或者orm类的包可能会报错,解析时1

2

3-keepattributes Exceptions,InnerClasses,Signature

-keepattributes *Annotation*

-keepattributes SourceFile,LineNumberTable

保持内部接口不被混淆1

2

3

4

5

6-keep class com.android.app.** implements com.android.app.Platform$ICallback{*;}

-keep class android.support.v4.app.**{ *; }

-keep interface android.support.v4.app.**{ *; }

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

-keep interface com.actionbarsherlock.**{ *; }

第三方如universal-image-loader1

2

3

4

5

6

7

8

9-keep class com.nostra13.** {*;}

#-libraryjars libs/gson-2.3.jar

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

-dontwarn com.google.**

#-libraryjars libs/fastjson-1.2.5.jar

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

-dontwarn com.alibaba.**

#也有jpush这个一般官网都有说明,它们官网已经混淆过的,所以我们不需要再混淆了否则就报错1

2

3#-libraryjars libs/jpush-sdk-release1.7.5.jar

-keep class cn.jpush.** { *; }

-dontwarn cn.jpush.**

也有打包时会报一些奇怪错误如

imgprogurad-q-1.png

自己写的库,[email protected],不需要libs吧都去掉

否则有些代码被混淆了找不到references

ok,混淆成功后代码就这样的,所有方法,参数都用a,b,c表示

imgprogurad-q-4.png

声明

由于互联网数据的分享性,如果我发表的文章,来源于您的原创文章,且我没有注明,[email protected]

欢迎转载,但请注明文章原始出处。

作者:foobean

出处:http://foobean.com/

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39826089/article/details/117748527

智能推荐

R作图之ggplot2包_geomfunction_翡喃的博客-程序员宅基地

ggplot2使用的基本框架 下面逐一介绍 1.data data是我们需要可视化的数据,在学习中,我们经常使用R语言自带的diamonds和flights数据源。在data框的范围我们也可以使用mapping(映射),在data框范围使用的属性在后面镶嵌的图层中为默认属性。exampleggplot(data=mpg,mapping=aes(y=hwy,x=class))+ ...

HARMONYOS中文谐音,HarmonyOS入门宝典 2.0 中文pdf高清版_数数科技的博客-程序员宅基地

HarmonyOS入门宝典是一套由 HarmonyOS 技术社区根据 HarmonyOS 官方相关资料进行整理的教程,HarmonyOS 系统,分布式数据管理,技术架构,应用基础知识,应用权限管理,开发指导,语法规范,调用等等。这里也将宝典的主要篇目介绍如下。入门:本章节包含了对 HarmonyOS 的基础概述,开发基础知识,以及简单的入门讲解,可以让大家对鸿蒙进行基础的了解。开发:本章节分别对 ...

js window.onresize的使用方法_橙子_tong的博客-程序员宅基地

onresize事件会在窗口或框架被调整大小时发生。语法In HTML:<elementonresize="SomeJavaScriptCode">JavaScript 中:window.onresize=function(){SomeJavaScriptCode};jQuery中:$(window).resize(function(){ //code});详情可查看:https://www.runoob.com/jsref/event-...

HTML笔记及案例_hgftyh的博客-程序员宅基地

一 HTML简介1.HTML是什么?HTML:HyperTest Markup Language超文本标记(标签)语言有多种标签组成,用来制作网页,告浏览器该如何显示页面2.HTML语言的作用?制作网页,控制网页内容的显示插入图片.音乐。视频。动画等多媒体通过连接检索信息使用表单获取用户信息,实现交互3.版本W3c:World wide web consortium万维网联...

keras模型重写成pb文件_叽吧叽的博客-程序员宅基地

from keras import bacend as ksess = K.get_session() frozen_graph_def = tf.graph_util.convert_variables_to_constants(sess,sess.graph_def,output_node_names=["output"])tf的node的name通过[tensor.name...

搜索引擎接口测试-大数据统计测试_搜索接口怎么测_疯批美人东方陨的博客-程序员宅基地

搜索引擎接口测试。业务接口返回6000-9000个字段搜索接口查了7个搜索链路业务接口传参加上调试信息后的接口返回43846个字段测试需求:选取某一天人物的query,标识出同时出type=12及type=3的query,计算同时出现的概率,另外把同时出的query给出来,分析使用query选取:人物top1000 跟随机1000QA测试设计:去FBI捞取top1000个人物query+任意1000个人物query。读取引擎接口,判断response返回JSONObject.

随便推点

给ubuntu系统安装交叉编译arm-linux-gcc_大白菜和小白菜的博客-程序员宅基地

1)在www.kernel.org上下载:arm-linux-gnueabi-5.4.0.tar.xz2)把arm-linux-gnueabi-5.4.0.tar.xz存放 /mnt/hgfs。。。。,然后在拷贝到家目录: 命令:cp arm-linux-gnueabi-5.4.0.tar.xz ~ 3)自己进入家目录,进行解压arm-linux-gnueabi-5.4.0.tar.xz,注意:要解压到根目录/ arm-linux-gnueabi-5.4.0.tar.xz解...

5月6 查询与多条件查询_weixin_30362233的博客-程序员宅基地

封装类主要是为了以后调用起来较为方便:类名叫做DBDA.class.php在www下的test0506下,以后引用是特别要注意,特别是不在同一级下的引用。一:只有一个条件的查询类:DBDA.class.php<?phpclass DBDA{ public $host = "localhost";//数据库地址 public $uid = "root";//...

Linux-(在写CPU的过程中遇到的)_Vuko-wxh的博客-程序员宅基地

最近在学习自己制作CPU 需要进行再Linux系统上进行GNU工具的使用,汇总了一些自己遇到的问题和用到的指令,大部分是在别处看到的,贴贴剪剪,希望对大家有帮助。安装虚拟机大家进行百度吧,我不建议大家装个双系统,我觉得没有虚拟机好用。装机的话:推荐软件安装管家公众号进行安装设置共享文件夹:1、The command could not be located because '/us...

java中数组拼接成字符串中间用逗号隔开_字符串数组拼接成逗号隔开_小四是个程序员的博客-程序员宅基地

使用到期之后![在这里插入代码片](https://img-blog.csdnimg.cn/20200317150457219.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjMyMjY0OA==,size_16,...

中国AVS超高清编码标准体系与生态建设(附部分视频)_LiveVideoStack_的博客-程序员宅基地

随着5G时代的到来,视频压缩方面面临更大的挑战,另外用户对于视频需求的提高使得在视频压缩方面需要做更多的提升。本文来自北京大学的王荣刚在LiveVideoStackCon 2019深圳站...

【STM32】R05D电控红外协议的美的空调遥控器_美的空调红外编码_人面兽心Edison的博客-程序员宅基地

目录一、设计思路一、R05D红外协议原理1.协议手册理解2.验证时序(重点)二、硬件实现1.需要的材料2.对发射模块电路进行修改3.STM32 GPIO选择三、代码实现1.载波38kHZ实现2.R05D时序实现3.调用函数并验证一、设计思路通常红外遥控采用NEC传输协议,而美的空调采用的是R05D红外协议(应该是自己设计的协议),因此用一般红外编码发射模块无法直接对空调进行控制。解决方法:获取R05D协议手册 + 用红外接收管对原有遥控器红外接收进行波形分析。一、R05D红外协议原理R05D电控功

推荐文章

热门文章

相关标签