将近一年没写博客了,最近这一年写的东西有点杂,不像在魅族上班大把时间都花在 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 开发
将写成一个系列博客,总结开发经验,梳理知识点,主要会围绕 Jetpack
和 Material Design
。