# 质量保障体系

# 质量检查

通过代码评审、代码检测、使用注解改进代码、Monkey等工具随机重复压力测试等方式,保证软件总体质量和提高开发者自身水平

# 代码检测工具

Android Lint 可以检查您的 Android 项目源文件是否有潜在的错误,以及在正确性、安全性、性能、易用性、无障碍性和国际化方面是否需要优化改进

# 手动运行检查

操作流程: 右键项目工程 -> Analyze -> Inspect Code

输出结果:在控制台或 Android Studio 的 Inspection Results 窗口中查看 lint 检查结果

inspection-results

# 从命令行运行

项目根目录下使用命令行

// Windows
gradlew lint
// Linux或Mac上
./gradlew lint

输出结果:

> Task :app:lint
Ran lint on variant release: 5 issues found
Ran lint on variant debug: 5 issues found
Wrote HTML report to file:<path-to-project>/app/build/reports/lint-results.html
Wrote XML report to file:<path-to-project>/app/build/reports/lint-results.xml

# 使用注解改进代码检查

# null 性注解

添加 @Nullable@NonNull 注解,以检查给定变量、参数或返回值的 null 性。@Nullable 注解用于指明可以为 null 的变量、参数或返回值,而 @NonNull 则用于指明不可以为 null 的变量、参数或返回值;

import android.support.annotation.NonNull;
...
    // Java 
    @NonNull
    @Override
    public View onCreateView(String name, @NonNull Context context, @NonNull AttributeSet attrs) {
      ...
    }
...

对于Kotlin,我们不需要使用 @NonNull 注解,因为当我们指定了不可为 null 的类型时,该注解会自动添加到生成的字节码

import android.support.annotation.NonNull
...
    // Kotlin 
    fun onCreateView(name: String?, context: Context, attrs: AttributeSet): View? {
        ...
    }
...

# 资源注解

验证资源类型,保证参数需要引用特定类型的资源

例如,添加 @StringRes 注解,以检查资源参数是否包含 R.string 引用,如下所示:

abstract fun setTitle(@StringRes resId: Int)

其他资源类型的注解(例如 @DrawableRes@DimenRes@ColorRes@InterpolatorRes),原理同上

# 值约束注解

使用 @IntRange@FloatRange@Size 注解可以验证所传递参数的值。@IntRange@FloatRange 在应用到用户可能会弄错范围的参数时最为有用

// 可以确保 alpha 参数包含 0 到 255 之间的整数值:
fun setAlpha(@IntRange(from = 0, to = 255) alpha: Int) { ... }

// 可以检查某个集合是否不为空,确保location 数组至少包含一个元素
fun getLocation(button: View, @Size(min=1) location: IntArray) {
    button.getLocationOnScreen(location)
}

以上都是常用注解,了解更多 注解改进代码检查 (opens new window)

# 测试应用

单元测试 位于 module-name/src/test/java/

插桩测试 位于 module-name/src/androidTest/java/

# 单元测试工具

# 交互测试工具

# Monkey工具

是一个命令行工具,可以在任何模拟器实例或设备上运行。它会将伪随机用户事件流发送到系统中,从而对您正在开发的应用软件进行压力测试;模拟一只猴子在屏幕随意乱点乱按;

基本用法

// 基本语法格式
$ adb shell monkey [options] <event-count>

// 启动您的应用并向其发送 500 个伪随机事件
$ adb shell monkey -p your.package.name -v 500

更多命令选项参考 (opens new window)

最后更新时间: 11/24/2021, 1:59:05 AM