资深程序员解惑:Android发行多年移动App趋近饱和,Android开发还有好的前景吗?能者居之!

历史总是惊人地相似。

是的,任何一门技术,都是一定会被淘汰掉的。

这世界上有不死的人么?

听起来好像有点惨烈,但你必须接受这个现实,因为接受事实是第一步。生活总归是有希望的,在这样惨烈的背景下也还是有我们能做的事。你看身边好像还是会有那么一些人,挖煤挖了几十年还在挖。如果你觉得挖煤还不错,想好好挖这个煤那就要虚心学习那些老挖煤工人赖以生存的技巧。

当当当当,诸位看官请听我娓娓道来。

呔!谁会需要挖煤工?

啊,老板需要挖煤工!

老板要的,你给不了那又如何?

被淘汰呀被淘汰!

那为何有煤工挖了数十年?

因为什么煤都能挖呀都能挖!

为何什么煤都能挖?

对呀,为何他什么煤都能挖呢?

原来,永葆青春的秘诀就是:基础!

这应该是老生常谈的东西了吧,但好像只是"基础"两个字起不到任何帮助,所以我详细说说。

就以 Android 来说,属于移动端,你看Android,IOS,现在又出来一堆RN(当然,现在已经凉了 :D ),weex, flutter之类的东西。

前端的东西一年三变(这里的前端指包括移动端在内的大前端),你没有自己的判断,很容易就会迷失在一堆杂乱无章的 “设计模式”,“设计思想” 里,不知道什么是重点,然后被一堆技术忽悠忽悠得云里雾里,不知道要学什么东西

我打个比方,你在看Android的源码分析,实际上也就可以看到,他里面各种各样的View的工作原理实际上就是在一个叫 Canvas 的东西上用 Rect 之类的控件来画画,(这里我们不考虑动画之类的东西,因为其实动画也可以用 Canvas 做)。

嗯,这就是最精炼的Android绘制原理了。

其实 Flutter 里面也有同样的 Canvas,甚至你写 Web 前端也有一样的 Canvas,同样的名词出现在不同的地方,这是为什么?这个 Canvas 代表什么东西?

如果你基础 OK,就会知道,计算机显示的原理实际上就是在一块内存区输出数据。这个Canvas 你可以看做就是提供给 “高级程序员” 的接口。

如果你学 Android 不妨把它 Canvas 如何工作,常用的第三方库原理是什么,比如有些框架是做自适应的,他是怎么做到的?

造两个轮子,然后你就会知道 Android 里面设计有哪些是比较野鸡的了(抱歉,我居然说出了如此大逆不道的话 >_<)。

顺便想下原生的 Animation 是怎么回事,除了绘制,还有按键,触摸这些事情他是怎么做的,偶尔看看源码(其实源码是最不重要的,当然,这话要等你至少看过一套源码了才能这么说),看看书。然后你可以玩玩 Flutter,对比下 RN,做点东西,然后下一份工作你就不再投 “Android 开发” 岗,而是 “移动端开发负责人”,只要操作适宜,应该是可以过的。

当然,学习的时候很多东西都需要良好的计算机基础,而且需要花一些时间,当然其实也花不了多少时间。

小小的总结一下,正确的思路就是:

不要纠结他是 Android 还是 Bdroid,你要关心的是解决了什么问题

绘制,输入,操作(按键触摸),电量,IO,网络,每一个话题下都有无数细节:绘制层级/ 重复绘制,bitmap占用,预加载。

学习么,要学总是有很多东西可以学的。

学习方向

目前我们要做的就是选好自己细分领域深入研究,对基础原理性内容深入理解,尽快向高级水平靠近并达到。当然也要了解新技术,拥有开放的心态去学习一些新技术,不要一开始出来一个新技术就转入学习,这样会导致啥都会一点啥都不会,当然新技术是有一个发展过程的,不会立马流行和大量应用等它稍微成熟点。

这样你会少踩很多坑,也不要排斥它,完全不去理会和了解学习,正确的方式是简单了解这个技术产生是为了解决什么问题,有什么优缺点已经目前发展成熟度和应用范围,我们还是要多抓住技术的本质和基础,这样出现了新技术学起来也会很轻松,当然机会合适了再去学习它。 所以,找准自己的定位及细分领域。

这里我归类了如下几类:

1、应用层开发,不限于各种产品,主要还是Android原生开发,主要是各种性能优化。

2、嵌入式开发,不限于各种开发板子,物联网,智能家居,车联网/车载。

3、安全开发,不限于各种反逆向,反汇编,寻找安全漏洞。

4、音视频开发,不限于直播、点播、音视频通话、音视频会议,短视频等。

5、插件化、组件化、热修复开发,不限于自研和使用开源框架集成开发。

6、系统开发(Android),不限于Rom维护和FrameWork层定制需求。

7、图形图像开发,不限于OpenGL ES,EGL,GLSurfaceView,滤镜,美颜。

8、小程序 / 快应用

小程序是基于微信这个亿级流量入口所衍生出来的产品,而快应用,快应用是九大手机厂商基于硬件平台共同推出的新型应用生态。用户无需下载安装,即点即用,享受原生应用的性能体验,不过个人觉得,他已经凉凉了,小程序倒是挺看好的,腾讯这座大山,微信这座凉亭,你想不凉快都难,不过看你是否刚需,比如你公司有需求,那你可以去学习。

推荐学习的新技术,Flutter和Kotlin,这两个都是Google推荐的。

系统学习很难吗?

自己去制定系统的一个学习计划可能是比较难的,所以文章最后我给大家准备了一份系统的学习思维导图,还有相关的学习资源,这些资料也都是我开发这么多年一点一点的累积整理出来的,今天完全无偿的分享给大家就是想今年寒冬我们程序员能好过一点,希望大家都能工作顺利,事业有成。

首先是超级详细得不能再详细的Android开发学习思维导图,因为图片实在是太大了,所以我就只把二级目录的内容放出来,更加详细的你们可以私信我获取

接下来就需要梳理知识,提升储备了!(Android移动架构师七大专题学习资源)

  • **架构师筑基必备技能:**深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO

  • **Android高级UI与FrameWork源码:**高级UI晋升+Framework内核解析+Android组件内核+数据持久化

  • **360°全方面性能调优:**设计思想与代码质量优化+程序性能优化+开发效率优化

  • **解读开源框架设计思想:**热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack

  • **NDK模块开发:**NDK基础知识体系+底层图片处理+音视频开发

  • **微信小程序:**小程序介绍+UI开发+API操作+微信对接

  • **Hybrid 开发与Flutter:**Html5项目实战+Flutter进阶

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。

然后再是通过源码来系统性地学习

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

再阅读前辈的一些技术笔记,帮助提升

刷大厂面试题备战,增加大厂通过率

历时半年,整理了这份市面上最全面的安卓面试题解析大全。

1.可以通过目录索引直接翻看需要的知识点,查漏补缺。

2.五角星数表示面试问到的频率,代表重要推荐指数

最后

考虑到文章的篇幅问题,我把这些问题和答案以及我多年面试所遇到的问题和一些面试资料做成了PDF文档

喜欢的朋友可以关注、转发、点赞 感谢!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
492882.png)

最后

考虑到文章的篇幅问题,我把这些问题和答案以及我多年面试所遇到的问题和一些面试资料做成了PDF文档

[外链图片转存中…(img-gJ9kbbSM-1715412709740)]

[外链图片转存中…(img-C2D2E2jl-1715412709741)]

喜欢的朋友可以关注、转发、点赞 感谢!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值