android开发如何测试,成为 Android 测试开发的关键第一步

来自度娘的解释是:Gradle 是一个基于 JVM 的构建工具,是一款通用灵活的构建工具,支持 maven, Ivy 仓库,支持传递性依赖管理,而不需要远程仓库或者是 pom.xml 和 ivy.xml 配置文件,基于 Groovy,build 脚本使用 Groovy 编写。

这样说还是比较抽象。

或许下面的这个例子可以帮助你更好的理解它。

“比如,大部分的 Java 项目基本流程都是相似的:编译源文件、进行单元测试、创建 Jar 包,使用 Gradle 做这些工作可以不用为每一个工程都编写代码。使用 Gradle 和它的插件可以为你减少重复性的代码与工作。”

如果这个还有一点抽象的话,或许下面这个也是一个不错的例子。

我们拿手机抓 trace 后自动转化来说。trace 分析手机卡顿的一个方法。抓取后 trace 需要转化为 html 格式,其中的一个方法是:

fb22beffc507c2324842b29be8303979.png

但是如果我们有很多的 trace 要转化,每次都开一个 cmd 窗口来敲命令转化就很麻烦了,所以我们可以写一个脚本让它实现自动转化:

File fileParent = new File(fileDir);

if(fileParent.isDirectory()){

File fileList[] = fileParent.listFiles();

String systracePyFilePath = getSystracepyPath("D:\\systrace\\systrace");

for(int i = 0;i < fileList.length;i++){

try {

// String saveSystracePyFilePath = saveSystracepyPath("C:\\Users\\chenxiuxian\\Desktop\\result",fileList[i].getName());

String saveSystracepyName = fileList[i].getName();

Process pr = Runtime.getRuntime().exec("python "+ systracePyFilePath + " --from-file " + fileList[i]);

BufferedReader br = new BufferedReader(new InputStreamReader(pr.getInputStream()));

try{

Thread.sleep(5000);

}catch(InterruptedException e){

e.printStackTrace();

}

while(br.readLine() != null){

String s = br.readLine();

System.out.println(s);

}

if(br.readLine() == null){

String systemDir = System.getProperty("user.dir");

System.out.println("Systrace file save path:" + System.getProperty("user.dir"));

try{

Thread.sleep(5000);

}catch(InterruptedException e){

e.printStackTrace();

}

br.close();

pr.destroy();

File file = new File(systemDir + File.separator + "trace.html");

file.renameTo(new File(file.getParent() + File.separator + saveSystracepyName + ".html"));

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

看到这里大概你明白了,Gradle 是一个自动化构建的脚本,帮助我们自动化完成一个工程/应用/项目需要的资源、编译、打包等工作。

所以,在 Android Studio 中你可以看到,Gradle 配置了很多属性,主要是工程编译需要的属性:

aea6992a91522c6e40f8433095664bd5.png

build.gradle:分为项目级和模块级别,用于描述 APP 工程的编译规则。

proguard-rules.pro:该文件用于描述 java 文件的代码混淆规则。我的代码没有做混淆,所以你可以看到的没有改动过的文件是这样子的:

e9df05fe6ebce3e1f0218cc698af6f3a.png

gradle.properties:该文件用于配置编译工程的命令行参数,一般无须改动。

9d4aed2841621c2a086c340192fc52bd.png

settings.gradle,配置哪些模块在一起编译。初始内容为 include':app',表示只编译 App 模块。

5c5bbc7ab5f1a374859a0e95f70d98b8.png

local.properties,项目的本地配置,一般无须改动。该文件是在工程编译时自动生成的,用于描述开发者本机的环境配置,比如 SDK 的本地路径、NDK 的本地路径等。

7eaeac8a7b1b70dbbc5ebeccdd2ca1ec.png

对于 Gradle 了解到这里似乎也没有什么让人值得注意的。但是对于我们测试同学来说,可以用来学习编程实践的时间是宝贵的,我们更要分清主次。所以下面的话是重要的:

项目级别的 build.gradle 一般无须改动,我们只需关注模块级别的 build.gradle。

所以弄清楚 build.gradle 里面每个参数的用途,可以在你搭建 Android 项目、编译 APP、导入其他 Android 项目时遇到的环境报错处理起来更有方向感:

7c1dd2c36109bf542532fad6abeac142.png

所以当你遇到以下问题,你就知道的工程问题出现在依赖库,只要修改依赖库的版本号即可:

206bc51c40e52918d7a1bc9b2bace8c3.png

如果说测试开发是一条升级打怪之路,那么搭建起一个可以运行的开发环境就是打怪升级的第一步。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值