请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

houcx

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2010|回复: 0

【知乎】Android 开发有哪些新技术出现?

[复制链接]

222

主题

224

帖子

1123

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1123
发表于 2018-1-11 18:08:49 | 显示全部楼层 |阅读模式
作者:吴晶
链接:https://www.zhihu.com/question/32037895/answer/54486823
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

第一次在知乎回答问题,感觉有些战战兢兢,在大神云集的地方,生怕有些东西说错,让大家笑话。
题主提的这个问题,相信很多开发者都有自己的话要说。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 · GitHub
开发模式
  • 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 · GitHub
  • MVVM :这是因为开始官方支持 DataBinding,把 MVVM 直接带到 Android 中。数据绑定在 Windows WPF 和 Web 已经非常常见,它非常高效的开发效率,让你只关心你的数据和业务。这也对 Android 开发来说,无疑是一个非常重大的影响:android UI设计MVVM设计模式讨论? - M.A.G.I 的回答
  • 插件化:针对大型 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
说了这么,感觉还有很多东西没有说到,技术的发展是很快,我们可能跟不上每个细节,但是我们会发现这些新技术,很多地方都是相通的。对于开发者,能够保持对新技术的好奇和兴趣时非常难得的,参与到新技术中是技术修养,引领新技术的发展,那就是大神了。




作者:D-clock爱吃葱花
链接:https://www.zhihu.com/question/32037895/answer/228167214
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

碰巧看到这个问题,扫了一下大部分排名靠前的答案,发现有些还可以加以补全,我也来作答一发,其中有些答主已经指出的我就简单带过。
  • 插件化+热修复。 评论去不少同学提到,这里再加一票支持。关于这方面的技术开源案例也很多很多,大家可以自己搜罗。如:微信的tinker(热修复:https://github.com/Tencent/tinker),还有前不久滴滴刚开源的VirtualApk(插件化:https://github.com/didi/VirtualAPK)。
  • Data Binding。评论区不少同学提到,这里再加一票支持。
  • Kotlin。相比Java,Kotlin实现同样功能的代码量可以少到令人发指,并且还很好的处理常见的NPE(Null Pointer Exception)问题,2017的IO大会上,Google扶正Kotlin成为官方语言,前景一片美好;关于Kotlin的详细,可以参见我一篇旧文:走进Kotlin的世界
  • Support Design库。@高爷

    所提到的Support Design库例举了很多特效,这里再加一票,以及 @清沙

    提到的Palette也是一个好东西。这里补充一下CoordinatorLayout+BottomSheet、BottomSheetDialog这两个,轻松满足你像iOS一样从底部弹出一个View或对话框(网上找了个图,方便看下效果)。在实际开发中是比较实用的两个类。


  • 嵌套滚动机制。上面点名的Support Design库很多酷炫交互效果得以存在,全都依赖于这套机制,具体可以搜索关键字NestedScrolling
  • Lottie。由Airbnb开源的一套动画框架:https://github.com/airbnb/lottie-android。不仅仅支持Android,还涵盖了iOS、ReactNative、Web等平台,只需要UI设计者把按照Lottie的标准把效果做好,即可放到各大平台秀出酷炫的动画,轻松帮你实现各种酷炫动画效果。


  • ConstraintLayout。Google官方推出的一个约束布局,支持通过拖拽控件就可以达到实现各种复杂布局的效果,还要一直手写xml来布局么?还在各种Layout嵌套起来实现复杂布局么?有了ConstraintLayout来帮你,那些日子要开始一去不复返了。我在一篇旧文里面有提到更多,感兴趣的同学也可以看看:Android ConstraintLayout使用指南 。另外,据谷歌官方放出的测试数据,ConstraintLayout在测量/布局阶段的性能比RelativeLayout大约高40%,所以,没有必要太担心存在性能问题。


  • Android Architecture Components。Google今年出来的官方架构文档,比起之前在Github上放出来的MVP文档,我觉得这次的官方架构文档可操作性要强得多。除了更详细具体的指导,还有API层面的支持。具体详情请戳:https://developer.android.com/topic/libraries/architecture/index.html
  • Android7.0的分屏以及Android8.0的画中画(Picture-in-picture)。这里的效果大家可以上网上搜索视频看看。
  • ARCore。Google不久前才开放出来的,对标是苹果的ARKit,前些天简单的体验了一下,有兴趣可以看看这篇:Android Google ARCore尝鲜记录 。最后放段ARCore的官方视频,供大家观赏。
暂时例举的就以上这些了,有漏的到时候想到再补充吧。偶尔会在自己的公众号发些技术和职场的文章,大家要是也有兴趣的话,可以关注一下:技术视界(id:clock_life)。





来自:https://www.zhihu.com/question/32037895

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|houcx ( 京ICP备15004793号  

GMT+8, 2019-3-22 16:18 , Processed in 0.059699 second(s), 24 queries .

Powered by houcx! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表