《阿里巴巴Java开发手册(终极版)》3-1单元测试(新增)

单元测试

  1. 【强制】好的单元测试必须遵守 AIR 原则。
    说明:单元测试在线上运行时,感觉像空气 (AIR) 一样并不存在,但在测试质量的保障上,
    却是非常关键的。好的单元测试宏观上来说,具有自动化、独立性、可重复执行的特点。
     A: Automatic (自动化)
     I: Independent (独立性)
     R: Repeatable (可重复)

  2. 【强制】单元测试应该是全自动执行的,并且非交互式的。测试框架通常是定期执行的,执行
    过程必须完全自动化才有意义。输出结果需要人工检查的测试不是一个好的单元测试。单元测
    试中不准使用 System.out 来进行人肉验证,必须使用 assert 来验证。

  3. 【强制】保持单元测试的独立性。为了保证单元测试稳定可靠且便于维护,单元测试用例之间
    决不能互相调用,也不能依赖执行的先后次序。
    反例: method2 需要依赖 method1 的执行,将执行结果做为 method2 的输入。

  4. 【强制】单元测试是可以重复执行的,不能受到外界环境的影响。
    说明:单元测试通常会被放到持续集成中,每次有代码 check in 时单元测试都会被执行。如
    果单测对外部环境(网络、服务、中间件等)有依赖,容易导致持续集成机制的不可用。
    正例:为了不受外界环境影响,要求设计代码时就把 SUT 的依赖改成注入,在测试时用 spring
    这样的 DI 框架注入一个本地(内存)实现或者 Mock 实现。

Android-Studio-之依赖方式详解(Compile, Provided...)

序言

我们在项目开发中,不可避免的需要使用到第三方的一些库,或者自己定义的一些lib,所以我们就需要在 build.gradle 文件添加对这些lib的依赖,代码如下:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:support-v4:25.3.0'
    ...
    provided files('jar/framework.jar')
}

可以看到上面使用到了两种依赖的方式:compile provided ,那么还有没有其它依赖方式?都有哪些?

dependencies

下面我们一起看看Studio给我们提供了那些依赖方式:

studio_dependencies

其实 Studio 已经提供了6种依赖方式:CompileProvidedAPKTest compileDebug compileRelease compile这里的名字和 dependencies 里面使用的命名是不用的 ,你可以添加几个试试看。那么问题来了,它们有什么不同?继续往下看

Android Studio 发布 library 到 jcenter 和 maven central

序言

在我们日常的开发中,会遇到各种各样的需求和技术解决方案。所以产生了各位大神提供的各种功能的开源库,并且通过:compile ‘xxxxxxxx’ 就可以使用了,非常方便。可以你有没有想过自己写一个开源库?又或者你已经贡献了很多好的代码,不知道怎么共享,怎么通过 compile 的方式给别人使用?你要知道,装B也是需要技术的。

jcenter & maven central

引用

如果你留心的话,应该了解到我们使用了两种标准的 libraries 仓库,分别是 jcentermaven central

  • jcenter

    jcenter 是一个托管在 bintray.com 的资源库,你可以在 这里 找到需要的资源为了能在项目中使用 jcenter,我们需要在 project 的 build.gradle 文件中添加对资源库的引用:

    allprojects {
        repositories {
            jcenter()
        }
    }

  • maven central

    Maven Central 是一个托管在 sonatype.org 的资源库,你可以在 这里 找到需要的资源如果在项目中使用 Maven Central,我们需要在 project 的 build.gradle 文件中定义自己的资源库:

    allprojects {
        repositories {
            mavenCentral()
        }
    }

请注意,虽然 jcenter 和 Maven Central 都是标准Android library 资源仓库,但他们的托管地址完全不同,它们的内容是由不同提供者提供的,而且之间并没有任何关联。所以也就可能,在 jcenter 中能够找到的 library ,在 Maven Central 中并不能找到,反之亦然。

Moto Z Play 去除内核加密和dm-verify

由于各种原因,我们需要修改系统已完成定制,所以我们需要想办法去除掉它。

最近迎来了 Moto Z Play 的安全补丁更新,但是由于已经解锁 bootloader,无法正常OTA,所以需要手动刷最新完整底包,或者刷上一个版本然后OTA,更新到最新的 NCN25.137-24 版本,安全补丁是 2017年5月1日 的,无奈最新的完整底包还没有放出,只能刷上一个版本的底包再OTA了。当然了,Google全家桶是必不可少的,但是现在 Moto Z / Moto Z Play 刷 Google 全家桶可没那么容易了,两个问题:内核强制加密、dm-verify 验证!

  • 内核强制加密

    Moto Z / Moto Z Play 开启了强制加密 Data(数据目录) 分区功能

    开启强制加密会影响磁盘读写性能、无法修改、不能 ROOT、开机速度慢

  • dm-verify 验证

    这是由 Google 设计的一项用于保护系统的技术。当系统经过修改后,手机将会重启,并且将会无法开机进入系统

关于内核加密,现在第三方的ROM制作团队或者厂商都默认开启了内核加密,这没有任何问题,但是对于喜欢DIY或者定制ROM的人,就相当于是一道墙。 但是,还是有大神来解决的,下面是我整理的一些大神提供的去除内核加密和dm-verify验证的方法(只针对Moto Z / Moto Z Play

Google 发布 Android Studio 3.0 Canary 1

发布人:Android 产品经理 Jamal Eason

正巧赶上 Google I/O 2017 ,我们提供发布了 Android Studio 3.0 - 今天就可以在我们的 Canary 发布渠道上

下载。Android Studio 是我们的官方 IDE,专门为 Android 开发构建的,我们不断加大投入,改进该 IDE。Android Studio中的功能集专注于加速您的应用程序开发流程并提供针对 Android 平台构建的最新工具。

为加快您的开发流程,Android Studio 3.0 包含了三大主要功能:

  • 一套全新的应用性能分析工具,用于快速诊断性能问题

  • 支持 Kotlin 编程语言

  • 加快大型应用项目的 Gradle 构建速度

Android Studio 3.0 还紧密集成了 Android 平台开发工具,提供以下附加的关键功能:

  • 支持Instant App(即时应用或免安装应用)的开发

  • 在 Android O 模拟器系统映像中包含 Google Play 商店

  • 全新的 Android O 开发向导

总的来说,Android Studio 3.0 的第一个 Canary 版本包含 20 多项新功能。

我们一直在 Android Studio 2.4 的各个 Canary 版本中默默地迭代了这当中的许多功能。直到今天,我们认识到,我们已经添加了许多重要功能,并且,我们必须在Android Gradle插件中引入一个罕见的变化,以提高可扩展性和构建时间,于是,我们将此版本重新编号为 Android Studio 3.0。如果您希望针对 Android O 开发应用,创建免安装应用,开始使用 Kotlin 语言开发,或者希望使用最新的 Android 应用性能工具来提升应用质量,那么,您应立即下载 Android Studio 3.0 Canary 1。

Yutube视频演示地址:Android DevByte - Android Studio 3.0 Canary 1 中的新增功能

| | 总字数统计:93.5k