前言,当前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...混淆打包全揭秘的更多相关文章

  1. Android项目实战(二十五):Android studio 混淆+打包+验证是否成功

    前言: 单挑Android项目,最近即时通讯用到环信,集成sdk的时候 官方有一句 在 ProGuard 文件中加入以下 keep. -keep class com.hyphenate.** {*;} ...

  2. Android studio 混淆打包问题

    参考 : Android Studio代码混淆设置以及上传mapping文件 AndroidStudio 混淆打包 在app 目录下  proguard-rules.pro中加入 通用 混淆 #指定代 ...

  3. Android studio 混淆打包安装后报错NullPointerException int java.util.List.size()

    菜鸟的我,尝试混淆打包app...打包之前没有什么问题,混淆打包之后遇到各种问题.首先,感谢原博主的分享.解决了我的问题.谢谢. 原文地址:http://blog.csdn.net/tou_star/ ...

  4. Android Studio混淆打包

    1.apk混淆打包 如果要对apk进行混淆,你要先告知gradle这个app需要混淆,并告知其混淆规则. 告知gradle需要混淆的代码 在Project/app/build.gradle中把mini ...

  5. Android studio 混淆打包

    AndroidStudio中的项目可以用compile的形式引入github上的开源项目,可以引用module,而不一定都要用libs文件夹中添加jar包的形式. 在最终realease打包时,混淆的 ...

  6. Android studio混淆

    看了一篇关于Android studio混淆的文章http://blog.csdn.net/qq_23547831/article/details/51581491,感觉有必要总结一个简单的混淆版本设 ...

  7. Android studio 使用心得(四)—android studio 多渠道打包(二)

    Android studio 使用心得(四)—android studio 多渠道打包 这篇文章讲了一种打包方式.是直接在android studio 里面可视化操作,结合配置文件.我个人觉得严格上来 ...

  8. Android studio 自定义打包apk名

    Android Studio打包应用默认生成的apk名称是:app-release.apk .如果我们要让生成的apk名跟我们版本包名有联系的话,那我们就要自定义生成的apk名了 需要在build.g ...

  9. [Android Studio] Android studio 多渠道打包(超简洁版)

    [Android Studio] Android studio 多渠道打包(超简洁版) 转载:http://xuyazhou.com/archives/461 http://relex.me/usin ...

随机推荐

  1. Nagios 安装配置

    ##Debian 6 安装server # apt-get install nagios* 一路设置好各种密码,成功后访问 http://ip/nagios3 既可,默认用户*nagiosadmin* ...

  2. Hadoop-Drill深度剖析

    1.概述 在<Hadoop - 实时查询Drill>一文当中,笔者给大家介绍如何去处理实时查询这样的业务场景,也是简略的提了一下如何去实时查询HDFS,然起相关细节并未说明.今天给大家细说 ...

  3. [ITSEC]信息安全·Web安全培训第一期客户端安全之UBB系列

    缩略图: 引文: 所谓UBB代码,是指论坛中的替代HTML代码的安全代码.ubb发帖编辑器 这种代码使用正则表达式来进行匹配,不同的论坛所使用的UBB代码很可能不同,不能一概而论.UBB代码的出现,使 ...

  4. MSIL 教程(三):类和异常处理(转)

    转自:http://www.cnblogs.com/Yahong111/archive/2007/08/16/857771.html 续上文[翻译]MSIL 教程(二):数组.分支.循环.使用不安全代 ...

  5. GET到新技能,SharpCEF,C#和JS的互相调用

    winform程序内嵌谷歌浏览器,使用大名鼎鼎的“SharpCEF”.这里科普一下: CEF是什么 CEF是Chromium Embedded Framework的缩写,是个基于Google Chro ...

  6. BaaS服务的定义、发展以及未来

    BaaS(Backend as a Service)是一种新型的云服务,旨在为移动和Web应用提供后端云服务,包括云端数据/文件存储.账户管理.消息推送.社交媒体整合等.BaaS是垂直领域的云服务,随 ...

  7. 30分钟入门Java8之默认方法和静态接口方法

    30分钟入门Java8之默认方法和静态接口方法 前言 上一篇文章30分钟入门Java8之lambda表达式,我们学习了lambda表达式.现在继续Java8新语言特性的学习,今天,我们要学习的是默认方 ...

  8. CSS基础汇总

    1. css的出现是为了是内容和表现分离.分为三种: 内联:不推荐 嵌入:没有利用浏览器缓存机制. 外联: 2. css优先级:①id优先级高于class②后面的样式覆盖前面的③指定的高于继承④行内样 ...

  9. Mesh Wifi

    best idea ever Submitted by ozzy (not verified) on Mon, 2009-09-21 09:39. I thought of doing this on ...

  10. ADO.NET 3.5高级编程:应用LINQ&Entity Framework

    http://item.jd.com/10080604.html 第1部分 ADO.NET3.5概览第1章 使用ADO.NET3.5提供的新方法访问数据1.1 语言集成查询LINO1.1.1 LIQ  ...