android studio...混淆打包全揭秘
前言,当前android studio使用的版本较新,低版本的如果有差异,或者问题,欢迎拍砖!
1、修改配置文件

找到配置文件,build.gradle,修改如下。
signingConfigs {
release {
// 下面各值的意思将在后续进行讲解
storeFile file('release.keystore')
storePassword "123456"
keyAlias "androiddebugkey"
keyPassword "123456"
}
debug {
storeFile file('release.keystore')
storePassword "123456"
keyAlias "androiddebugkey"
keyPassword "123456"
}
}
buildTypes {
release {
minifyEnabled true // 设置代码进行混淆
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release // 签名配置
}
}
以前版本中。
a> 我们使用的是runProguard不过现在是使用minifyEnabled了。设置为true就是进行混淆。
b> proguradFiles 指定配置混淆项目的文件,可以看到使用的是progurad-rules.pro。这是我们后续配置排除混淆和运行环境会用到的。
2、创建KeyStore文件

进入此文件下,我们可以看到我们已经有的*.keysotre文件。

我这里已经有了一个debug.keystore文件了,不过我暂时用不着,也不记得密码啥子的了。
所以我们重新生成一个,也可以删除原有内容,然后重新生成一个文件。

当然,我们要先进入.android文件夹下面才能操作。运行cmd => 输入:cd .android =>再输入我们的命令
keytool -genkey -v -keystore release.keystore -alias androiddebugkey -keyalg RSA -validity 10000
完成后续的生成这样一个release.keystore文件我们就生成了。生成的文件,我们需要拷贝到和上面的配置(build.gradle),同目录下即可。
好了,下面就再次运行程序就已经加密了。不过我们也要配置后续的环境。
3、生成重新生成代码,反编译后可以查看文件已经加密了
progurad-rules.pro
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
添加如下内容。这样完整的混淆后的文件我们就可以使用了。
注:如果你使用了第三方的 jar.又不需要混淆,或者已经混淆为了避免出问题。你可以在progurad-rules.pro文件中加上下面内容。
-dontwarn net.youmi.android.**
-keep class net.youmi.android.** {
*;
}
这里使用了有米举例。。。
4、参考网页:
http://blog.csdn.net/zhaoxiao2008/article/details/7443020 debug.keystore文件不存在解决办法
http://blog.csdn.net/hudashi/article/details/9016805 android混淆打包
http://www.bkjia.com/Androidjc/924623.html 快速掌握 Android Studio 中 Gradle 的使用方法
http://www.cnblogs.com/youxilua/archive/2013/05/20/3087935.html 用Gradle 构建你的android程序
欢迎拍砖哈!
android studio...混淆打包全揭秘的更多相关文章
- Android项目实战(二十五):Android studio 混淆+打包+验证是否成功
前言: 单挑Android项目,最近即时通讯用到环信,集成sdk的时候 官方有一句 在 ProGuard 文件中加入以下 keep. -keep class com.hyphenate.** {*;} ...
- Android studio 混淆打包问题
参考 : Android Studio代码混淆设置以及上传mapping文件 AndroidStudio 混淆打包 在app 目录下 proguard-rules.pro中加入 通用 混淆 #指定代 ...
- Android studio 混淆打包安装后报错NullPointerException int java.util.List.size()
菜鸟的我,尝试混淆打包app...打包之前没有什么问题,混淆打包之后遇到各种问题.首先,感谢原博主的分享.解决了我的问题.谢谢. 原文地址:http://blog.csdn.net/tou_star/ ...
- Android Studio混淆打包
1.apk混淆打包 如果要对apk进行混淆,你要先告知gradle这个app需要混淆,并告知其混淆规则. 告知gradle需要混淆的代码 在Project/app/build.gradle中把mini ...
- Android studio 混淆打包
AndroidStudio中的项目可以用compile的形式引入github上的开源项目,可以引用module,而不一定都要用libs文件夹中添加jar包的形式. 在最终realease打包时,混淆的 ...
- Android studio混淆
看了一篇关于Android studio混淆的文章http://blog.csdn.net/qq_23547831/article/details/51581491,感觉有必要总结一个简单的混淆版本设 ...
- Android studio 使用心得(四)—android studio 多渠道打包(二)
Android studio 使用心得(四)—android studio 多渠道打包 这篇文章讲了一种打包方式.是直接在android studio 里面可视化操作,结合配置文件.我个人觉得严格上来 ...
- Android studio 自定义打包apk名
Android Studio打包应用默认生成的apk名称是:app-release.apk .如果我们要让生成的apk名跟我们版本包名有联系的话,那我们就要自定义生成的apk名了 需要在build.g ...
- [Android Studio] Android studio 多渠道打包(超简洁版)
[Android Studio] Android studio 多渠道打包(超简洁版) 转载:http://xuyazhou.com/archives/461 http://relex.me/usin ...
随机推荐
- jqPlot插件绘制柱状图
每天都在这里看别人写的东西,确发现自己好久没写文章了,可能是因为确实很忙,或许这也是在给自己找的一种借口. 不过这也是我人生中加入得第一个创业公司,来到这里才知道创业公司其实真的很辛苦,产品的萌芽才开 ...
- Solved: Qt Library LNK 2001 staticMetaObject error
在链接Qt的库,比如QtGui4.lib,我这里是在链接QtSolutions_PropertyBrowser-head.lib的时候出现的链接错误.大概是说一个"XXXX::s ...
- timer.scheduleAtFixedRate和timer.schedule的实验
基础代码: Calendar currentTime = Calendar.getInstance(); currentTime.setTime(new Date()); int currentH ...
- solr集成mmseg4j分词
solr集成mmseg4j分词 mmseg4j https://code.google.com/p/mmseg4j/ https://github.com/chenlb/mmseg4j-solr 作者 ...
- 查看kernel log命令
adb shell "cat /dev/kmsg | grep -Ei "gesture""
- 利用decorator和descriptor进行数据缓存
class cached_property(object): def __init__(self, func, name=None, doc=None): self.__name__ = name o ...
- 图文详解远程部署ASP.NET MVC 5项目
话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手 ...
- memcpy 和直接赋值的性能差异
不废话,看代码: #include <time.h> #include <stdint.h> #include <iostream> #define ARR_LEN ...
- zepto - toggleClass
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 【原创】14. MYSQL++之SSQLS(原理解析)
从之前所介绍的SSQLS的介绍中我们可以感受到,SSQLS的精髓应该在sql_create_#这个宏,他所创建出来的这个结构体将会是突破的关键,所以我将会从以下顺序入手. 1. sql_create_ ...