这里记录一下在知乎回答的《Android 开发有哪些新技术出现?》。知乎连接在这里。php
原问题以下:html
Android 开发有哪些新技术出现?
能够从UI设计或者一些核心的算法之类的提及android
这是我回答的原文:git
第一次在知乎回答问题,感受有些战战兢兢,在大神云集的地方,生怕有些东西说错,让你们笑话。 题主提的这个问题,相信不少开发者都有本身的话要说。Android 的发展确实太快了,每一年的都有不少新东西出现,想要覆盖全部新东西感受也不太可能,我这里主要说一下主要的 Android 的主要新技术发展,其实了解 Android 的发展趋势,可能对开发者更有帮助。程序员

开发工具
- Android Studio: Google 官方放弃 Eclipse 和 Android Studio 普及。AS 虽然不算新,可是对 Android Studio 这个软件的更新速度快的惊人,有大量的新功能发布。例如支持不少注解代码提示注解、Live code template、支持自动生成 Parcelable 实现等等,做为开发者,持续关注这个更新列表 Recent Changes,必定会让你的写代码的生活更加美好。
编程“语言”
- Kotlin: 做为 Android 领域的 Swift,绝对让你如沐新风。抛弃沉重的 Java 语法,Kotlin 融入了不少现代编程语言的思想,做为开发者,接受新的语言,了解新语言的发展趋势,更有利于开阔你的思路和加深对语言的理解。在 Android 开发上,使用 Kotlin 并不会让你付出什么代价,为何不来试试? 使用Kotlin进行Android开发。
- React Native: 跨平台一直是程序员的梦想,并且移动应用的跨平台解决方案也不少,由于 Facebook 的参与和力推,让这个解决方案带上了光环。第一个用 React Native 开发的 App 已经在 Google Play 上架 Facebook 广告管理工具,据说 Android 的 SDK 也立刻会到来,React Native。
- Sky: 与 React Native 相似,使用 Web 开发语言来作移动平台的开发,虽然这个只是一个尝试,可是这是 Google 自身推出的,特别是在 Java 语言的使用上败诉以后,这可能会有一些做为呢,domokit/sky_sdk。
开发模式
- Dagger 2:依赖注入并非什么新技术,可是使用在 Android 确实一个新的尝试。Android App 愈来愈被当成严肃的大型项目来构建,不少在之前大型服务器开发上使用的技术都被应用到了移动开发。Android 开发分模块开发,使用 Dagger 来松耦合模块。特别值得一体的是,Dagger 2 如今由 Google 亲自接管。 Dagger ‡ A fast dependency injector for Android and Java。
- MVP:由于 Android 并无严格的业务和界面区分,项目一复杂,就很容易使代码陷入混乱。如今 Android 开发社区对 MVP 模式讨论愈来愈热,以为 MVP 是很是适合 Android APP 开发。MVP for Android: how to organize the presentation layer。
- RxAndroid: 函数响应式编程(Functional Reactive Programming)也不是新内容,RxAndroid 把 RxJava 带到 Android 环境中。不少时候,编写 Android 程序,你也能够当作是数据的处理和流动,换一种思想编程,曾经看起来很棘手的问题,瞬间就很优雅的解决了:ReactiveX/RxAndroid。
- MVVM:这是由于开始官方支持 DataBinding,把 MVVM 直接带到 Android 中。数据绑定在 Windows WPF 和 Web 已经很是常见,它很是高效的开发效率,让你只关心你的数据和业务。这也对 Android 开发来讲,无疑是一个很是重大的影响:android UI设计MVVM设计模式讨论?。
- 插件化:针对大型 Android 项目,不少 App 开始使用插件来分模块构建相对独立的功能。
- Hybrid:彻底使用 HTML 5 开发 App,目前还不成熟。可是折中方案在不少状况下是很是适合的,典型的就是微信,大部分信息展现都是经过 H5 来完成,同时经过 Hybird 方式,把 Web 和 Native 打通,提供给网页访问本地资源的能力。
UI设计
- Material Design:已经红遍了大江南北,这方面的讨论实在太多了,并且各类支持库都有了,特别是 Google 官方出了一个支持库 Android Design Support Library。
- Sketch 3: 这是一个专为设计移动端 UI 的设计工具,做为开发者,不用懂那么复杂的 PS 使用,也能够作很是专业设计:https://designcode.io/sketch
说了这么,感受还有不少东西没有说到,技术的发展是很快,咱们可能跟不上每一个细节,可是咱们会发现这些新技术,不少地方都是相通的。对于开发者,可以保持对新技术的好奇和兴趣时很是可贵的,参与到新技术中是技术修养,引领新技术的发展,那就是大神了。github