了解我的人知道,我是一名不折不扣的 G 粉,一直在关注 Google,最近 Google 有一些小动作,可能很多人不太了解,借这个机会,给大家普及下。
而且断断续续有人问我一些这样的问题,比如:
- Android 的前景怎么样?
- 我想学习编程,到底学什么更好呢?
- 移动互联网已经走下坡路了,下一个风口是什么呢?
对于 Google 的一些动作,我有一些思考以及自己的看法,分享给你们,很可能看完之后以上问题就有答案了。
1. PWA
可能很多人没听过 PWA,PWA 是 Progressive Web Apps 的简称,意为渐进式 Web App 的意思,是 Google 在 2015 年推出的一个项目,致力于将网页 app 化,我们知道 Web 与原生应用各有优劣,而 Google 一直致力于 Web 与原生应用体验的***结合,而 PWA 就被寄予厚望。
简单来说,你可以把 PWA 理解成是类似微信小程序,所以业内也把 PWA 称为 Google 小程序,只不过 PWA 是系统级的,而微信小程序是基于微信生态的,而就在前几天,Google 官方博客宣布,PWA 会深入集成到 Android 系统中,并且将获得与安卓原生应用同等的待遇与权限,在即将到来的 Chrome 测试版中,PWA 不仅在主页有快捷入口,而且还会出现在应用列表以及系统设置中,甚至还可以收到推送,这意味着 PWA 将获得更接近于原生应用的使用体验,以下是官方的演示稿:
相较于刚推出没多久,只有三分热度的微信小程序,我更看好 PWA,相对微信小程序而言,跟 Android 系统深度融合的 Google 小程序更有想象力,毕竟微信 App 本身也得依赖于 Android 系统。
2. Android Instant Apps
说到 PWA,就不得不提到 Google 的另一个项目 Android Instant Apps。Instant Apps 是 16 年的 IO 大会上被提出来, 它的概念是这样的:你使用的是 Android 手机,朋友给你发了一个链接,这个链接是一个支持 Instant Apps 特性的应用,你点击该链接,将直接进入该应用,无须安装,之后就可以进行任何关于该应用的操作。
它的加载速度很快,它的加载方式会让你以为你在打开一个移动网页,然而它确是 Android 原生应用,我们来看下官方提供的一个演示稿:
看了这个图什么感觉?理解了没?
它的使用场景是,想想你的手机,是不是装了一大堆很少会用到的 App,无端的占用你很多内存与存储空间,但是呢,因为偶尔会用到,所以舍不得删。但是有了 Instant Apps 就不一样了,你以后需要什么 App,直接一个链接发过来,无须下载,无须安装,直接就打开使用了,而如果后面你觉得 App 的使用很频繁,你再考虑安装该 App。太酷炫了有没有?终于解放了手机存储空间,也不用忍受下载、安装的过程,甚至可以解决国内众多 App 后台的无良服务,简直不要太激动。
可惜的是,Instant Apps 深度链接的识别需要依赖 Google Play,然而众所周知,国内访问不了 Google Play,这个就成为***的阻碍了,不过前段时间网上传言 Google Play 可能会进驻中国,据说跟网易合作,由网易代理,但是官方没有任何说明,所以,我们只能 YY 这是真的,真心期待。
目前 Instant Apps 还在内测阶段,只有 Android 7.x 的设备才支持该功能,开发者只需要简单在代码中添加对 Instant Apps 的支持,编译打包重新上传应用就可以了,它的入口与 Instant Apps 的启用大概是如下图这样:
之前大家一直围绕 Web App 和 Native App 谁才会是未来的话题来争辩,Google 的 PWA 项目想让 Web App 更接近原生的体验,而 Instant Apps 项目又致力于让原生 App 拥有 Web App 的方便与即时性,似乎 Google 在移动网页与原生应用之间并没有明确的看好谁,反而是两手都在抓。
3. Andromeda OS
之前 Google 刚传要推出一种全新的操作系统 Andromeda OS 的时候,很多人问我对 Android 开发者的影响,我写了这样一篇文章「Andromeda OS 来了,Android 再见?」,昨天我看了一篇对 Andromeda OS 介绍的文章,原文地址在这:
https://techspecs.blog/blog/2017/2/14/googles-not-so-secret-new-os
这篇文章提到,Andromeda OS 将把 Android 和 Chrome OS 并进来,Web 应用和 Android 应用都可以在上面跑,而且文中提到,新的系统支持多种语言开发,C、C++ 用来开发底层,Go 用来开发网络,Java 用来开发 Android,Python 作为脚本,而该操作系统官方开发语言很大可能是...Dart!
对 Dart 语言不了解的可以适当的了解下,Dart 和 Go 一样,都是 Google 自家语言,看来因为跟 Oracle 关于 Java 语言版权的问题,让 Google 觉得还是使用自家语言最安全,很可能以后也会强推自家语言。
4. 思考
不止如此,Google 之前还发布了物联网操作系统 Android Things,以及刚刚正式发布的深度学习系统 TensorFlow 1.0,一切的一切,都充满想象力,Google 是想打造一个从 Web 到原生 App,到跨平台、跨终端的操作系统,再到物联网、人工智能,这是一个超级帝国啊。
而作为开发者的我们,对我们有什么启示呢?
首先作为 Android 开发者根本无须担心未来,毕竟亲爹 Google 太牛逼了,未来充满***想象力,而且 Android 很可能在新的平台发挥重大作用。
我个人认为人人都该学点编程,看看互联网这几年对我们生活的改变,几乎每个行业都跟互联网有关,毫无疑问,未来互联网依然会改变世界。
而对于想要学习编程的同学,我的建议是,保守点的选择 Web 前端或者 Android 开发,虽然目前市场大环境较差,但是 Web 前端跟移动端很长一段时间依然是主流。
对于已经从事编程行业,想要学习一门新语言,拓宽下自己的知识面,不妨学习下 Python、Go 甚至提前关注下 Dart,其实语言都是通的,学会一门编程语言,再学习另一个是很快的,难的是应用场景与平台的选择。
而如果对算法感兴趣的同学,强烈推荐选择深度学习领域,学习下 TensorFlow,尤其是还在读书,并且算法基础不错的学生朋友们,这些都是人工智能最核心的技术,但是门槛较高,不是所有人都适合学习的。种种迹象表明,继移动互联网之后,下一个风口浪尖很可能就是人工智能!
【本文为51CTO专栏作者“stormzhang”原创稿件,转载请联系原作者(微信号:googdev)】