Android - 现代 Android 开发之旅

将近一年没写博客了,最近这一年写的东西有点杂,不像在魅族上班大把时间都花在 Android 上。这次借助 Google I/O,又好好刷了一波 Android 新知识点

时间线

  • 2008 Android 1.0 发布,使用 eclipse 开发
  • 2013 AndroidStudio 发布,五年时间过去了,终于有了属于 Android 自己的开发环境
  • 2014 RecyclerView 发布,其高性能易扩展的特性,把 UI 开发带入了一个全新的世界,几乎所有界面都会用到它
  • 2017 ConstraintLayout 发布,让 View 更好的组织起来,且有更好的性能,能简单实现联动效果
  • 2017 Kotlin 正式成为官方开发语言,其空安全特性,各种语法糖等,对 Java 啰嗦语法说拜拜。
  • 2017 ArchComponents 发布,这是一个官方版本的 Android 架构组件,包含了 ORM,生命周期管理等
  • 2018 KTX,通过 Kotlin 扩展了系统 API,使调用更简单。

2018 Google I/O 把过去的发布的库都统一取了个名字 Jetpack,使用 Jetpack 开发 Android 应用程序就成了最佳选择了。如果不论你是刚学 Android 还是一名 Android 老鸟,都应该好好了解一下。

现代 Android 开发

Layouts

  • AbsoluteLayout 不建议使用
  • LinearLayout 可用,
  • FrameLayout 可用,margin padding 用于填充是可以的,但是不要是用 margin padding 来控制位置,这样就相当于是 AbsoluteLayout
  • GirdLayout 使用 RecyclerView 替代
  • RelativeLayout 使用 ConstraintLayout 替代
  • ConstraintLayout 推荐

AdapterViews

  • ListView
  • GirdView
  • Gallery

全部弃用,使用 RecyclerView 替代,可以做到更好的动画和颗粒度更细的更新

Fragments

Fragment 应该使用 support 包里面的,不要用 Android 包内的。

结合 ArchComponents: Navigation 控制 Fragment

Activitys

尽可能在每个入口使用单 Activity,然后使用 ArchComponents: Navigation 管理页面

架构

架构应该根据情况选你喜欢的方式,架构没有绝对的好绝对的坏,推荐的架构参考 android-architecture

生命周期管理

使用 ArchComponents: Lifecylce

数据

整个 App 的数据管理,应该使用一个基本的抽象模式。

抽象出一个 Repository 接口,方便单元测试和设计缓存

数据分页

使用 ArchComponents: Paging

图像

VectorDrawable 几乎可以代替软件要用到所有的图标

网络

首选 OkHttp ,毕竟 Android 系统的 URLConnection 都换成了 OKHttp 的实现

图片缓存

Glide Picasso Fresco 三大框架,任选其一即可,首选 Glide

总结

作为从 2012 年就开始学习 Android 开发的人,在 Android 上踩过不少坑,深知远古时代 Android 开发的痛苦。 Android 作为我的编程生涯中第一个系统学习过的 GUI 系统,现代 Android 开发将写成一个系列博客,总结开发经验,梳理知识点,主要会围绕 JetpackMaterial Design

Gavin Liu wechat
欢迎您扫一扫上面的二维码,订阅我的微信公众号!