Android 6.0 构建更高质量的应用

      转自:http://chinagdg.org/2015/12/%e6%9e%84%e5%bb%ba%e6%9b%b4%e9%ab%98%e8%b4%a8%e9%87%8f%e7%9a%84%e5%ba%94%e7%94%a8/


构建更高质量的应用

Screen Shot 2015-12-21 at 3.04.35 PM

开发者的目标是打造用户喜欢的应用。使用体验更好的应用用户就愿意投入更多钱,在 Google Play 商店获得越高评分的应用会获得更多下载。那么如何衡量应用的质量?从一种角度说,应用的质量涉及以下几个方面:

  1. 应用确实解决了用户的需求;
  2. 应用不仅设计美观而且易于使用;
  3. 应用稳定可靠、性能好、不浪费流量、不耗电等;
  4. 应用有创新,使用了最新的 Android 特性;

应用的生命周期分三个阶段:

  1. 设计;
  2. 开发;
  3. 分发;

接下来,我们从这三个不同的阶段分别讨论如何改进应用的质量。

一、设计阶段

Material Design 提供了跨设备和 Web 的一致性用户体验。它的四项原则:

  1. 有型的外观(Tangible surface):应用像现实中的实物一样。
  2. 仿印刷品的设计(Print-like design):内容醒目、形象生动、意图明确。
  3. 有意义的运动效果(Meaningful motion):吸引用户的兴趣,在应用状态切换时保持连续性。
  4. 自适应设计(Adaptive deisgn):用户在手机、平板、Android TV、Android Wear、Android Auto 等不同设备上都能感到熟悉、一致,而不需要重新适应应用。

Material Design 参考资料:

Android Design Support Library

Android Design Support Library 涵盖了众多 Material Design 实现组件,并且支持 Android 2.1 以上的所有设备。详见文章:http://android-developers.blogspot.com/2015/05/android-design-support-library.html

二、开发阶段

Android Marshmallow 新特性:运行时权限和省电特性

1. 运行时权限

你需要使用 API 23。对用户而言,新的运行时权限给用户更大自由控制隐私。对开发者而言,它能提高应用程序的安装率和更新率。因为用户现在只需直接安装应用,而不再需要像以前那样费心思考虑是否接受应用提出的所有权限。

Screen Shot 2015-12-21 at 4.37.22 PMScreen Shot 2015-12-21 at 4.38.04 PM

用户在第一次启动应用的时候,应用可以按需向用户提出权限请求。当然,用户可能接受也可能拒绝权限请求,比如用户不明白为什么要使用这个权限或者用户正在路上没看清楚。用户第一次拒绝了权限请求没关系,应用还可以再次向用户提出权限请求。但在第二次权限请求的时候系统会给用户一个“不再询问”的复选框,如果用户还是拒绝了这个权限并且勾选了复选框,那么应用再请求这个权限的时候就会被系统忽略,唯一的办法是让用户在系统设置中把应用的这个权限打开。需要注意的是用户可以在任何时候在系统设置中打开或关闭应用的某一特定权限,即便对 API 23 之前的应用也是如此,在这种情况下应用可能会出现不可预期的问题。所以我们建议老的应用尽快更新以适应新的权限模型。

选择最佳的方式获得权限

Screen Shot 2015-12-21 at 5.01.24 PM如果用户了解提出权限请求的原因,那么用户通常会同意这个请求。有四种提出权限的方式:

  1. 一上来在请求权限之前先教育用户为什么需要这些权限 (Educate before asking):比如在应用初次启动的欢迎界面中让用户了解应用程序的运行机制,这样请求权限的时候用户就不会感到意外了。
  2. 一上来直接提出请求 (Ask up-front):在应用第一次启动的时候只请求最关键且显而易见的权限。如果应用提出的权限意图明确,那么可以在使用的时候直接提出权限请求,但风险是你觉得意图很明显但用户不这么想就有麻烦了(这种情况下请使用上一种方法解决)。
  3. 在需要的时候请求权限(Ask in context):有些权限只是在使用应用中的某个特定功能的时候才需要,所以这些权限不需要一上来就请求,而是推迟到用户实际使用该功能的时候再请求。比如一个笔记应用中提供了语音记录的功能,那么可以在用户使用语音记录功能的时候再请求麦克风的权限,这样这个权限请求对用户是显而易见的。如果用户从不使用这个功能,那么根本不会触发这个权限请求。
  4. 在需要的时候先教育用户再请求权限(Educate in context):和第三种情况类似,但有的权限即使在需要的时候也不是那么显而易见。这种情况下应该在提出权限请求之前先用某种方式教育用户,让用户了解背后原因。然后如果用户愿意尝试这个功能就提出权限请求。

当然,无论使用以上哪种方式,用户还是可能选择拒绝权限请求。这种情况下,应用应该让用户知道某个功能无法正常使用是由于缺少特定权限,并提供修改应用权限的设置链接。

除了请求权限,你还可以使用 Android Intents 机制。像拍照、选择文件这些常见功能,完全可以通过 Intent 委托系统来提供,这样就根本不需要这个权限了。例如使用 ACTION_IMAGE_CAPTURE 的 Intent 来替代 android.permission.CAMERA 权限。

2. 省电特性:

Android M 中的省电特性, Doze 模式和 App Standby ,是用户非常喜欢的新特性。而开发者也需要确保自己的应用能够与这些新功能相配合。

Doze 模式

用户希望自己的手机放在桌上一觉醒来后还是电力充足, Doze 模式通过让系统进入休眠状态从而节省电量。在进入 Doze 模式时,以下功能会受到限制:网络访问受限;wakelock 会被忽略;sync 和 job 会延迟;alarm 会延迟。

App Standby

当应用空闲(没有被使用)一段时间后,该应用会进入待机状态(Standby)以节省电量。当应用处于待机状态时,网络访问受限;sync 和 job 会延迟。

开发者应该测试应用在 Doze 模式和 App Standby 状态下是否正常。如果你的应用必须传递消息,请使用高优先级 GCM 消息。如果需要使用 alarm 功能,请使用新的 Alarm API 。

更多信息请参考 Optimizing for Doze and App Standby 。

3. Android Studio

Android Studio 是 Google 官方支持的 Android IDE ,而 Eclipse ADT 将于 2015 年底停止维护,所以请尽早迁移到 Android Studio 上。Android Studio 的特性包括:

  • 支持 C++ 开发;
  • 提供性能诊断工具:CPU、GPU、内存、网络;
  • Gradle 2.4 性能提升、Android 测试支持库(espresso);
  • 可视化设计工具;
  • Android Design Support Library;
  • 支持库:数据绑定、百分比库、Chrome 自定义 Tab ;
  • 新平台支撑:Android Wear、Android Auto;

另外,还可以参考我们之前发过的中文介绍:

三、应用分发(Google Play)

1. APK 文件大小限制由 50M 提升到 100M。

尽管如此,用户还是喜欢比较小到应用,所以请优化你的应用使下载文件尽可能地小。如果超过 100M ,请使用 APK Expansion Files 。

2. 应用发布

Screen Shot 2015-12-21 at 8.14.04 PMBeta 测试

如果你的应用想在正式上线前先邀请少量用户测试反馈,或者想了解用户对应用下一个版本的新功能是否喜欢,那么可以采用 Google Play 提供的特别功能:Alpha/Beta 测试。这个功能让你可以邀请一小批用户进行测试和反馈。受邀用户不能对测试版的应用进行评价,这样不会影响你的应用评价,而你又可以通过多种手段来获得用户反馈。此外,还可以将用户分为 Alpha 和 Beta 两个测试组分别进行测试。

现在有两种方式让用户轻松加入 Beta 测试:

  1. 开放式 Beat 测试:任何用户只需点击一下即可加入。
  2. 封闭式 Beta 测试:只有指定的用户才可以加入,通过基于 email 的 Google Groups 或 Google+ 社群。
分阶段发布(Staged rollout)

Alpha/Beta 测试是您在正式发布之前的受邀测试手段。而当您准备正式发布时,新版应用仍然可能出现您未曾预料到的意外问题。为了降低可能出现的问题的影响范围,您可以分阶段发布。也就是说新版本只发布给一定比例的随机用户(比例可设),而不是所有用户。如果没发现问题,那么可以逐渐提高这个比例直到发布给所有用户。分阶段发布的应用就是正式版本,所以用户可以进行评价。如果您收到反馈发现有明显问题,那么受影响的只是这一部分用户。您可以及时修正问题再发布新版本。已发布的版本不支持回滚,但在不得已的情况下,您可以把之前的版本仅升级版本号重新发布。

Cloud Test Lab

Cloud Test Lab 是一个还没有正式开放的新服务,你可以在 Play 开发者控制台上申请试用。它可以让你在物理或虚拟设备上进行测试,并且与 Google Play 和  Android Studio 集成。

小结

在设计阶段,利用 Material Design 设计原则和相关工具可以让你以较低的成本实现高质量的应用设计。在开发阶段,请尽快适配 Android 6.0 中新的权限模型和省电模式;利用 Android Studio 的各种功能可以协助你做好开发和测试。最后,在发布阶段可以利用 Google Play 的 Beta 测试和分阶段发布功能将测试和发布掌控在自己手里。最后,请观看下面的中文视频讲解(YouTube优酷) :

作者:韩国恺

除非特别声明,此文章内容采用知识共享署名 3.0许可,代码示例采用Apache 2.0许可。更多细节请查看我们的服务条款


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值