【架构师进阶之路】从哪里来,才能知道未来到哪里去

回顾

我们总是在为了生活奔波,渐渐的迷失在了其中,但我们必须清楚的知道自己从哪里来,才能知道未来要到哪里去

入行之后遇到的一些事情

毕业出社会,开始 Android 开发之旅

毕业之后,进入了一家小公司;在这家公司工作的几年,技术栈一直没怎么变过,就是传说中的 SSH,也不是说 SSH 不好,Spring 不是也火到现在么,问题是:“大部分工作都在做增删查改,而且是并发量、数据量都非常低的增删查改”

更可怕的是,在这种环境中工作久了,可能会让你有一种自己很厉害的错觉, 因为数据量很少,几百万几千万的数据量,加个索引就查询的很快了,只要自己知道如何避免索引失效,就已经打败了 90% 的队友,因为你的眼界已经变窄了

我自认为还算是个努力的人,一直是单位中技术能力的 “佼佼者”,但是我心里知道,我这点儿能力拉到外面去根本是个渣渣

“心存敬畏,放宽眼界”, 我一直这么告诉自己

跳出当前的圈子,寻求更好的发展

当年我在这个小公司已经爬到了一个技术工程师的位置,但我并不为此感到自豪,我想要去往大城市发展,只有这样才能学到更为前沿的技术,于是我准备跳槽,但当我准备跳槽的时候我意识到自己的一个很大的问题:时常感觉自己没有准备好,面试的时候会不会被鄙视,我还是刷一个月的题再去吧;一个月之后,感觉不懂的东西更多了,然后继续准备

因为这样,我也错过了很多的机会, 有朋友内推我去面试,我后来都已各种理由推掉了;后来我发现,很多朋友也有这样的问题,老是怕面试过不了,所以干脆没有去面试

所以必须要在 “平时做好准备,机会是不会等到你做好准备了才来,看到机会就上!就算没做好准备,也硬着头皮上去试试”

后来我终于下决心必须跳槽了,最后面试了几家公司,通过率还算不错;有时候被面试官秒杀,有时候秒杀面试官

进入腾讯;开始架构师进阶之路

经过自己的努力,终于面试通过,拿到了 offer ;在进入腾讯之后,我被分配到底层开发的业务中,也是由此打开了自己的眼界

腾讯有着多款亿级用户的产品,复杂的业务常常会遇到各种意想不到的问题,这些问题需要深入底层,对安卓系统的整个架构都比较熟悉,才能够解决

上面这张图想必大家都看过,是 Google 官方提供过一张经典的架构图,其中每一层都包含大量的子模块或子系统

之前我始终停留在一二层,不得寸进;但在进入腾讯这一时期,对此终于有了纵深的实践经验

比如帮业务方解决一个内存问题,除了要了解内存指标监控方式,还要知道分析不同类型内存使用的工具及基本原理,最后知道是哪里出了问题后,还要想如何进行体系化的工具,降低学习成本,提升排查效率

问题驱动是非常好的学习方式;每次帮助业务解决一个新问题,我的知识库都会多一个点,这让我非常兴奋;之前不知道学来干什么的 Linux 编程、Android 虚拟机,终于在实际问题中明白了使用场景,学起来效率也高了很多

对 Android 开发未来发展方向的展望

Android 发展至今,已成为全球用户量最广泛的移动操作系统,手机行业竞争异常激烈,经过几番洗牌,国内手机厂商主要是华为、小米、 OPPO、VIVO 四大公司,并且随着移动互联网增长见顶,国内 Android 开发的需求也越来越少;那么Android 的未来在哪里呢?

目前,Android 在应用层次的发展已经见顶,未来的发展主要集中在人工智能和 5G 结合的产业,智能汽车、智能家居、 IOT都将是 Android 发展的广阔市场;但就目前人工智能的奇点还没到来,技术还处于前期阶段,一旦奇点来临将会爆炸式发展,或将重新定义生活方式

汽车的智能化和互联网化是未来一大趋势, Google 这两年确实在汽车领域发力,Android Auto 在过去一年的用户增长250%。天生的移动特性加上越来越多的互联网服务需求,汽车需要一个具备多种感知能力的系统,或将成为是继手机、电视后 Android 的下一重点开拓领域

那么我们应该如何跟上这一未来趋势呢?

首先我们可以通过上面 滴滴出行招聘信息 中了解到车载开发所必须要学会的就是 Framework 源码 的学习;而 Framework 源码 中又包含了 Handler 、Binder 、AMS、WMS 等 重点学习对象

那么我们就必须要有一个好的学习方向,这样才能在其中不走弯路,从而精通 Framework ,以此来抓住这一新时代的机遇;所以在这里,我分享一份由腾讯大佬所整理的一份Framework 学习笔记;有需要学习笔记的朋友:可以私信发送 “笔记” 即可 直达获取希望大家看完之后能给大家一些帮助

内容展示如下:

《Framework 学习笔记》

《Android 车载工程师必修知识》
  • 开发汽车媒体应用
  • 构建车载媒体应用
  • 配置应用的清单文件
  • 创建媒体浏览器服务
  • 启动播放控制
  • 支持语音操作
  • 实现注意力分散预防措施

  • 构建 Android Auto 即时通信应用
  • 导入 Android X 核心库
  • 声明 Android Auto 支持
  • 构建车载导航和地图注点应用
  • 测试 Android 车载应用
  • 分发 Android 车载应用

《应用程序与 AMS 的通讯实现》
  • 从应用程序进程到管理者进程
  • 应用程序进程向管理者进程发送消息
  • 从管理者进程到应用程序进程
  • 管理者进程向应用程序进程发送消息
  • 用户进程接收消息

《应用进程与 WMS 的通讯实现》
  • WindowManagerImpl & WindowManagerGlobal
  • ViewRootImpl
  • 从应用进程到管理者进程
  • 从管理者进程到应用进程

《应用进程之间的通讯实现》
  • 服务端编写 AIDL 文件、编写 Service、声明 Service
  • 客户端编写 AIDL 文件、绑定服务,并调用
  • IBinder实现原理

《Handler机制之Thread线程》
  • 线程概念
  • Android线程的实现
  • 线程的阻塞
  • 关于线程上下文切换
  • 关于线程的安全问题
  • 守护线程
  • 线程的内存

《Binder机制之Linux基础》
  • Linux介绍
  • 开源发展实验室和Linux基金
  • 内核态与用户态
  • 为什么要有用户态和内核态
  • 红黑树 数据结构设计
  • Linux的跨进程通信(IPC)概述
  • Linux的跨进程通信详解
  • Linux的几种跨进程通信的方式的比较

完整版PDF文档获取方式: 私信发送 “笔记” 即可 直达获取

既然选择了程序员这个行业,那么你一定要做好充足的准备;要想在人前显贵,背后所付出的辛劳和汗水就是必须的

Android 架构师之路还能漫长,与君共勉

猜你喜欢

转载自blog.csdn.net/m0_62167422/article/details/128026099