Android 开发周报:中文 Android7.0 体验不佳、深入浅出 Retrofit

  • 郭亮

2016 年 6 月 11 日

话题:移动Android语言 & 开发架构

新闻

  1. 《谷歌测试计划开启,Android N 谷歌地图抢先用》:近日,Android N 开发者预览版本已经进行到了第三个,然而由于机型限制,许多人不能够体验到最新安卓系统的乐趣,如今谷歌为旗下地图应用开启了测试计划,我们也许能够借此尝鲜 Android 7.0 上的谷歌地图。
  2. 《谷歌测试 Android 新功能:空间不足会智能提醒卸载程序》:谷歌正在测试一项新功能,用户如果从 Google Play 下载应用程序,当剩余存储空间不足时,系统会通知用户。具体应该删除哪个应用或者媒体文件,或者干脆跳过新程序,完全由用户自己做决定。。不只如此,谷歌还会列出使用频率最低的应用程序,显示各程序占用的空间。程序的旁边会有复选框,用户可以挑选后删除。
  3. 《中文 Android7.0 体验:改进不明显,升级需慎重》:谷歌早前已经放出了 Android N(安卓 7.0)的第三个预览版,整体功能改进已经成形,之后应该就只是小修小补了。Android 7.0 的一些重要改进包括多任务窗口模式、快速回复通知消息、DayDreamVR 模式(目前还不能体验)、快速切换最近应用、新 Emoji 等,那么现在值不值得升级呢?国内已经有人体验了升级 Android N 后的 Nexus6P,得出的结论是目前该版本还存在较多的 bug,并且相较国内其它 ROM 功能改进并没有新意,建议用户谨慎升级。

教程

  1. 《深入浅出 Retrofit》:Android 开发中,从原生的 HttpUrlConnection 到经典的 Apache 的 HttpClient,再到对前面这些网络基础框架的封装,比如 Volley、Async Http Client,Http 相关开源框架的选择还是很多的,其中由著名的 Square 公司开源的 Retrofit 更是以其简易的接口配置、强大的扩展支持、优雅的代码结构受到大家的追捧。本文详细解析了 Retrofit 的使用方法及实现原理。
  2. 《Android 新布局方式 ConstraintLayout 介绍与学习资料》:在这次 Google IO 上,Android 团队为开发者带来了一个新布局方式 ConstraintLayout,它将大大改变今后的 Android 布局界面开发方式。它的目标是减少布局的层级,同时改善布局性能,还减少了使用 RelativeLayout 的复杂性。ConstraintLayout 即约束布局或限制性布局。它是一种新的布局方式,可以看做是 RelativeLayout 的增强,向下兼容至 API level 9(Android 2.3),并且是 support library 的一部分,也就是说,能兼容目前绝大多数的 Android 设备。
  3. 《“HTTPS”安全在哪里?》:在上网获取信息的过程中,我们接触最多的信息加密传输方式也莫过于 HTTPS 了。每当访问一个站点,浏览器的地址栏中出现绿色图标时,意味着该站点支持 HTTPS 信息传输方式。我们知道 HTTPS 是我们常见的 HTTP 协议与某个加密协议的混合体,也就是 HTTP+S。这个 S 可以是 TLS(安全传输层协议)、也可以是 SSL(安全套接层)。现在越来越多的 App 也开始使用 HTTPS 进行通信。本文为大家详细分析了到底 HTTPS 是如何保证安全的。
  4. 《Android 架构初探》:早期的 Android 开发者们并不怎么关注架构,代码都堆在 Activity 或 Fragment 里面,UI、业务、数据混合在一起,这就使得难以单独的复用和扩展、测试。随着项目逐渐变的庞大,为了降低开发和维护成本,以及将来可能要做的单元测试,需要对架构进行相应的调整。所以选择一个好的架构,对于 App 的长期维护非常重要,而 Clean 就符合好架构的所有条件,本文对 Clean 架构进行了详细介绍。
  5. 《Android 用户引导库 MaterialIntroView 使用及源码分析》:由于新功能引导在各个发布版间表现各异,几乎难以统筹。其次,功能引导具有塑造艺术的可能,直接导致每一个版本都需要单独沟通,而且变更几率较大,难以一次性审校通过。MaterialIntroView 是一款能解决这个痛点的开源项目,本文介绍了 MaterialIntroView 的实现原理。
  6. 《 浅谈 AndroidTV 开发与常规 APP 开发的异同点》:如今 Android 电视、Android 盒子已经逐渐被人们接受,国内已经有多家厂商生产这些产品。随着 Android TV 销售渠道的打开,开发 TV App 必然是另一个新的机会。虽然手机 App 与 TV App 都是基于 Android SDK 进行开发,但也有一些不同之处,本文作者根据自己几个月的 TV App 开发经验,总结了一些 AndroidTV 开发与常规 APP 开发的异同点。
  7. 《React Native 之底层源码分析篇》:RN 总共分为三层,java 层,C++ 层,js 层。RN 主要的通信在于 java 与 js 之间,平常我们写的 jsx 代码最终会调用到原生的 View。在 Java 层与 Js 层的 bridge 分别存有相同一份模块配置表,Java 与 Js 互相通信时,通过将里配置表中的 moduleID,methodID 转换成 json 数据的形式传递给到 C++ 层,C++ 层传送到 js 层,通过 js 层的的模块配置表找到对应的方法进行执行,如果有 callback,则回传给 java 层。阅读文章,了解更多关于 RN 的底层细节。
  8. 《如何调试 Android Framework?》:要想精通 Android 开发,仅仅能熟练使用 SDK 是远远不够的,Android Framework 层的知识是也必须学习。学习 Framework 层有助于我们理解 Android 的运行机制,能够帮助我们写出更加高效、优雅的代码。学习 Framework 层时,调试技能显的尤为重要,本文为大家介绍了如何调试 Android Framework。

开源项目

  1. RocooFix:该项目是 HotFix 项目作者的又一新作。之前的 HotFix 项目太过简单,也有很多同学用 Nuwa 遇到很多问题,作者也不再修复,所以重新构建了一套工具。
  2. material-tip:这是一个自定义的选择提示框,根据 Google 的offer education编写。
  3. material-design-dimens:该项目封装了 Material Design 指南上要求的颜色、尺寸等信息。使用该项目可以让我们在适配 Material Design 时,减少一些细节操作。
  4. MarqueeView:该项目实现了垂直跑马灯效果,可用于垂直翻页、公告滚动等场景。
  5. TimePickerDialog:Android 时间选择器,支持年月日时分,年月日,年月,月日时分,时分格式,可以设置最小时间(精确到分)。

感谢徐川对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

移动Android语言 & 开发架构