问题: 你想要测试app的Android组件. 解决方案: 使用新的测试类实现JUnit风格的测试. 讨论: 测试像activities,services等的Android组件,需要将app部署到连接的设备或者模拟器上面.测试类基于JUnit,但是严格意义上不是单元测试.它们是集成测试还是功能测试,取决于你怎么使用. 因为看到这里的目的都是驱使部署的app正常运行并且UI正常改变,功能测试在这比较合适.你可以在文档中经常看到集成测试. Android Testing Support Librar…
问题: 你想要在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…
问题: 想要使用Android studio生成签名配置,给他们分配build类型. 解决方案: Build菜单提供了生成签名配置,Project Structure窗口有tab用于分配不同的types和flavors. 讨论: Build->Generate Signed APK菜单可以生成keystore. 点击“create new”会弹出窗口指定keystore的路径,并且生成一对key. 如果你选择了一个已有的keystore,填写password和alias使用里面已有的key,或者…
问题: 你需要查找Android Gradle DSL的完整文档. 解决方案: 访问Gradle Tools网站,从Android开发网站下载ZIP文件. 讨论:Android开发网站首页有完整的API向导,Java相关文档,工具文档等.Android Gradle插件相关的内容却非常的少. Android Gradle插件的主要文档在点击这里,包含了最新的信息: 用户向导非常有用,但是经常过期...(这也是这本书存在的意义): 另外一个Android 插件工具的网站是DSL Reference…
问题: 你想要测试app中的非android部分. 解决方案: 可以使用Android Studio1.1里面增加的单元测支持和Android的Gradle插件. 讨论: ADT插件只支持集成测试,并且要求开发者创建一个单独的测试项目.转化到Android Studio和Gradle的其中一个好处就是支持在android项目内进行测试. 在AndroidStudio1.1之前和相关的Gradle插件,这些测试仍然被限制集成测试,意味着,你需要一个模拟器或者连接的设备才能进行测试.集成测试可以非常…
问题: 你想用自己的任务定制gradle的构建过程. 解决方案: 在gradle的build文件里面增加task元素.用Android插件支持的extra属性使得开发更容易. 讨论: Gradle的DSL支持使用task块来定义自己的任务.API包括的非常广范围的task(像 Copy,Wrapper和Exec),你可以简单的通过配置来使用. 举例子,Copy任务包含from和to属性,from块可以设置排除指定格式文件名的文件.将那些没有签名的apk以外的所有apk复制到新的文件夹下,任务如下…
问题: 想在一个已经存在的Eclipse ADT的项目中使用Gradle 解决方案: Eclipse ADT插件可以帮助生成Gradle文件 讨论: Eclipse的ADT插件是在2013年推出Gradle之前主要的android开发工具.现在ADT项目被android studio所替代,但是还是有遗留的项目存在. ADT插件可以基于已经存在的项目结构和依赖帮你生成gradle的配置文件. 虽然这已经不是一个主流的机制,但是实践中会遇到这样的项目.这也是一个很好地机会,展示Gradle中的so…
问题: 你想要自定义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密码. 在命…
问题: 你需要更新应用的Gradle版本. 解决方案: 生成一个新的wrapper,或者直接修改属性文件(.properties). 讨论: Android Studio包含了一个Gradle的分发.当你创建一个新的android应用的时候,IDE自动为Unix和windows生成gradlew和gradlew.bat脚本.这些“wrapper”脚本允许你再没有安装gradle之前使用它.替代的,wrapper脚本自动下载并安装指定版本的gradle. 软件工程持续了很长时间,gradle定期发…