问题: 开发的时候经常需要向项目中添加一些额外的参数或者硬编码的值. 解决方案: 使用ext块设置公用的值.如果需要从build文件中移除这些值,可以将参数放到gradle.properties文件中,或者在命令行下使用-P设置参数. 详细: Gradle文件支持使用简单的ext(ext代表extra)语法定义参数.这样可以定义一次变量,在整个文件中使用它. 你可以将参数值硬编码到build文件.如: Groovy风格被应用在这里,意味着AAVersion没有类型,在赋值的时候使用字符串,并且插…
问题: 取出多个模块下相同的配置 解决方案: 在顶级gradle配置文件里面使用allprojects或者subprojects块 讨论: 当你在android studio中新建android项目时,IDE创建了一个两级的gradle项目,一个配置文件在根目录下,一个在叫app的模块目录下.顶级的build.gradle有几个叫allprojects的块: 这个块是gradle的语法,所以不只是在adroid项目中,在所有基于gradle的项目中都能使用.allprojects属性来源于Gra…
问题: 需要构建大体上一样,但是使用不同资源或者类的应用. 解决方案: 产品的flavors可以帮助你对同一个app创建不同的版本. 讨论: build types是开发过程的一部分,一般用来将app从开发版进化到生产版.默认的build types:debug和release反应了这个. Flavors让你能够构建同一个app的不同版本.当你想对不同版本的app自定义不同的外观,或者你需要一个免费版和收费版的app,你可以使用Flavors. 可以使用productFlavors块来声明pro…
如果AS完全还没摸懂的,建议先看下Android开发工具全面转向Android Studio(2)——AS project/module的CRUD. 注:以下以Windows平台为标准,AS以目前最新稳定版1.4.1为准. 1.其实AS project/module的目录结构很简单,我浓缩成2张图给总结了,先看图,再看下面的文字,因为还有些细节图上体现不出来(我这个图上的项目来源于我之前的Eclipse项目,并且有lib项目库相互依赖)…
本文有些地方可能需要衔接Android开发工具全面转向Android Studio(1)——准备开发环境,读起来效果会更好. 这个世界很奇妙,所有的东西离不开CRUD,即增删改查.即使人本身也遵循这个规律,一个人出生是C,进入社会后会经常被R(坐个火车还得人证票合一呢),过个青春期,你已经被U不知多少次了,哪一天挂了总会被D掉的.下面回到主题,讲讲AS中project和module的CRUD,为了兼容Eclipse老用户和新手,此处还会以Eclipse的工作方式作为参考进行对比. 注:以下以Wi…
原文:配置cordova的android开发环境(无android studio) 趁元旦放假想试一下cordova,不想安装庞大的android studio,所以想最小化安装,居然花了一整天的时间才能正常编译cordova工程,记录一下过程,备将来参考. 安装环境:操作系统:windows 10 x64 第一步:安装nodejs,下载最新版本v10.15.0 第二步:设置npm安装源 npm config set registry http://registry.npm.taobao.org…
AndroidDevTools Android Dev Tools官网地址:www.androiddevtools.cn 收集整理Android开发所需的Android SDK.开发中用到的工具.Android开发教程.Android设计规范,免费的设计素材等. 欢迎大家推荐自己在Android开发过程中用的好用的工具.学习开发教程.用到设计素材,欢迎Star.Fork…
Eclipse搭建Android开发环境并运行Android项目 (详细) 安装环境: window 10 64位 安装工具: JDK.Eclipse.SDK.ADT 安装步骤: 1.JAVA JDK下载安装 2.Eclipse下载安装 3.Android SDK 4.ADT安装配置 5. 创建第一个Android项目 1.JAVA JDK下载安装 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 详细…
问题: 你需要查找Android Gradle DSL的完整文档. 解决方案: 访问Gradle Tools网站,从Android开发网站下载ZIP文件. 讨论:Android开发网站首页有完整的API向导,Java相关文档,工具文档等.Android Gradle插件相关的内容却非常的少. Android Gradle插件的主要文档在点击这里,包含了最新的信息: 用户向导非常有用,但是经常过期...(这也是这本书存在的意义): 另外一个Android 插件工具的网站是DSL Reference…
问题: 你想要提高Gradle的构建效率. 解决方案: 使用下面推荐的技术组合. 讨论: 首先,这里没有可以影响app表现的建议.有很多你可以做的事来提高app,很多都和Android的混淆工具有关.这节不是关于这个的,这节是提高构建本身效率的. 这节讨论那些可以添加到应用根目录下的gradle.properties文件里面的设置.如果你更喜欢全局设置,home目录下面的.gradle的子文件夹下增加一个gradle.properties文件. Gradle守护进程 Gradle守护进程是一个后…
问题: 你想要测试app中的非android部分. 解决方案: 可以使用Android Studio1.1里面增加的单元测支持和Android的Gradle插件. 讨论: ADT插件只支持集成测试,并且要求开发者创建一个单独的测试项目.转化到Android Studio和Gradle的其中一个好处就是支持在android项目内进行测试. 在AndroidStudio1.1之前和相关的Gradle插件,这些测试仍然被限制集成测试,意味着,你需要一个模拟器或者连接的设备才能进行测试.集成测试可以非常…
问题: 想在一个已经存在的Eclipse ADT的项目中使用Gradle 解决方案: Eclipse ADT插件可以帮助生成Gradle文件 讨论: Eclipse的ADT插件是在2013年推出Gradle之前主要的android开发工具.现在ADT项目被android studio所替代,但是还是有遗留的项目存在. ADT插件可以基于已经存在的项目结构和依赖帮你生成gradle的配置文件. 虽然这已经不是一个主流的机制,但是实践中会遇到这样的项目.这也是一个很好地机会,展示Gradle中的so…
在android开发中会需要配置使用app的android SDK的最低版本和目标版本,这个是bulidl.gradle的android模块设置.默认有以下几个设置: applicationId,这个是应用的包名,在google应用商店里必须是唯一的,在app的整个生命周期里是不能修改的,修改后会被认为是一个新的app minSdkVersion,设置app支持的sdk最低的版本.在google应用商店里,低于这个版本的机器是看不到这个app的 targetSdkVersion,设置app的目标…
问题: 你想要在app当中增加新的library模块 解决方案: 使用library插件,增加一个library模块作为依赖. 讨论: 不可以通过使用java库给app增加许多功能,通常是使用jar包.1.5节讲述了如何使用dependencies块.举例子,为了使用Googles的Gson库解析json,可以在module的配置文件里面增加依赖: dependencies { compile 'com.google.code.gson:gson:2.6.2' } Android librari…
问题: 想要在product的flavor里面改变图片,文字或者其它资源. 解决方案: 在flavor里面增加合适的资源目录,并且改变他们包含的值. 讨论: 考虑下3.2章的“hello world with attitude”应用,它定义了三个flavors:arrogant,friendly和obsequious.在每个情况下,app提示用户输入姓名,并且用这个姓名欢迎用户.每个的java代码都是相同的,但是看上去和感觉上好像每个都不一样. product的flavors在gradle配置文…
问题: 你想要自定义debug和release的build types,并且新建一些新的types. 解决方案: 使用buildTypes块配置build types. 讨论: build type决定了app如何被打包.默认的,android的gradle插件支持两种build type:debug和release.两种都在模块的build.gradle文件中的buildTypes块下定义.在新的项目下的buildTypes块如下: 例子中值显示了release的build,但是想要编辑默认配…
问题: 为了将APK发布到google市场,需要对APK数字签名. 解决方案: 可以使用java的keytoll命令去创建一个证书,并且在gradle配置文件的signingConfigs块使用. 讨论: 所有的APK在发布之前都必须签名.默认的,Android用一个已知的key对测试的APK进行签名.你可以使用java的keytool命令行看到. debug的密钥存储在home目录下的一个叫.android的目录下.密钥的默认名叫debug.keysore,并且有一个android密码. 在命…
问题: 你想要将一个Eclipse ADT项目导入到Android Studio中. 解决方案: Android Studio提供了一个导入向导,可以重写已有的项目. 详细: 在Android Studio的欢迎页上,显示导入eclipse或者gradle项目的向导按钮. 链接会打开导航让你选择已有Eclipse项目的文件地址.使用老的项目结构,res,src和AndroidManifest.xml都直接在根目录下.如: 选择好目标目录,导航提供了一个将jar包转化为gradle下的依赖,以及其…
想命令行执行gradle的构建,可以通过提供的gradle wrapper或者安装gradle. 构建android项目不需要安装gradle,因为android studio已经包含gradle."gradle wrapper"指的是根目录下的gradlew和gradlew.bat脚本(结尾的w是wrapper的意思). "gradle wrapper"的目的是运行在没有安装gradle之前运行gradle.wrapper通过gradle/wraaoer目录下面的…
摘要: 每周一次,深入学习Android教程,TeachCourse今天带来的一篇关于Android Studio构建文件build.gradle的相关配置,重点学习几个方面的内容:1.applicationId和package属性值的关系,2.怎么配置安全的自定义签名,3.两种构建类型的区别,4.为什么要定制产品的偏好配置?,5.怎么才能加快DEX文件的生成速度,6.为什么要将一个apk拆分成多个?,7.关于引入依赖包你不知道的秘密.通过这篇文章的学习,你会对build.gradle文件有一个…
gradle结构: MyApp ├── build.gradle ├── settings.gradle └── app └── build.gradle 1. setting.gradle解析 当你的app只有一个模块的时候,你的setting.gradle将会是这样子的: include ':app'        当有多个模块时,如支付平台中需要包含 第三方 支付库 include ':app', ':thirdpartylib' 2.根目录的build.gradle 该gradle文件是…
  最新的android studio2.2引入了cmake可以很好地实现ndk的编写.这里使用最新的方式,对于以前的android下的ndk编译什么的可以参考之前的文章:Android开发学习之路–NDK.JNI之初体验. 1.ffmpeg编译   进入正题,既然是ffmpeg的移植编译,那么就先下载ffmpeg,https://ffmpeg.org/download.html#releases.这里下载的是3.0.3版本.   新建ffmpeg文件夹,然后新建脚本用来编译ffmpeg,命名为…
http://www.cnblogs.com/dazhao/p/6547811.html 摘要: Android 6.0之后的版本增加了运行时权限,应用程序在执行每个需要系统权限的功能时,需要添加权限请求代码(默认权限禁止),否则应用程序无法响应:Android 7.0在Android 6.0的基础上,对系统权限进一步更改,这次的权限更改包括三个方面: APP应用程序的私有文件不再向使用者放宽 Intent组件传递file://URI的方式可能给接收器留下无法访问的路径,触发FileUriExp…
开发环境情况: 物理机版本:Win 7旗舰版(64位) Java SDK版本:jdk1.8.0_25(64位) Android SDK版本:Android 7.1(API 25) Android Studio版本:Android Studio V2.2.3 注:物理机版本和Java SDK版本必须要保持一致,即:同为64位或者同为32位. 一.Android Studio的引入: 2013年GoogleI/O大会首次发布了Android Studio IDE(Android平台集成开发环境).它…
RxJava的核心内容很简单,就是进行异步操作.类似于Handler和AsyncTask的功能,但是在代码结构上不同. RxJava使用了观察者模式和建造者模式中的链式调用(类似于C#的LINQ). 观察者模式:Observable(被观察者)被Observer(观察者)订阅(Subscribe)之后,Observable在发出消息的时候会通知对应的Observer,并且,一个Observable可以有被多个Observer订阅. 链式调用:和Builder模式类似,调用对应的方法对原对象进行处…
上一次发过了一个介绍Studio的,这里再发一个补充下. 我们都知道,Android Studio的功能是非常强大的,也是很智能的.如果有人告诉你学Android开发要用命令行,你可以告诉他Android Studio是谷歌提供给开发者提升效率的.试想想你脑袋里有一堆想法,但是开发编码效率太低导致想法都丢失了或者兴趣消失了多可怕对不.好了废话不多说,这里介绍几个比较好用的技巧和快捷键,提升我们的编码效率. 1.完成一句代码 如果我们调用了一个方法,并给方法传递了参数,这个时候如果我们要结束这个语…
一.eclipse下载.安装.配置 因为eclipse是之前就下载过的,现在只能大概说一下eclipse的下载安装过程. 1.下载jdk,配置java环境变量  (1)在官网(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)下载jdk; (2)配置java环境变量 jdk下载完成后,直接安装,没有什么困难. 安装完后,要配置java环境变量: a.打开   计算机→属性→高级系…
归结一下,需要进行Android开发所需要的工具或软件: Eclipse - Android是基于JAVA的开发,所以选用目前来说使用较高的Eclipse作为IDE. ADT (Android Developer Tools) Android SDK 1.下载Eclipse3.7,登录http://www.eclipse.org/downloads/,下载Eclipse Classic 3.7: 如果你的机器没有安装JDK或者JRE的话,在Eclipse的安装过程中会提示你指定JDK或者JRE的…
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>中的相关知识,再次表示该书的作者,膜拜!!!另外,本系列文章知识可能需要有一定Android开发基础和项目经验的同学才能更好理解,也就是说该系列文章面向的是Android中高级开发工程师 先来个最简单的HelloWord代码,用Android Studio 3.0新建项目(一直使用默认)后会自动生成一个HelloWorld的项目,如下…
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解Android 卷Ⅰ,Ⅱ,Ⅲ>中的相关知识,另外也借鉴了其他的优质博客,在此向各位大神表示感谢,膜拜!!!另外,本系列文章知识可能需要有一定Android开发基础和项目经验的同学才能更好理解,也就是说该系列文章面向的是Android中高级开发工程师. 前言 我们在上一篇中比较详尽的介绍了Android的消息机…