首先要注意一点,Android Studio中把proguard.txt已经命名为proguard-rules.pro,由此可见,採用Gradle打包,混淆规则文件的名称是不重要的。能够自己随便命名。

混淆规则跟原来一样。没有变化。不懂能够搜一下别人怎么写的。

增加签名文件。在Build->Generate Signed APK…

就会看到以下的弹出框

假设没有签名文件就创建新的签名文件,假设已经有签名文件,那么选择签名文件的位置,并填写好password就能够点Next了。

创建签名文件的方式跟老版本号(Eclipse+ADT)的签名方式一样,这里就不再多说了。

你会发现AS生成的签名文件是jks后缀名的,跟原来的能够说tore不一样。其实。签名文件也并非受文件名称影响。

Next后会弹出以下的框

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

在Buid Type中默认有两个选项,故名思议,我们寻经常使用的是debug,正式打包,我们须要用release。选中后点Finish就能够打包了。可是这样打包并没有做代码混淆。以下我们继续增加代码混淆。

选中项目的Open Module Setting,然后我们会看到以下这个框

我们选中app->Signing 点击+号,新增一般配置,这个配置就是刚刚须要手动输入和导入签名文件的操作,我们能够在这个config(能够随便命名)填好签名password和签名文件的路径。

然后我们再点到Build Types选卡

这个就是我们的正式发包的须要配置的内容。其它选默认。须要改两个地方:Signing Config,选择我们刚刚设置好的签名配置;在Proguard File这一栏选中项目中的proguard-rules.pro的绝对路径,也就是项目根文件夹下的app/proguard-rules.pro,然后点击ok。

Gradle会自己主动同步改动过的内容。

这个时候我们来看一下app文件夹下的build.gradle的内容。你会发现跟我们刚才配置的内容是一模一样的。

以下我能够打包正式签名的apk包。

有三种方式:

1.      在Build-> Generate Signed APK… 直接下一步下面一步就能够打包了;

2.      在AS 提供的终端中输入gradlew release,或者外部的终端打开到项目的跟文件夹再输入gradlew release。但这个前提是已经在本机安装了gradle。而且配置了环境变量,不然终端是无法识别这种命令的。

3.      使用AS默认Gradle插件,在我们窗体的最右边能够找到Gradle(默认是最小化),打开它并点击项目名称再下一层,看到有一个Tasks->build。找到assembleRelease(批量打包)并双击,就自己主动打包。

正式签名包假设没有更改过文件夹默认是在app文件夹下或者是app/build/output/apk文件夹下,个人比較喜欢放在后面那个文件夹。

还要注意一点。改动打包的版本号信息,须要在build.gradle中改动以下红色的内容,跟manifest.xml一样

defaultConfig {

applicationId 'com.arjinmc.goddnessplan'

minSdkVersion 14

targetSdkVersion 22

versionCode 2

versionName '0.0.2'

signingConfig signingConfigs.config

}

Android Studio中使用Gradle打包的更多相关文章

  1. 如何在Android Studio中使用Gradle发布项目至Jcenter仓库

    简述 目前非常流行将开源库上传至Jcenter仓库中,使用起来非常方便且易于维护,特别是在Android Studio环境中,只需几步配置就可以轻松实现上传和发布. Library的转换和引用 博主的 ...

  2. Android Studio中由于gradle插件版本和gradle版本对应关系导致的编译失败的问题

    今天在Android Studio中导入新项目,import之后编译报错,报错信息基本都是和版本相关,查询gradle版本相关知识,了解到gradle插件版本和gradle版本有相应的匹配关系,对应如 ...

  3. 在 Android studio 中 配置Gradle 做到 “根据命令行提示符生成指定versionCode, versionName,指定apk的打包输出路径”

    需求: 1. 使用 Android studio ,使用 gradle 进行构建 2. 在实际开发中,我们需要使用jenkins进行打包.就需要配置我们的 gradle 脚本以支持参数化的方式. 3. ...

  4. 在 Android studio 中 配置Gradle 进行 “动态编译期间,指定 远程服务器地址 ,生成多个安装包”

    需求: 在产品开发中,经常需要发布各个版本,每个版本的服务器地址有不同的服务器地址.比如 开发服务器使用 192.168.1.232服务器, 测试服务器使用 192.168.1.245服务器, 正式上 ...

  5. Android(java)学习笔记126:Android Studio中build.gradle简介

    1.首先我们直接上代码介绍: // Top-level build file where you can add configuration options common to all sub-pro ...

  6. android studio 中的 gradle version

    刚开始接触AS,从geithub上download了好多项目,每一个都需要改动,对我这种新手来说,慢慢琢磨吧 问题一: 解决办法: 在build.gradle中,将gradle的版本改正如上图所示即可 ...

  7. 解决Android Studio中Refreshing gradle project时间过长的最简单方法

    Refreshing gradle project往往出现在Gradle出现更新,需要从墙外的网重新拖下来的前提下.具体可以查看以下文件:/path/to/project/gradle/wrapper ...

  8. Android(java)学习笔记66:Android Studio中build.gradle简介

    1.首先我们直接上代码介绍: // Top-level build file where you can add configuration options common to all sub-pro ...

  9. android studio中为gradle指定cmake版本

    Android Studio相当于是Intellij基础上写了一个AS插件,这个插件使用gradle作为构建系统,因此构建出现问题先考虑gradle的文档. gradle可以使用native buil ...

随机推荐

  1. [topcoder]SmartWordToy

    广度搜索BFS,要用Queue.还不是很熟,这道题帮助理清一些思绪了.其实这道题是求最短路径,所以BFS遇到第一个就可以返回了,所以后面有些现有大小和历史大小的判断可以省却. 过程中拿数组存step还 ...

  2. Android启动时间测试方法

    android apk启动时间可以通过下面的命令来完成测试,最终会生成一个mp4的视屏文件,通过播放录制好的视屏来统计app的启动时间精确到ms级别   例如:adb shell screenreco ...

  3. CMD命令窗口复制与粘贴

    cmd命令提示符窗口中快速复制粘贴的方法常规方法 在“命令提 示符”窗口的任意一处,点击右键,在弹出的快捷菜单中选择“标记”命令. 此时在窗口的左上角处闪烁着一个长方块状的光标,将鼠标移动到希望复制的 ...

  4. Nagios ’status.cgi‘文件权限许可和访问控制漏洞

    漏洞名称: Nagios ’status.cgi‘文件权限许可和访问控制漏洞 CNNVD编号: CNNVD-201307-013 发布时间: 2014-02-21 更新时间: 2014-02-21 危 ...

  5. -_-#【JS 优化】把 JS 放到底部

    一开始为以为Javascript脚本尽量放到页面底部加载,是指所有的JS脚本都要放到底部,后来才发现, 并不完全是这样,这里所指的脚本是指那些在加载过程中要执行的脚本,所以一般的处理办法还是页面头部引 ...

  6. java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.

    最近在学习RxJava 感觉很happy ,happy的同时遇到不少问题 没办法一点一点来 上张帅图先 在使用RxJava + Retrofit 的时候 有时候接口请求参数不规范 比如 {} @For ...

  7. [Tommas] SQL 中 WITH AS 的用法

    WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到: 下面的例子定义了一个 Temp 片段,Te ...

  8. web_reg_find()查询信息为变量

    Action(){char *str1;//=(char*)malloc(20);char str2[10]; web_url("toLoginPage", "URL={ ...

  9. C#索引器的作用及使用

    1. 作用: 可以使得类和实例能够像数组那样使用一样,又称为带参属性 2. 区分 (1)索引器与数组的比较: 索引器的索引值不受类型限制.用来访问数组的索引值一定是整数,而索引器可以是其他类型的索引值 ...

  10. 五指cms安装说明

    1.五指cms目录结构说明 |-- coreframe                   #框架目录 |   |-- app                     #模块(应用程序)目录 |    ...