Android后期开发的几个方向

背景

从2008年左右移动端的兴起,到2012-2015年左右移动端的炙手可热,到如今各种“凉凉论”的现状,作为一个Android开发者,自己的思考以及别人的观点,写一些自己的看法,供自己参考。目前,大环境也比较差(好像每年都这么说),焦虑没用,说白了只有积累自己,厚积薄发才可能不被市场和时间淘汰。

移动端未来的几个方向

动态化

目前我们项目已经在尝试走组件化和插件化,前两年,插件化火起来了,为什么火呢,因为可以实现Android不用发布版本就可以热更新,但是插件化有自己的问题,就是兼容性。Android机型太多(马上要出折叠屏了),插件化框架难免要涉及到系统API的hook,兼容性问题就出现了,开发者会莫名其妙碰到各种错误,随着Android版本迭代,插件化这条路越来越不好走,Android P给了开发者一个信号,不能再随便hook系统API了,Google要开始整顿了。然后,另外一个动态化就是Hybrid开发了,利用H5和原生混合开发(目前最为流行的开发方式),例如老牌的Cordova,Facebook的React-Native(通过Jscore进行js解析,使得原生View进行渲染,提供桥机制调用原生的能力)。RN是第一个真正的高性能动态框架,它的出现让Web前端和客户端的界限变得模糊。随之而来的是各个大公司的自研框架,例如阿里巴巴的Weex和美团的Picasso框架,RN只提供了Android和IOS的支持,Weex扩展了思路,提供了Web端的支持,一个是React语法糖,一个Vue语法糖。另外,Google自己在2018年下半年正式推出了自己的跨平台方案—Flutter(前面Blog已经写过),通过Dart编写APP,然后编译成机器码运行在IOS和Android上,对开发者最好的是Hot reload,而且做到了原生跨平台。

移动端机器学习

毫无疑问,移动端机器学习从2017年年底就开始火起来了,TensorFlow 也推出了移动端框架,很多应用都开始在移动端部署机器学习模型,例如相机类应用(FaceU)、电商类应用(唯品会)等,包括离线的机器学习。
如果深挖这个方向,我觉得十年内不会被淘汰。当然了,难度也不小。

AR和VR

从支付宝的 AR抢红包、QQ的AR踢球等玩法被越来越多的人体验,AR走进了人们的视野。对于广告引流玩法来说,AR无疑是能带来巨大收益的。那么开发AR引擎的移动开发者自然成了香饽饽,目前AR主要应用的领域是广告变现,不过很多公司也找到了AR的一些落地场景,如果是研究OpenGL,计算机图形学的移动开发者,可以往AR引擎开发方向发展,非常有前景。

移动端音视频

这个领域最火的就是抖音了,还有各种相机,图片应用等都需要音视频开发领域的专业开发人员,图像处理,滤镜,剪裁等,研究OpenGL,计算机图形学的移动开发者在这个领域也有很大的优势

移动端区块链

在人人都知道比特币的时候,背后的区块链技术也得到了大家的拥护,区块链应用目前最多的还是数字钱包,但是未来应该会有更多的落地方式,例如Status。如果有移动开发同学对区块链方向感兴趣的,可以开始研究起来了。如果要学习智能合约开发的同学,我推荐一个非常好的网站:Cryptozombies,绝对是入门 solidity 智能合约开发的精品。

目前移动端的区块链人才还不多,各大公司也没有在招,但是两三年内,应该就会爆发了,现在还在探索落地场景的阶段,也给了对区块链技术感兴趣的移动开发同学学习的时间。改变世界的技术了解一下?

移动端基础框架

UI未来可能都会被动态化技术接管,但是移动基础框架不会。一个APP总要有网络请求,日志处理,ORM,缓存,PUSH等框架,这部分和UI关系不大,但是是组成APP不可或缺的部分。框架其实就是轮子,我们用轮子用的很溜并不代表你的代码能力很溜,而是人间写的轮子很溜,好的轮子就是无论开发者代码能力好坏,写出来的功能和性能都是差不多的,比如Retrofit,OKhttp等。在这些框架基础上P5和P7写的代码不会有多大差别。然后,轮子总要有人写,而且大公司的需求可能开源的轮子不满足,这时候就要自创轮子了。写轮子就需要开发者的知识深度和广度了,需要沉淀和学习。