ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

现阶段 Android 行业真的凉了吗?到底该不该继续学习深耕?

2021-12-08 20:34:10  阅读:165  来源: 互联网

标签:该不该 深耕 APP 程序员 开发 Android 优化 安卓


利益相关,吃这碗饭的安卓开发来答一波。

首先标题这个“Android行业”很迷惑,安卓只是个岗位罢了,谈不上行业。

安卓岗位的细分

安卓程序员有很多的小分支。虽然都叫安卓,但这些分支之间干的是不同的事情,分支和分支之间甚至很难互相转换,你可以当成是不同的岗位。

那么有哪些分支呢?

安卓原生APP程序员:就是最简单好上手的那种,烂大街的那种。四大组件了解一下,消息机制了解一下,界面绘制了解一下。成了,可以进外包公司流水线生产APP了。

这类程序员是门槛最低的,做的事情大多是流水线业务逻辑,技术很难随着时间自然提升,工资上不去,还会被跨平台框架挤占生存空间,是安卓细分岗位里最卷的。原生安卓APP什么牛鬼蛇神都想做,无论大小公司都有这个岗位。属于僧多粥也多。

安卓系统工程师:就是开发MIUI啊,EMUI啊,Flyme啊,这些厂商ROM的程序员。他们需要熟悉framework层。但实际工作内容也只是拧螺丝的。工资能比上面的APP程序员高个30%-50%左右。但是门槛相对较高,毕竟自己做系统的不说都是大厂,那体量也小不了。

安卓软件架构师:架构这个东西听起来好像很牛逼。我没见过活的架构师,但是我设计过软件架构。架构师给我的感觉就是负责造轮子的。给软件搭建好整体的骨架,给下面拧螺丝的人提供好用的工具和封装类,大大提高拧螺丝的效率。

架构师的门槛比上面的系统工程师门槛更高,工资两个W起都是常态。而且这个岗位属于不会经常变动的,一旦变动必是跳槽,工资蹭蹭蹭就上去了。

物联网安卓工程师:和物联网打交道的安卓。开发内容一般和什么串口啊,协议啊这些东西相关。代码一般跑在工控机这种东西上,系统一般是AOSP。有时候还要去改系统源码。可以视为完全是一个崭新的领域,和安卓本身的关系不是很大,主要是因为安卓的跨平台特性让人们选择它来做物联网,但实际上安卓做起物联网来问题也蛮多的。

大多数安卓程序员不会选择这条路。导致这个岗位招人很难,招到的人基本都是安卓APP程序员转过来的。而且岗位工资比较随意,一般看公司自己对这个岗位的理解,不像前面那仨有个基本盘对比。而且有的HR根本都不知道这么个岗位,毕竟很少听说。

安卓要凉了吗?

针对上面这几个细分岗位我们来说说安卓会不会凉。

首先显而易见的是系统工程师和架构师基本是铁饭碗,只要安卓的生态没死,只要厂商ROM还存在一天,这个岗位肯定就有饭吃。

物联网安卓程序员也比较稳,因为开发物联网项目,安卓就是最优解。有人会说“Linux也可以啊”,当然可以,但是Linux程序员门槛远高于安卓程序员,而且会写C的要的工资都不会低,再加上Linux的发行版细分简直是灾难级,综合这些因素,大部分公司最后还是会选安卓。

最危险的其实是安卓原生APP程序员,也没有到要凉了的地步,只是粥没以前多了,僧却还是多。有很多人没有进入这个行业之前根本不知道还有H5,uniapp,flutter这些跨平台APP,以为跑在安卓手机上的全是安卓APP。

现在原生安卓APP的生存空间被uni和H5挤占了很多。这些跨平台框架可以实现一份代码跑两端甚至三端四端,能大幅减少人力成本,资本家的最爱。就算uni和H5性能不够了或者SDK不支持这俩平台做不到,没关系还有flutter呢,直接塞原生代码进去,还有谷歌背书。

所以说现在最凉的其实是门槛最低的安卓原生APP工程师,对其他岗位影响不大。

那iOS怎么没凉?

很容易想到跨平台不止影响安卓还会影响iOS。那么为什么iOS没有出现要凉了的论调呢?

很简单,因为幸存者偏差

iOS程序员的工作很纯粹,就是写APP,没有其他杂七杂八的细分。而且iOS程序员本来就属于僧少肉多的情况,竞争对手少,起步价还高。天然压安卓一头。

iOS开发必备MacOS,大部分iOS开发都是用白苹果的。不得不承认iOS开发家底普遍比安卓大。就算iOS卷起来了,大规模失业找不到工作行业工资跳水,也不会到处怨声载道。人家家底大啊,不就失个业多大的事嘛,换个岗位继续干就是了。

(只是对大环境的概述,肯定不是所有人都符合这个描述,也有iOS开发是省吃俭用才有设备能做这个的。此处并不想一杆子打翻一船人。此处探讨的是大环境,大环境,大环境。请不要对号入座。)

安卓呢?基层写APP的安卓程序员,本来就没几个子儿的家底,工资拿得还少。被uni卷得饭都没得吃了,这不得口诛笔伐讨伐跨平台。于是你就会听见很多说“安卓要凉了,工作不好找,卷得太厉害,现在都不要安卓了。”这样的论调。因为本来僧多粥多的市场环境,被跨平台搅和以后,变成了僧多粥少,大量基层安卓程序员没了工作也找不到新的工作,他们甚至不知道还有其他门槛更高的安卓岗位的存在,或者是觉得那些岗位离自己太遥远,于是就觉得安卓要凉了。

技术方向的选择

以下的Android技术方向以及其包含的知识点,都整理了一份笔记,有需要的可以找我拿:

获取地址:Android技术交流

架构师筑基必备技能

目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。

JAVA知识要点:
1、 Java序列化、泛型与反射
2、虚拟机底层原理
3、Android内存原理
4、 Java高级并发原理详解
5、 编译时技术掌握与实战
6、JDK高级动态代理
7、高级数据结构与算法
8、 Java IO操作

。。。。

Android R FrameWork源码与UI

在Android中,Framework泛指系统架构层。Framework的中文意思是“框架”,在软件开发中通常指开发框架,在一个系统中处于内核层之上,为顶层应用提供接口,被设计用来帮助开发者快速开发顶层应用,而不必关心系统内核运行机制,通常Framework都会隐藏main函数等应用程序必须的组件,开发人员只需把精力放在功能代码的实现上。说简单点,Framework具体的工作也就是为android应用开发的开发人员提供了一系列的服务和API的接口。

UI其实并不是单纯指用户看到的效果。因为在Android开发中,每个控件背后都有一套深层次的体系在支撑,自然而然,会UI不单纯指的是会自定义控件,我们还应该知道自定义控件背后的执行流程,包括从Activity的创建,XML的解析,到每个控件的测量、布局、绘制。当然在中间还夹杂着比如动画、事件分发机制、嵌套滑动机制等知识点。还有谷歌提供的一些UI框架也使我们要掌握的对象,比如Jetpack组件库、Material Design等。

知识要点:
1、 FrameWork源码解析(SDK 30)
2、Android常用组件深入解析
3、JetPack全家桶
4、Android R新特性解析
。。。。。

大厂内部APP调优方案

性能优化是一个项目必须要经历的过程,你的应用好与坏都是在用户使用的过程中反映出来的,如果性能优化没有做好,对于你的应用来说影响是非常大的。尤其是现在的Android市场竞争非常激烈,如果你的应用体验没有竞品的好,那么用户流失是必然的。

性能优化不是一件简单的事情,每个应用的性能好与坏无法由一个人来决定,因为性能优化的维度有太多了,从我们项目的整体架构,到我们代码的每一个细节,再到应用使用环境的测试,只有步步为营,才能做好一个项目的优化。大部分开发者把性能优化指向与不闪退就行,但是实际上性能优化包含了很多方面,比如从简单的启动优化、 UI优化、 卡顿优化、 崩溃优化、 安全性优化,到深层次的弱网优化、 大图加载优化、 储存优化、 高效传输优化、 极限瘦身优化,再到实际开发过程中的OOM问题原理解析、 ANR问题解析、 Crash监控方案。要想把这些优化流程做好,我们不仅从项目架构、代码规范等方面入手,还用学会利用第三方的检测工具来检测项目性能,最主要是,我们需要一套完整的性能优化方案,这正是我们所缺少的,所以我们必须要把缺少的补上, 打造一套真正的完整的性能优化体系,把性能优化流程化,常态化。

1、 APP基础优化
2、APP深度优化
3、开发焦点问题优化
4、编程效率优化
5、项目实战
抖音在APK包大小资源优化的实践
优酷响应式布局技术全解析
网络优化
手机淘宝双十一性能优化项目揭秘
高德APP全链路源码依赖分析
彻底干掉OOM的实战经验分享
微信Android终端内存优化实践

对标腾讯T3.3架构师

Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。

Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。

本篇知识要点:
1、架构师设计思想篇
2、 手淘全套架构设计与实现
3、 开源框架
4、OKHttp网络框架
5、一线大厂核心框架剖析与实现

NDK模块开发(音视频系列)

NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。

在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。

本篇知识要点:
1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习

Flutter学习进阶

2021 年无疑是 Flutter 技术如火如荼发展的一年。

每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。

本篇知识要点:
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门

微信小程序开发

微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。

本篇知识要点:
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战

获取地址:【Android技术交流】

标签:该不该,深耕,APP,程序员,开发,Android,优化,安卓
来源: https://blog.csdn.net/weixin_55362248/article/details/121800096

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有