Android studio gradle配置完整版
https://my.oschina.net/u/1471093/blog/539075

Android studio 自定义打包apk名 - petercao - 博客园
http://www.cnblogs.com/bluestorm/p/6228085.html

gradle升级更新,有些方法已经过时,在此重新更新一下gradle配置。上代码,先睹为快。

一、build.gradle文件

  1. apply plugin: 'com.android.application'
  2. //设置编译android项目的参数
  3. android {
  4. compileSdkVersion 22
  5. buildToolsVersion "22.0.1"
  6. defaultConfig {
  7. // applicationId "默认包名"
  8. minSdkVersion 9
  9. targetSdkVersion 22
  10. //versionCode 229
  11. //versionName "2.2.9"
  12. }
  13. /**
  14. *Android默认配置,建议不写,直接用系统默认的配置
  15. */
  16. sourceSets {
  17. main {
  18. manifest.srcFile 'AndroidManifest.xml'
  19. java.srcDirs = ['src']
  20. resources.srcDirs = ['src']
  21. aidl.srcDirs = ['src']
  22. renderscript.srcDirs = ['src']
  23. res.srcDirs = ['res']
  24. assets.srcDirs = ['assets']
  25. /**
  26. *如果.so文件跟Eclipse一样放在了libs文件夹下就需要加上这一行代码
  27. */
  28. jniLibs.srcDirs = ['libs']
  29. }
  30. //测试所在的路径,这里假设是tests文件夹,没有可以不写这一行
  31. instrumentTest.setRoot('tests')
  32. }
  33. /*** 签名设置*/
  34. signingConfigs {
  35. myConfig {
  36. storeFile file("F:\\123.keystore");
  37. keyAlias "123"
  38. keyPassword "123456"
  39. storePassword "123456"
  40. }
  41. }
  42. /**
  43. *调用本地aar文件
  44. */
  45. repositories {
  46. //mavenLocal()
  47. //mavenCentral()
  48. flatDir {
  49. dirs 'libs'
  50. }
  51. }
  52. /*** 渠道打包*/
  53. productFlavors {
  54. xxx {//渠道名
  55. applicationId "修改的包名"
  56. versionName "2.2.9"
  57. versionCode 229
  58. }
  59. xxx1 {//渠道名
  60. applicationId "修改的包名"
  61. versionName "2.2.9"
  62. versionCode 229
  63. }
  64. }
  65. /**
  66. * 替换AndroidManifest.xml的BaiduMobAd_CHANNEL_VALUE字符串为渠道名称格式
  67. * <meta-data
  68. * android:name="BaiduMobAd_CHANNEL"
  69. * android:value="${BaiduMobAd_CHANNEL_VALUE}" />
  70. */
  71. productFlavors.all { flavor ->
  72. flavor.manifestPlaceholders = [BaiduMobAd_CHANNEL_VALUE: name]
  73. }
  74. /**
  75. * 混淆设置
  76. */
  77. buildTypes {
  78. release {
  79. signingConfig signingConfigs.myConfig
  80. minifyEnabled true//是否混淆
  81. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  82. }
  83. debug {
  84. signingConfig signingConfigs.myConfig
  85. minifyEnabled true//是否混淆
  86. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  87. }
  88. }
  89. }
  90. dependencies {
  91. compile fileTree(include: ['*.jar'], dir: 'libs')
  92. compile 'com.android.support:appcompat-v7:22.2.1'
  93. compile(name: 'pulltorefresh', ext: 'aar')
  94. }

在此需要说明的是需要注意build文件里面方法的顺序。如果在在方法体中用到我们书写的方法的话,该方法必须放在用到的方法的后面。

二、.so文件的处理

(1)在此推翻以前我们写的那个so文件的引用,其实so文件的地址也可以通过下面的代码来配置:

  1. //Android默认配置
  2. sourceSets {
  3. main {
  4. manifest.srcFile 'AndroidManifest.xml'
  5. java.srcDirs = ['src']
  6. resources.srcDirs = ['src']
  7. aidl.srcDirs = ['src']
  8. renderscript.srcDirs = ['src']
  9. res.srcDirs = ['res']
  10. assets.srcDirs = ['assets']
  11. /**
  12. *如果.so文件跟Eclipse一样放在了libs文件夹下就需要加上这一行代码
  13. */
  14. jniLibs.srcDirs = ['libs']
  15. }
  16. //测试所在的路径,这里假设是tests文件夹,没有可以不写这一行
  17. instrumentTest.setRoot('tests')
  18. }

  (2)android studio的默认配置为:

1.在“src/main”目录中新建名为“jniLibs”的目录;

2.将so文件复制、粘贴到“jniLibs”目录内。

三、aar文件与jar文件

对于项目依赖 android library的话,就不是依赖一个jar,那么简单了,在这里需要使用gradle mulit project 机制。在过去,android library并没有一个很好的包管理方式,简单来说,在gradle出现以前,官方并没有一种用于管理android library 依赖包的方式,一般我们都是直接下载别人的android library project 源码进行集成,而对于第三方的android-maven-plugin 用的是apklib 格式。

而现在,官方终于推出一种android library的打包格式,扩展名为*.aar。前面提到,目前android gradle插件并不支持本地直接使用*.aar文件,不过,支持包管理库的引用方式,下面,我为大家说一下,怎么对android library 发布使用。

打包android library

对android library 进行打包直接在library项目下面使用gradle build 即可,然后,你就会在 build/outputs/aar 目录下看到两个*.aar文件,一个debug包用的,一个是release 下用的,看个人需求使用,这里我们用的是release 版本的 .aar 文件。

引用脚本跟前面讲的依赖库相似

  1. dependencies {
  2. compile(name: 'pulltorefresh', ext: 'aar')
  3. }

pulltorefresh为我们library生成aar文件的名字。关于library的创建和添加,在此不做赘述。

(1)aar与jar的区别

*.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有res中的文件。

*.aar:包含所有资源,class以及res资源文件全部包含

*.aar:有两种方式,分别为本地加载以及网络加载,由于网络加载涉及到发布到mavenCentral托管的问题这里不做讨论;在这里给大家说一种本地加载的方式,简单快捷。

这里演示的aar文件为:”pulltorefresh.aar“

aar需要拷贝到“libs”文件夹下,gradle配置为

  1. /**
  2. *调用本地aar文件
  3. */
  4. repositories {
  5. //mavenLocal()
  6. //mavenCentral()
  7. flatDir {
  8. dirs 'libs'
  9. }
  10. }
  11. dependencies {
  12. compile(name:'pulltorefresh', ext:'aar')
  13. }

  

四、打包

现在,终于到了最后一步,自动多渠道修改包名打包(听着就高大上【偷笑】)。现在自动打包也有两种方法。

(1)手动触发

跟普通打包一样,最后选择渠道时,按住“shift”点击全部选中,确定,你就可以关闭屏幕,下班了。第二天早晨来收获结果。

(2)代码自动运行
        点击studio面板上的“Terminal”或者“cmd”进入到当前工程的根目录下执行gradlew assembleRelease命令自动进行多渠道打包。还有一个类似的命令:gradlew assembleDebug想必通过名字,就能到猜测出。

注意:第一次执行打包命令的时候,会自动下载一些与打包相关的文件。

最后,打包完成的apk在哪呢?这也是我们最关注的问题。在当前Module的build->outputs->apk文件夹下。

大家也可以看一下,以前我关于对gradle的配置,在此附上地址:Android studio gradle配置android studio gradle 配置修改

另外:在开发Android应用时,通常情况下是通过USB数据线连接设备和计算机,但对于一些需要使用USB设备的应用,这种方法就碰到了麻烦,手机的USB接口已经和外接的USB设备连接,无法再连数据线,此时可以通过网络TCPIP的方法来进行。也就是然ADB 通过网络来连接设备,而无需USB数据线。

具体方法如下:

1. 使用USB数据线连接设备。

2. 在命令行输入adb tcpip 5555 ( 5555为端口号,可以自由指定)。

3. 断开 USB数据,此时可以连接你需要连接的|USB设备。

4. 再计算机命令行输入 adb connect <设备的IP地址>:5555

后面就可以使用ADB ,DDMS 来调试Android应用或显示Logcat 消息。

Android studio gradle配置完整版(转)的更多相关文章

  1. Android Studio Gradle配置工具开发

    by 蔡建良 2019-3-9 QQ: 304125648 Android Studio导入项目经常出现卡死的情况.针对Gradle更新配置的问题,网上已经有详细的方法,但也很烦索,步骤也很多. 因此 ...

  2. Android Studio gradle配置详解

    android gradle配置详解 AppExtension类及其属性 可能大部分人看到AppExtension类会感觉到非常的陌生,其实我们在app中的build.gradle中填写配置信息的时候 ...

  3. Android studio gradle配置!!!【转】

    转自:http://www.open-open.com/lib/view/open1415793464648.html Gradle 基本概念 首先我们学习几个gradle 的脚本语法,掌握了这几个语 ...

  4. Android studio gradle配置

    什么是Gradle? Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言. gr ...

  5. Android studio gradle 打包 那些事

    总结了一下 目前觉得比较好用的gradle 和一些打包 经验.放在这里. 首先说下 渠道号 这个概念,我们经常会统计我们的api 访问来源 是来自于那个app store,这有利于 我们针对性的推广. ...

  6. 浅谈Kotlin(一):简介及Android Studio中配置

    浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型.基本语法.代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 前言: 今日新闻:谷 ...

  7. Android Studio最新配置教程2016

    http://blog.csdn.net/wen_demo 一.Android studio 基本简单介绍 1.Android studio和Eclipse的差别: 1.Studio中有Project ...

  8. [转]加速Android Studio/Gradle构建

    加速Android Studio/Gradle构建 android android studio gradle   已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多, ...

  9. Android Studio Gradle Build Running 特别慢的问题探讨

    本文的本本win7 64bit 6G android studio2.1 在运行程序的时候Gradle Build Running 特别慢,一个helloworld都快2min了 1.开启gradle ...

随机推荐

  1. ActiveMQ笔记:管理和监控

    ActiveMQ提供了比较丰富的监控和管理工具.在ActiveMQ的网页里(http://activemq.apache.org/how-can-i-monitor-activemq.html)提到了 ...

  2. [转载]GBK 汉字内码扩展规范编码表(1.0 版)

    编码表源地址:http://ff.163.com/newflyff/gbk-list/ 编码在线查询:http://www.qqxiuzi.cn/bianma/zifuji.php GBK 汉字内码扩 ...

  3. Daily Scrum4 11.6

    昨天的任务按时完成了,但是通过不到两周的时间,我们的工作依旧停留在修改上届学长代码中.今天上课和老师提出了这样的问题,助教在TFS上重新加载了10级学长的代码. 从上届学长代码那里我们发现,他们没有实 ...

  4. Linux 目录结构及文件基本操作

    Linux 目录结构及文件基本操作 实验介绍 1.Linux 的文件组织目录结构. 2.相对路径和绝对路径. 3.对文件的移动.复制.重命名.编辑等操作. 一.Linux 目录结构 在讲 Linux ...

  5. 20162325 金立清 S2 W7 C16

    20162325 2017-2018-2 <程序设计与数据结构>第7周学习总结 教材学习内容概要 树是非线性结构,其元素组织为一个层次结构 树的度表示树种任意结点的最大子结点数 有m个元素 ...

  6. 05慕课网《进击Node.js基础(一)》HTTP概念进阶(同步/异步)

    HTTP模块介绍 支持http协议的更多特性 不缓存请求和响应 API比较底层处理流相关,信息解析 HTTP相关概念 回调 将函数作为参数传到执行函数中,参数函数在执行函数中嵌套执行 function ...

  7. EF三种编程方式详细图文教程(C#+EF)之Code First

    Code First Code First模式我们称之为“代码优先”模式,是从EF4.1开始新建加入的功能.使用Code First模式进行EF开发时开发人员只需要编写对应的数据类(其实就是领域模型的 ...

  8. <<梦断代码>>读后感

    <梦断代码>中对软件工程所面临的种种困难与艰难的描述,即便再过5年读也许都不过时.因为正如原作者所说,书中描写的是一队人马并肩扛起代码大石,虽历经磨难仍欲将其推上山顶的故事,而正是这种故事 ...

  9. Software-Defined Networking A Comprehensive Survey(一)

    传统网络:1 复杂,难于管理 2 很难实现根据之前定义的方案进行配置,3 对于缺陷.变化不能够再次进行配置 4 控制和数据平面绑定在一起,使许多缺陷难于解决 SDN网络:通过打破传统网络垂直整合,从底 ...

  10. 51单片机RAM 数据存储区学习笔记

    转自:http://www.eepw.com.cn/article/216237_2.htm 1.RAM keil C语言编程 RAM是程序运行中存放随机变量的数据空间.在keil中编写程序,如果当前 ...