2019很多互联网公司开始裁员,很多人可能觉的移动开发要凉了,其实并没有,它只是回归了理性市场,这里我想和读者分享一下,在移动技术的理性市场,我们要如何去找寻自己的技术方向,如何培养自己的差异化个人竞争力。
我的个人2019android技术规划
面结合下 2019 年的一些不错的移动开发方向,来谈一下个人今年的技术规划作为参考。
1.动态化
增强 H5 容器,基于 WebView,这种方案应用最广,成本相对最低;再加上国内自研的 WebView 内核如 UC 内核、X5 内核,可以实现较高稳定性和较低的平台差异化;近两年火热的微信/支付宝小程序目前也是采用这种方案;
基于 JsCore 进行 JS 与 Native 通信,进而实现动态化;以 React Native、Weex 为代表。它和 WebView 方案的区别是:前者使用 Native View 作渲染层,而后者通过 WebCore 解析 Html、Css 来实现渲染,前者的性能更优;
Flutter 方案,它抛弃了 Js,由于它和 Native 频繁的通信导致性能下降,而是采用支持 AOT(提前编译)的 Dart,后者在运行时速度更快,而 JS 是 JIT,即运行时才编译;另外 Flutter 直接采用 Skia 渲染引擎,跳过了 JS 和 Native View 的频繁交互,直接用 Dart 进行渲染,性能好很多。
动态化一直是移动应用追求的热点,无论何时推出新的动态化方案,都会是大家热议的话题,这也充分说明了这项技术对于各种业务类型的重要价值,值得大家长期投入时间进行研究学习。
2.移动端架构
我知道大多数同学的日常开发还是集中在业务开发上面,更多的是要么是开发 UI 页面或自定义 View,要么是封装一些第三方框架如 OkHttp 来做一些轻度定制。可惜的是,这样的开发经历算不上太多的亮点,尤其当你工作了三年甚至更长,这些反而会成为你的缺陷:纯业务开发、缺乏技术深度。
因此,我一直鼓励读者去深入学习移动端架构,不仅能够扩大你的知识面,更能够培养你的技术深度、思维的密度,能够考虑一套稳定的架构能够在各种各样复杂的场景下都要能够运行。而且,在移动端架构方面,很多大厂有数年的积累,我们可以通过去深入研究他们开源的技术框架和体系进行学习,有了这些研究,未来如果想进大厂就职,一定会是水到渠成的事情。
这里列一下架构的点供参考,后续可做相关研究学习:
•跨平台网关系统:例如微信的Mars,采用C++实现,内部封装长连接、弱网优化、加密验签、流量管理等通用化技术,产出的代码可以同时应用于多端,包括移动端、PC端等;
•高性能日志采集系统:能够在不占用过多CPU、IO等资源的前提下,尽可能多地将运行日志存储落盘,即时系统发生崩溃也要保证数据的完整性、安全性等,最后要能够对数据进行压缩甚至分片上报,或者通过长连接手动捞取;
限于篇幅这里不列举太多,感兴趣的读者可以关注我回复【学习】获取Android进阶学习资料
3. 端智能(移动端+AI)
这个可能有的读者了解不太多,这个领域是近两年开始逐步火起来的。基本的思路就是将 AI 算法的运行直接从拥有庞大计算能力的服务集群里,直接搬到 CPU 等资源有限的移动端,从而实现更高的实时性,促成算法实时落地生效。
基本流程就是在服务端进行大数据训练,计算出一套可运行数学模型,压缩下发到移动端;移动端实时采集当前用户的数据,输入到该数学模型里经过运算,立即获取结果。
端智能和常规 AI 相比的好处有:
•实时性:无需将数据上传至后端再等结果返回,如前几年的 Prisma App,将照片变成油画的过程是漫长的,如果它能实现端智能,那就算没有网络都能快速转换照片;
•个性化:这几年的推荐算法都是希望实现高度个性化,如果有了端智能的技术,就无需把你的浏览记录上传到后端去分析,而是可以在你一边看,一边本地就能立即计算出你的喜好,并为你快速排序、选择你感兴趣的内容;
•数据隐私:很多App会大量采集用户数据上报到后台进行用户画像分析,但在端智能下,完全可以对用户数据进行实时计算,提取特征,再把特征数据上报即可,无需上传用户真实数据。
18年阿里内部专门成立了一个端智能团队,致力于研究端上AI的业务落地,目前已有的两大场景:
•视觉:这个在音视频场景下应用广泛,如抖音里的人脸识别、支付宝的扫福、淘宝的拍立淘等都是这几年大家都接触过的端智能技术;
•数据:这一块就是在端上实时采集用户使用数据,立即可以作出一些推荐决策,而无需把数据上传后台再去计算,省去这个漫长过程,实时的智能推荐往往比常规的推荐会更有奇效。
今天就写到这里,感兴趣的读者可以关注我,谢谢!