首页 存档 技术 查看内容

2016Android开发技术最全盘点

2018-3-30 13:00 |来自: 互联网 257 0

摘要: 2016年对于移动开发领域来说是颇受冲击的一年,Native开发面临着React Native、微信小程序等的冲击,再加上资本寒冬,想必想找移动开发初级工作的同学感受到了一丝凉意。2016年对于移动开发又是颇为精彩的一年,很多 ...

2016年对于移动开发领域来说是颇受冲击的一年,Native开发面临着React Native、微信小程序等的冲击,再加上资本寒冬,想必想找移动开发初级工作的同学感受到了一丝凉意。2016年对于移动开发又是颇为精彩的一年,很多公司都把自己最核心的技术开源分享出来,呈现出百花齐放的局面。在本文里,我将会一一盘点这些技术。

今年Android新版本7.0的出现要比往年早一些,在IO大会前两个月就发布了开发者预览版,与此同时还推出了Android测试版计划,学习微软的Windows Insider,让用户也能提前体验最新版系统。新系统最受欢迎的新功能包括Doze模式和增强的通知中心。

与Android相关的平台今年也获得更新,包括Android Wear 2.0,能够独立运行App;Android Auto,支持在手机上运行,将手机变成车载智能系统;Android Things,由之前的物联网平台Brillo更名而来,。

与开发者相关的新特性包括:

  • 新的Interpreter JIT AOT编译器。该编译器减少了应用程序安装时间和存储空间,并在手机空闲的时候编译代码的热点部分,提高性能。

  • Vulkan跨平台的图形和计算API。在2015年发布的Vulkan也终于植入到Android系统中。多窗口支持。还包括分屏、画中画等等。

  • 能免安装运行的Instant Apps,看上去是革命性的,据分析其原理可能和国内正在研究的插件化/沙盒技术类似,不过到现在也一直处于测试状态。

  • 渐进式Web应用PWA。这是今年Google重点推广的一项Mobile Web技术,大幅提升了离线使用、通知等体验。

在IO大会上还同时发布了Android Studio 2.2,它带来的新特性包括:

  • 将编译器替换成Google自己开发的Jack编译器,以及配套的工具链Jack and Jill。

  • 部分支持Java 8特性,包括lamda表达式,使用这个需要Jack编译器。

  • 新的布局方式ConstraintLayout和相应的可视化编辑器,可以看做是RelativeLayout的增强。它的目标是减少布局的层级,同时改善布局性能,还减少了使用RelativeLayout的复杂性 。

在中国市场方面,Google前不久刚在国内举办了两场规模盛大的开发者大会。发布了新的中文版开发者官网和开发者博客。不过,他们对于Google搜索、Play市场等何时返回国内仍然讳莫如深,从2016年年初就传言Google返华,然而整个2016年进展也并不大。


Android平台2017年预测


从今年的更新可以看到,Android的发展也逐渐步入平缓阶段,人们的目光更多的被Google发布的其它新奇有趣的产品所吸引,比如VR平台DayDream、智能助手和智能IM应用。有人甚至认为Android逐渐被边缘化,有可能被新系统所取代,比如前阵子传言的Andromeda。

不过我想说这种担心是多余的,Android仍然是Google最重要的产品之一,并且是其衍生品Android Wear、Android Auto等系统的基石,所以在近期不太可能有很大的改变。但是我们可以期待底层和工具上的大的创新,如ART运行时、Jack编译器。

另一个在明年可能带来很大改变的技术是Instant Apps,但是因为它很可能必须依赖GMS,在国内不太可能使用。但根据国内在这方面的技术积累,我相信打造相同技术规格、完全兼容的中国版Instant Apps不是难事,说不定明年国内手机厂商会将它作为重点功能进行宣讲呢。

最后,根据Android新版本的普及速度,明年Android 7.0才会逐步在国内推广开,于是开发者们终于可以开始学习Android 7.0的新技术了。

Android开发技术篇

2016对于Android开发来说是非常精彩的一年,黑科技频发,我们可以确定的说在Android应用层开发方面我们已经走在了世界前面。然而,其实很多黑科技都是形势所逼,并且其中一些和Google的官方政策相违背,这是目前热火的表象下的隐忧。


插件化


从去年下半年开始,Android插件化开始进入人们的视野,到今年,开源和分享开始爆发,插件化可以说是Android开发高级技术的集大成者,要掌握它需要对Android系统框架、App运行机制等足够了解,因此成为很多开发者追求的目标。

但是回过头来想一下,插件化的适用场景其实有限,多用于头部的超级应用,一般的中小型App没有必要适用,所以也没有必要盲目追求新技术。

插件化发展到后来,基本都开始追求免安装运行App,也就是沙盒/双开,在这方面我们也有一些商业应用出现,以及开源项目。

这里就推荐一些开源项目:

  • DynamicLoadApk 比较早的一款插件化项目,任玉刚等研发。

  • DroidPlugin 360手机助手推出的插件化项目。

  • VirtualApp 天才少年Lody推出的Android应用双开项目。

  • Small wequick推出的开源项目,包括Android和iOS双平台(iOS平台受限)。

  • DynamicAPK 携程出品的插件化框架,介绍见此。

  • VirtualAPK,滴滴出行推出的插件化项目,尚未开源,介绍见此。


热补丁


插件化并不是所有应用都需要,但是热修复却基本是正式的项目都想要的。热补丁与插件化的不同点在于,热补丁的关注点在对应用进行方法级的替换以达成修复。2016年Android的热修复取得了非常大的进展,不但有多家公司分享、开源了自己的热修复项目,而且还催生了商业服务。

这里就为大家盘点一下今年都出现了哪些热修复项目:

  • AndFix,阿里推出的开源项目,并且在其基础之上衍生了商业服务。之前阿里还推出一个

  • Dexposed,但由于一些问题已停止维护。

  • Tinker,微信推出的开源项目,在年中宣布要开源时就引起了广泛关注。

  • Amigo,饿了么推出的开源项目。

  • Qzone超级补丁,暂未开源,演讲视频和PPT见此,社区有人根据其原理研发了Nuwa并开源,现已停止维护。

  • QFix,手Q的热补丁项目,暂未开源,介绍见此。

  • Robust,新美大的热补丁项目,暂未开源,介绍见此。


RxJava


RxJava是JVM上的响应式编程框架,可以简化异步操作的代码,是Rx系列的一部分,去年年底国内社区开始有人布道,也有很多人分享,RxJava与Retrofit结合可以大幅简化网络操作的复杂性,因此也被人们广泛使用。

推荐文章如下:

  • 给 Android 开发者的 RxJava 详解

  • 是时候学习RxJava了

  • RxJava入门之实例解析

  • 如何测试RxJava代码


Android组件化


Android里的组件化是相对于插件化来说的,插件化追求插件直接完全独立,甚至插件本身是可独立运行的APK,组件化则是在组件独立开发,在编译时仍合成为完整App。

Android组件化的实践的代表是淘宝的Atlas,该项目将于2017年初开源。

  • 回归初心,从容器化到组件化

  • Atlas:手淘Native容器化框架和思考

  • Android业务组件化开发实践

  • Android组件化开发实践


Kotlin


Kotlin是老牌开发工具厂商JetBrains推出的一门JVM语言,也非常适合在Android项目中使用,今年推出了1.0版本,并在国内举办了一场线下开发者日活动。

Kotlin被视为Android平台的Swift,可以刷时髦值,从实际开发体验上来说,与JetBrains的IDE结合(Android Studio亦可)也非常不错。国内有些团队和个人已经开始尝试。但由于Java本身很完备,更换语言目前来说只是基于个人喜好。因此要想Kotlin流行,就像苹果推广Swift一样,我们也需要谷歌的推动才会让更多人有兴趣学习和使用。

  • Kotlin语言1.0Beta发布,JetBrain介绍其设计理念

  • Kotlin如何成为我们Android开发的主要语言

  • 使用Kotlin

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部