references:
- http://android-developers.googleblog.com/2017/02/introducing-associate-android-developer.html
- https://www.youtube.com/watch?v=Yu2oGere_Mc
- https://www.udacity.com/google-certifications
- https://developers.google.com/training/android/
- https://cn.udacity.com/course/android-developer-nanodegree--nd801/
1. 出现的目的,满足什么东西
从Introducing Google Developer Certification: Become an Associate Android Developer - Google I/0 2016中可以了解到一些背景:
- 这是一个名为“Android开发者合伙人”的认证项目
- 这是来自Google Developer Training的一个项目
- 来自官方认证的Android Developer标准
2.包括哪些方面的内容
在What does the exam cover?中可以看到整个项目由四个典型步骤构成:
准备学习工作、参加测试、提交并由专家评定、失败或者Pass,获得证书
考核的范围:
测试和调试、UI和UX、应用基础组件、数据持久化存储、增强性的系统整合能力
2.1 测试和调试
编写测试代码来验证功能逻辑以及UI的能力是最需要具备的。知道如何使用开发工具执行测试代码。报考者需要找出一些crash的bug、内存泄漏、布局错误等问题。包括使用debugger调试代码,验证预期行为。
- 编写和执行JVM单元测试
- 编写和执行设备的UI测试
- 根据给出的错误场景描述,用代码重现
- 调试和修复一个uncaught exception
- 调试和修复一个activity lifecycle问题
- 调试和修复一个关于view数据绑定的问题
2.2 UI和UX
实现一个APP用户可以导航菜单相关的UI布局。包括使用XML和标准的UI组件或自定义组件实现布局的结构。报考者需要具备使用Style、theme来运筹整个APP的视觉一致性。
- mock up主屏幕和APP跳转流程
- 能够描述UI、后台任务和数据存储之间的交互
- 使用XML或代码编写布局
- 创建自定义组件并应用到布局中
- 实现自定义的APP theme
- 在公共组件中使用自定义theme
- 定义一个RecyclerView的item list
- 在RecyclerView列表中绑定本地数据
- 实现基于menu drawable或drawer的导航界面
- 为应用的现实性文本实现多语言
- 为view添加功能障碍人士可识别的内容
- 为自定义view添加可访问的hooks
2.3 应用基础组件
理解Android最上层的应用组件(Activity,Service,Broadcast Receiver,Content Provider)和每个其lifecycle。报考者应该能够描述APP逻辑应该使用什么组件最适合,已经这个组件应该在前台还是后台执行。这个包括何时和如何执行后台任务的策略。
- 能够描述一个APP关键的功能性和非功能性需求
- 创建一个Activity,显示布局资源
- 在工作线程上使用Loader获取本地Disk上的数据
- 通过Loader把数据传输到界面
- 使用alarms设定时间敏感的任务
- 使用JobScheduler设定一个后台任务
- 在Service组件内执行一个后台任务
- 实现非标准的任务stack navigation(deep links)
- 在代码中使用support library
2.4 数据持久化存储
为本地数据持久化制定合适用例,以及设计使用文件,perferences和数据库实现数据存储解决方案。这其中包括静态数据与APP的捆绑,远程资源获取,管理用户产生的私有数据。报考者应该能描述Android platform的功能,保证APP安全地数据存储和跨APP数据传输机制
- 定义一个数据库scheme,包括表,字段和索引
- 创建应用私有的database
- 对DB查询返回的单列结果集结构化封装
- 对DB查询返回的多列结果集结构化封装
- 往DB插入一条或多条新的记录
- 更新或者删除已有记录
- 通过Content Provider为其他APP开放DB
- 读取和解析资源或asset文件
- 为用户输入数据创建持久preference
- 根据preference值切换应用逻辑
增强性的系统整合能力
通过使用通知和APP小组件等这些APP核心功能之外的接口实现对APP的能力扩展。通过这些元素保持向用户展示最新信息。报考者需要理解如何合理提供从外部接口过度到APP的主要功能流程,包括正确使用deep links。
- 创建一个APP小组件并展示在首页
- 实现一个能周期性地更新组件状态的task
- 创建并显示一个通知给用户
3.udacity 是什么?
深入一步搜索,发现它已经进入中国(我真是后知后觉- -),叫“优达学城”。通俗理解就是一个与企业合作提供线上培训学习、企业认证的服务网站。
其倡导几个points:“高等”教育资源应该要“开源”出来;学习不再是停留在读书时期,而是终生行为,或者说重新诠释“学习”;教育不应是让学生被动接受,而是引导其主动参与,通过实践有所收获,并且终生受用。
每个课程的中文叫“纳米学位”,有一定科技感的名字,第一印象是一个轻松、轻盈的形态,但影响力却是细致入微的。具体详情,还请去其官网好好了解吧。
4.如何看待,如何跟进
从个人来说,希望能获得这个证书认证。
从团队角度来说,通过考核内容,提炼skill要求,纳入团队skills规范中。
从市场环境来看,可以说是为企业寻找具备技术和产品大局观的开发者提供可靠的官方认证项目,一个桥梁的作用。
从整个社会角度来看,我认为是因为有需求,便产生了这个项目、服务。
后续跟进,待我去亲身体验一番再分享。