Android 日新月异的技术
前言
在日新月异的技术世界里,Android 作为移动端份额最大的操作系统当然是紧紧的占据着第一线,也为 Java 这门语言注入着新活力
身为几百万的 Android 开发之一,有必要了解掌握 Android 的最新技术。(新技术包括近两年来非常受欢迎的技术及在未来极具潜力的技术,当前时间2016年9月15日,后续也会继续更新)
Android 版本
-
2008年9月谷歌正式发布了 Android 1.0 系统
-
中间版本略去不提及(Android L 发布尤其重要,可以说其带来的新特性尤其是新的设计规范带给 Android 新的活力)
-
2016年 Android 7.0 (Nougat)
虽然饱受碎片化的困扰,但新版本的更新率也在不断提高
Android N
Android迭代至今已经非常成熟,是移动端最成功的操作系统之一,而且保持着一年一次的大版本更新。2016年,Android迎来了以牛轧糖 Nougat 命名的 Android N(7.0) 操作系统,带来了数十项的更新优化
包括多窗口支持、通知功能增强、配置文件指导的 JIT/AOT 编译、快速的应用安装路径、瞌睡模式的增强等方面。
Google I/O 2016 上发布的 Android N 有哪些新特性?
Android Studio 编译器
I/O 2013 ,谷歌推出新的 Android 开发环境,基于 IntelliJ IDEA 的 Android Studio,以此来取代 Eclipse,并且不断更新至今。
在 IDEA 的基础上,Android Studio 提供了以下一些功能:
- 基于 Gradle 的构建支持
- Android 专属的重构和快速修复
- 提示工具以捕获性能、可用性、版本兼容性等问题
- 支持 ProGuard 和应用签名
- 基于模板的向导来生成常用的 Android 应用设计和组件
- 功能强大的布局编辑器,可以让你拖拉 UI 控件并进行效果预览
Android Studio 2.2
I/O 2016 ,谷歌推出了 Android Studio 2.2 预览版,按照谷歌的说法,本次更新包含了三个方面: speed, smarts, and Android platform support,言外之意就是更快、更智能,而且增加了很多有用的功能
-
Layout Editor
全新的布局编辑器 -
Constraint Layout
约束布局 -
Samples Browser
谷歌示例代码 -
Instant Run Improvements
改进的Instant Run -
Build Cache
编辑缓存 -
APK Analyzer
APK分析 -
Virtual Sensors in the Android Emulator
支持虚拟传感器的模拟器 - 除以上之外,此次更新还包括对 Java 8 的支持,Jack 编译器的改进,可以调试 GPU,改进了对 C++ 的支持等,推出了不少提升 Android 开发效率的工具,性能上也做了优化。
在2016年9月19日,谷歌推出了 Android Studio 2.2 正式版。Android Studio 2.2 来啦
Android Studio 3.0
Android Support Library
Android Support LIbrary 库是谷歌为提供不同版本的兼容包和兼容不同形态设备提出的解决方案,通过jar包引入,这是安卓开发者必须了解的内容。比如 v4 Support Libraries 被设计在 Android 2.3 (API level 9) 及其以上系统中使用,v7 Support Libraries 支持Android 2.1 (API level 7)及其以上版本,Design Support Library 配合 material design 设计等,最近的两次大更新:
Support Library 23.2
更新内容包括:提供对 Vector Drawables 和 Animated Vector Drawables 的支持,官方的夜间模式,Design Support Library 中 新增的 Bottom Sheets,RecyclerView的优化等
Android Support Library 23.2:特性介绍
Support Library 24.2
更新内容包括:对 v4, v7 Support Libraries 支持范围�提升至 Android 2.3 (API level 9) 及其以上版本,并对他们进行了拆分,使得项目依赖减少
Android Support Library的前世今生
Material Design
质感设计,是由�谷歌推出的全新设计语言,这种设计语言旨在为手机、平板电脑、台式机和“其他平台”提供更一致、更广泛的“外观和感觉”。虽然距离 Material Design 设计规范的推出已有两年多之久,但它的提出足以让人兴奋不已,这是谷歌拿出的媲美苹果的扁平化设计。标志着不欣赏设计,对设计毫无感觉的�谷歌已是昨日
Material Design中文wiki
Materialup-MD设计灵感
语言
React-native 中文网
随着移动互联网的崛起,实现跨平台开发一直都是程序员的梦想。目前移动应用的跨平台解决方案也很多,而由 Facebook 主导的 React Native 是�最成熟,最优秀的方案之一。
React Native 是一个跨平台移动 APP 开发框架,基于 JavaScript 和 React 之上可以在多平台上获得完全一致的开发体验,提高开发效率。
Kotlin 中文网
Kotlin 是由 JetBrain 在2011年推出的一个运行在JVM上的语言, 看上去有点类似C#和Scala的结合,并且同为静态类型。作为一门JVM上的语言,可以轻松兼容Java,并且整个语言设计的非常轻量。
专注于互通,安全,简洁,工具健全...可以实现 Java + Kotlin 的无缝开发。
因为是同为 JetBrain 推出,所以Android Studio对其有非常良好的支持性。
作为 Android 领域的 Swift,绝对让你如沐新风。抛弃沉重的 Java 语法,Kotlin 融入了很多现代编程语言的思想。如果你受够了 Java 的繁琐还有时不时出现的空指针错误,并且对高级函数式语言心生向往,kotlin绝对值得一试
开发模式
MVP
普通的 Android 开发模式可以定义为 MVC 模式,由 Activity 和 Fragment 充当着 Controller 的角色。
由于 MVC 中 View 和 Model 之间的依赖太强,导致 Activity 中的代码过于臃肿。为了他们可以绝对独立的存在,慢慢演化出了 MVP。在 MVP 中 View 并不直接使用 Model,它们之间的通信是通过 Presenter (MVC 中的 Controller) 来进行的。
安卓设计模式示例
MVVM
数据绑定在 Windows WPF 和 Web 已经非常常见,它非常高效的开发效率,让你只关心你的数据和业务。对于庞大的项目而言有时 MVP 模式也无法满足简化系统开发的复杂度,MVVM 就显的更为重要了。
MVVM 可以算是 MVP 的升级版,将 Presenter 改名为 ViewModel。关键在于 View 和 Model 的双向绑定,当 View 有用户输入后,ViewModel 通知 Model 更新数据,同理 Model 数据更新后,ViewModel 通知 View 更新。
I/O 2015 ,谷歌推出了 Data Binding 库作为 MVVM 的框架,Model 将会自动更新 View 而无需经过 ViewModel ,可以最大限度的实现 ViewModel(Activity等) 和 View 的解偶。经过一年的发展,从Beta到如今比较完善的版本,从Android Studio 1.3到如今2.2的支持,可以说Data Binding已经是一个可用度较高,也能带来实际生产力提升的技术了
Data Binding入门篇
Data Binding高级篇
FLUX
Flux模式最大的特点是单向的数据流 unidirectional data flow ,它的 UI 状态更新模式继承了 MVC 模式的设计思想。 Facebook 开源的 React 系列(React.js / React Native)都是基于此模型。
Android Flux中文说明
Retrofit+RxJava
如果说让我选 2015 年最令人兴奋的 Android 技术的话,我一定会选 Retrofit + RxJava 这对黄金组合。Retrofit 是一个应用于 Android 的第三方网络请求库,拥有方便独特的接口定义,网络工具的高度集成,丰富完善的接口回调的特点,更重要的一点,它可以提供 RxJava 的回调接口。而 RxJava 是利用可观察序列和操作符来编写异步和基于事件的程序,十分适用于 Android 的线程机制。两者的结合是一份非常完美的网络异步请求框架。当然 RxJava 还有更广泛的使用场景。
RxJava的使用总结
Dagger2
依赖注入并不是什么新技术,但是使用在 Android 确实一个新的尝试。Android App 越来越被当成严肃的大型项目来构建,很多在以前大型服务器开发上使用的技术都被应用到了移动开发。Android 开发分模块开发,使用 Dagger 来松耦合模块。特别值得一体的是,Dagger 2 现在由 Google 亲自接管。
dagger2
Android热更新技术
发布版本的长周期高代价使得Android的热更新技术处于炙手可热的状态,虽然方案并没有完全成熟,或多或少都存在些问题,但各大公司都在积极摸索中。
QQ空间超级补丁基于DEX分包方案,使用了多DEX加载的原理,微信Tinker基于前者,差距在于提出了一个提供DEX差量包,整体替换DEX的方案,阿里百川HotFix基于Andfix,美团Robust原理类似于Instant Run。
Android热修复技术选型——三大流派解析
Android热更新方案Robust