App的打磨之路(上)

前言:

俗话说磨刀不误砍柴工,一个优秀的产品从一个不错的点子直到用户的手中,是需要一个团队不遗余力协同合作不断打磨出来的;同样,一个好的App除正常的代码编写外,还需要经过其他方面的不断打磨才能正式交互,最终到达用户的手中。该文主要讲述一个应用除开发外还需要进行哪些工作才能合格交互,在此抛砖引玉,希望对有需要的朋友一点启示!
该文由于内容较多故分为三篇博文来描述,主要内容包含:单元测试、性能分析、签名、混淆、APK瘦身、反编译、打包及加固,下文主要描述前面三个:单元测试、性能分析及签名。

一、单元测试

单元测试是编写测试代码,用来检测特定的、明确的、细颗粒的功能。单元测试不仅仅用来保证当前代码的正确性,更重要的是用来保证代码修复、改进或重构之后的正确性。对于想打造优秀产品的码农来说是必不可少的,虽然在大部分公司实现有居多困难。
一般来说,单元测试任务主要包括以下几个方面:
1. 接口功能测试
主要用来保证接口功能的正确性。
2. 数据结构测试
主要用来保证接口中的数据结构的正确性,比如变量有无初始值,是否溢出等。
3. 边界条件测试
边界条件判定是单元测试中最常用的,在开发中也是最容易遇到的BUG,边界条件判定的类型主要有以下几种情形:
– 变量是对象:如对象是否为NULL等;
– 变量是数值:数值边界:最小值、最大值、无穷小、无穷大,溢出边界:最小值-1、最大值+1,临近边界:最小值+1、最大值-1;
– 变量是字符串:字符串是否为空,字符串的长度进行数值变量的判定;
– 变量是集合:集合是否为空,集合的大小进行数值变量的判定;
4. 独立执行通路测试
主要保证代码的覆盖率,如语句覆盖:保证每一条语句都执行到,分支覆盖:保证每一个分支都执行到,条件覆盖:保证每一个条件都覆盖到true和false的情形,路径覆盖:保证每一个路径都执行到;
5. 异常处理通路测试
主要保证所有的异常都经过测试。

JUnit是Java单元测试框架,已经在Android Studio中默认依赖。目前主流的有JUnit3和JUnit4。JUnit3中,测试用例需要继承TestCase类。JUnit4中,测试用例无需继承TestCase类,只需要使用@Test等注解。以下通过一个实例来更好的展示单元测试过程:
先在应用下建立一个计算工具类,方便写单元测试:

最后就可以直接选择CalculatorUtilTest直接运行了。到此,单元测试就告一段落了,下面是讲述性能分析,这个也很重要哦!^_^

二、性能分析

1、Memory Monitor

在Android Studio中运行项目后,点击Android Monitor中的Monitor就可以看到如下图所示的Memory使用及CPU运行情况:

这里写图片描述

按照指示填写对应信息,点击OK就生成了签名文件。
还一种方式是使用命令的方式创建,进入Java的bin目录下,如我的Java目录为:/Library/Java/Home/bin,通过keytool工具来创建keystore库,输入以下命令:

再按照提示一步步输入对应的信息,最后就生成了一个名为xyy.keystore的签名文件。
有了签名文件后,将签名文件放到对应需要签名的工程目录module下,再在module对应的build文件中添加如下签名信息(签名信息对应输入自己设置的秘钥信息):

这样配置完后每次build工程生成的文件都会使用debug下的签名信息了,gradle配置详情可参考我的另一篇博客Android Studio常用Gradle操作。

个人 站:http://www.xiaoyaoyou1212.com 欢迎吐槽围观!

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年6月13日
下一篇 2016年6月13日

相关推荐