2019年的Android开发,我的求变之路

在这里插入图片描述
移动开发并没有变凉,更没有很多人唱衰的“罗曼蒂克消亡史”那么惨烈,它只是和互联网行业一样,泡沫逐步散去,开始进入了理性的下半场。

这里我想和读者分享一下,在移动技术的下半场,我们要如何去找寻自己的技术方向,如何培养自己的差异化个人竞争力。
这里想说明的是,很多人在说裁员潮恐慌,担忧自己被裁,实际上是过度焦虑了。目前市场上还是有非常多好公司在招聘的,而且开的薪水基本能达到20K~50K,平均有14~16个月。
因此,我希望至少我的读者能够理性地去看待目前行业的发展,一方面不要无视行业正在发生的技术更迭,但是,更加不要一味地跟风唱衰。否则的话,就像毫无原则的 A 股散户,盲目跟着大 V 去频繁买入卖出,最终利息亏掉、甚至本金受损的,还是你自己。
有一句话说的好:总有大部分人在跟风焦虑,只有少部分人在默默牛逼。我们希望做的是那小部分人,能够理性看待趋势变化,同时保持客观冷静地自我成长。

那么,2019年的移动开发,要如何去摸索自己的前进方向呢?

2019的移动技术

谈到技术方向,很多作者会去大谈特谈一些完全空洞的未来十年的行业趋势;也有的会一味地鼓励大家转技术方向,转大前端、转后端、转AI;更有些人直接怂恿读者抛弃技术方向,转产品、运营,甚至离开互联网行业。在我看来,这些想法多少有些不负责任,并没有设身处地地考虑大家的实际情况。

下面阐述一下我的看法。

1. 不要轻易离开互联网行业

很简单,多数人来工作是为了挣钱的。而相比很多传统行业而言,互联网领域的薪资依然有着绝对的领先地位,而且,天花板也相对高很多,30岁左右,拿个阿里的P7、P8左右级别,或者去牛逼点的中型企业做技术管理,年薪一两百万问题不大,足够你应对个人及家庭的各种经济压力。相比之下,其他行业很难能保证这样的待遇。

另外,如果你觉得钱攒够了,还可以选择互联网创业,互联网技术的颠覆性决定了他有非常大的创新空间,而且这些年计算机技术不断发展,物联网、5G、AI、大数据等技术不断成熟并逐步落地,对于想创业的朋友有非常大的想象空间。

2. 不要轻易离开技术方向

有些读者技术做久了,遇到了瓶颈,就会考虑离开技术去做产品、运营。当然我并非否定这种选择,我本身是支持技术人去学习产品思维、用户思维。但是如果说直接抛弃技术去转产品,可能风险会很大。这意味着你要抛弃自己多年的技术积累,在一个新的方向从零做起,以后如果再想转回技术,可能已经要被淘汰了。

当然,也有成功的大佬转型成功,拼多多的黄铮就是技术出身,然后转产品,最后创业。如果你未来也打算创业,那确实可以考虑这样的一条路线。

3. 不要轻易更换技术方向

这一点就是最近几年移动开发领域一直在讨论的。有的想转大前端,觉得大前端要一统用户终端开发;有的想转后端,觉得后端有高并发高性能,感觉很有技术深度;有的想转算法、AI,觉得这是未来的趋势,一定要把握住。 这种思维就是我之前提的“散户思维”:看到哪个火就去买哪个,追涨杀跌。了解股票的朋友知道,这种往往不会有多好的结局。而我比较推崇的是“价值投资”:不要受短期波动影响,如果你看好某只股票,相信它内在的成长价值,就要长期持有,最终收益一定会高于大多数人。

不要觉得大前端、后端、算法这种就一定高大上,每个领域都是为业务服务的,他们也要写很多的业务代码,并不是天天都在忙着处理高并发、高可用之类看起来金光闪闪的问题。至于选大前端还是选原生,只不过是一种UI展示形式,最终做的都是业务开发,为你的简历带来不了多大的闪光点。

而移动端这支“股票”,我还是看好的。
换句话说,除非哪天用户都不用手机了,或者出现了比手机更牛逼的终端了,那时候才需要去担心自己的饭碗。但我觉得更有可能的是,就算到时终端迭代,手机淘汰,我认为新终端里面运行的操作系统,依然叫做 Android。

我的个人2019技术规划

下面结合下 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移动互联网
:1007478004,群内可以交流技术还不定期有Android进阶学习资料免费分享!

3. 端智能(移动端+AI)
这个可能有的读者了解不太多,这个领域是近两年开始逐步火起来的。基本的思路就是将 AI 算法的运行直接从拥有庞大计算能力的服务集群里,直接搬到 CPU 等资源有限的移动端,从而实现更高的实时性,促成算法实时落地生效。

基本流程就是在服务端进行大数据训练,计算出一套可运行数学模型,压缩下发到移动端;移动端实时采集当前用户的数据,输入到该数学模型里经过运算,立即获取结果。

端智能和常规 AI 相比的好处有:

  • 实时性:无需将数据上传至后端再等结果返回,如前几年的 Prisma App,将照片变成油画的过程是漫长的,如果它能实现端智能,那就算没有网络都能快速转换照片;

  • 个性化:这几年的推荐算法都是希望实现高度个性化,如果有了端智能的技术,就无需把你的浏览记录上传到后端去分析,而是可以在你一边看,一边本地就能立即计算出你的喜好,并为你快速排序、选择你感兴趣的内容;

  • 数据隐私:很多App会大量采集用户数据上报到后台进行用户画像分析,但在端智能下,完全可以对用户数据进行实时计算,提取特征,再把特征数据上报即可,无需上传用户真实数据。
    18年阿里内部专门成立了一个端智能团队,致力于研究端上AI的业务落地,目前已有的两大场景:

  • 视觉:这个在音视频场景下应用广泛,如抖音里的人脸识别、支付宝的扫福、淘宝的拍立淘等都是这几年大家都接触过的端智能技术;

  • 数据:这一块就是在端上实时采集用户使用数据,立即可以作出一些推荐决策,而无需把数据上传后台再去计算,省去这个漫长过程,实时的智能推荐往往比常规的推荐会更有奇效。

适应、突破、逆风成长

时代在变化,技术也在不断更迭。作为当今时代的一名技术人员,我们首先要学会适应变化,而不是被变化所淘汰。要不断去关注变化,同时作出反应。要敢于跳脱自己的舒适圈,突破自己的瓶颈,不断寻求新的技术成长点,在寒冬时期也保持学习、保持冷静,逆风成长。
自己是从事了七年开发的Android工程师,不少人私下问我,2019年Android进阶该怎么学,方法有没有?
没错,年初我花了一个多月的时间整理出来的学习资料,希望能帮助那些想进阶提升Android开发,却又不知道怎么进阶学习的朋友。【包括高级UI、性能优化、架构师课程、NDK、Kotlin、混合式开发(ReactNative+Weex)、Flutter等架构技术资料】,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

资料获取方式:加群Android移动互联网
:1007478004,进群即领取资料!!!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44941011/article/details/89848738
今日推荐