写点什么

Android 开发没有一技之长就废了吗?,flutter 通知推送

用户头像
Android架构
关注
发布于: 4 小时前


[](


)一、人到中年是怎样的一种体验?


================================================================================


两个字,孤独。


有段话是这样说的:


“所谓人到中年,就是时常会觉得孤独,因为一睁开眼睛,周围都是要依靠 TA 的人,却没有 TA 可以依靠的人。”


一位朋友在和我聊天的时候谈到今天遭遇的职业困境,长长地叹了一口气。


“从刚毕业那会儿工作到今天,从来没有想到过自己会走上这一步…”他感慨道:“倒也不是没有先兆,最开始是削减年终奖,到后来是工资缩水,那几年也都人心惶惶,有的人就选择了离开,自谋生路去了…”


“也有人劝我走,但是一来我的年纪也大了,转眼都快 35 了;二来我当年学的这项技术,如今整个行业都已经非常饱和了,出去了也不好找工作;三来我对这个公司多少还有感情,我和老张老李这些人共事了四五年了,大家相处的和一家人一样。怎么能说割舍就轻易割舍下呢?”


他说着,眼眶不禁湿润了。


[](


)二、断崖之痛


=======================================================================


Android 作为一个已经市场化十余年的技术门类,它必然早已经是成熟常态。这样的技术行业都不再会有爆炸式的增长。连同 Android 硬件、手机、平板等都会趋于稳定,再就是一个稳中逐步下降的趋势。对于这方面人才供需也会趋于稳定,市场对开发者的从业经验,项目背景要求都会逐步提高。


我心知肚明,我的这位朋友面临的职业困境用“断崖”来形容毫不夸张。


一方面,由于他这些年在公司过得比较安稳,再加上没有一个拿得出手的项目,意味着想要保持现有的收入跳到另一家,几乎是没有可能了;另一方面,新技术的涌现以及大批 90 后、00 后的崛起,让他面临着极为严峻的再就业压力。


多年以来,那句“没有一技之长是中年人最大的可悲”放在当今的时代背景下,似乎渐渐不适用了。


瞬息万变的技术圈对于我们这些从事技术工作的职场人提出了更高的要求,如果能尽早在原有技能基础上添加一些新的技能,形成“技能混合体”,则未来的职场竞争力会更强。


[](


)三、Android 开发人员应该掌握哪些技术?


=======================================================================================


这里我找来一则高级 Android 开发的招聘要求



这是小米在拉勾上的招聘要求,相当于 p5 到 p6 级别,除开学历的要求外,我们可以看到它在 Android 基础要求之外,把 JNI/NDK/Framework,甚至 JS、Server 端开发也作为了提升点,是全栈方向的雏形。我觉得大家可以经常在招聘网站里看看现在的企业需要什么技术,当然也不能把企业要求的都学了。我这里大致总结了一下,Android 开发人员的发展方向


第一,横向提升。


基于全栈发展的趋势,在自己擅长领域深入专研的同时横向扩展,不要关起门来闭门造车。而这里说的横向提升就是向全前端转型,在除了要在 APP 会 hybrid 开发(web、native、前端交互、硬件交互)之外,还要会 web 开发,微信小程序,H5。


比如服务端开发,我们做 Android 开发很多时候,要依赖于服务端接口返回数据,可以自己试着搭建一下,至少要对服务端的结构理论、服务与服务之间通信、聚合是什么样的流程也是需要有所耳闻。


第二,纵向重塑。


一直以来,做 Android 开发有这么两个说法,如果是做应用开发,往应用架构方向发展比较合适,如果是做系统层开发,往往底层驱动比较合适。这里我是比较赞同的,那具体应该学习什么呢?


1.移动架构:架构展示层: MVC、MVP、MVVM、Clean、Flux、Android Architecture Components;架构层:模块化->组件化->插件化->沙盒/双开技术,比如可以双开微信,类似 Docker, 每个页面都是插件,类似 Vue.js 中每个页面都是组件。


2.基础进阶:这个方向可能比较多,比如 VIEW、Android 动画机制、四大组件工作原理、多媒体技术等等。我们平常在工作中碰到的 View 滑动冲突问题、其实通过掌握 View 工作机制和 Android 触摸事件体系就能轻易解决掉。还有对于需要开发绚丽的动画效果,那么对于视图动画和属性动画一些特性必须有一定的了解。Android 中的四大组件工作机制其实底层应用的是 Binder 机制,我们不妨从 AIDL 这个接


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


口来了解 Binder。


JNI 和 NDK 开发也是比较常见,特别对于一些做 SDK 项目为主的,这一块开发流程也是需要掌握,NDK 开发(含 JNI)也是用人单位区分应聘者的手段之一,企业不一定要用到,但是可以通过是否掌握 NDK 来筛选人才。


3.语言学习开发语言:这里我要纠正一下学习语言不是跨行业,比如 Kotlin 可以说是 Android 世界的头等公民了。再有时下比较火的 Python 和 GO,另外做底层 C/C++是必不可少的。


4.源码:要求能看懂并且熟悉源码(自己选几个第三方库的也可以),要做到熟悉源码及其实现原理。并且要做到能自己二次封装(或自己贡献三方库)三方库。这样一来,你就会在维护中慢慢成为这个技术块的专家了。我觉得输出倒逼输入是一个不错的学习方式。


用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
Android开发没有一技之长就废了吗?,flutter通知推送