基于目前市场表现,我们都知道下一个风口是 AI,但是作为一个移动开发者如何在即将来临的 AI 时代吃口红利呢。我的回答是:致力于做一个终身学习者,追本溯源去探寻代码世界哪些不变的道,你又会说了,哪些是道呢,简单举例下,比如编程思想、常用的设计模式、设计原则、算法和数据结构、网络通信机制、操作系统、重构原则、架构思维等等。同时在目前发展情形下,也越来越趋向全栈工程师的路线,借用之前在网上看到一篇文章的图,想进阶全栈工程师之路看需要哪些技能,如下:
从图中可以看到技能被分成基础软技能、技术软硬技能,不仅要熟悉移动端开发套路,还要对大前端技术栈也有一定要掌握,同时对于服务端开发流程也要了解,我们很多从事移动开发人员,基本一开始就是从移动端入手,对于服务端开发很多时候是没有概念,这些跟那种从服务端开发转型做移动开发相比起来就处于一定的劣势了,有些甚至不知道 Restful 是什么,还以为是一种框架呢,其实这仅仅只是服务端约定好的接口编码风格而已。
进阶之路
为何会想起写这么一篇文章呢,一方面这几天工作需要,组内正好想规划 Android 技术路线,简单来说就是目前我们组处在什么样的水平程度,目前所做项目用的技术处在什么阶段,在未来一年内,项目技术迭代该如何走,走到什么程度。另一方面是从事 Android 开发这几年,一直也没好好规划自己的技术路线,想认真整理下未来进阶之路。我们都知道 Android 技术体系一直很庞大,刚开始学的时候基本是从一个点一个点开始,没有系统全局观概念,同时也是学不过来,从做上层应用开始,到做 Framework 层,然后再到系统层做驱动开发各个层面的开发者都有,绝大部分开发者都是从应用层开发,往往做到 Framework 层就浅尝辄止了,一直以来,做Android 开发有这么两个说法,如果是做应用开发,往应用架构方向发展比较合适,如果是做系统层开发,往往底层驱动比较合适。
看张图:
挑些图中几个点简单来谈谈自己的一些想法。
移动架构
移动架构是 2017 移动技术年度TOP5话题之一,从中就体会到架构是有多火,记得刚开始学 Android 时候,哪有现在那么框架,那时候谈架构的更多是在服务端开发,比如多层架构,有展示层、业务逻辑层、数据访问层这就是最简单的三层模式,Android系统则是基于事件驱动响应机制设计的单页面架构,其实跟浏览器中的窗口页面是一样的, 系统中一直有个消息轮询监听机制,哪个事件被触发了,相应的响应代码进行处理,这些处理操作是被提前注册到系统中。
最早开始的开发模式基本是基于Android 系统自带 MVC 模式,Activity 基本类似于Control 的作用了,View 和Mode 互相耦合,后来才演化出现在主流的 MVP、MVVM 模式,顺便提一句,MVVM 模式其实是在微软 WPF 技术体系中提出来。
图中显示两个方面:
-
展示层: MVC、MVP、MVVM、Clean、Flux、Android Architecture Components
-
架构层:模块化->组件化->插件化->沙盒/双开技术,比如可以双开微信,类似Docker, 每个页面都是插件,类似Vue.js中每个页面都是组件。
性能优化
简单来说,一个APP 是需要从三个方面被关注的,业务功能、符合逻辑的交互、性能响应。如果我们在使用一个 APP 时候,经常滑动时经常卡顿、时不时崩溃、有些功能设计简直非常规,比如在 Web 网站有树层级等面包屑点击,你非要在手机也搞一个类似树级点击加载,那是不是有点强人所难了,我上拉下拉、左滑右滑不行吗,非要通过点击才行吗?那么性能优化核心是什么呢?追求快、稳、省、小,关注卡顿、内存泄漏和崩溃、代码质量和逻辑、安装包大小四个方面。
推荐学习资料
- Android进阶学习全套手册
- Android对标阿里P7学习视频
- BAT TMD大厂Android高频面试题
以上的面试资料整理在我的**GitHub**有下载方式,同时还可以加入我们安卓开发者的圈子一起学习交流!
最后
对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
同时我经过多年的收藏目前也算收集到了一套完整的学习资料以及高清详细的Android架构进阶学习导图及笔记分享给大家,希望对想成为架构师的朋友有一定的参考和帮助。
下面是部分资料截图,诚意满满:特别适合有开发经验的Android程序员们学习。
不论遇到什么困难,都不应该成为我们放弃的理由!
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言,一定会认真查询,修正不足,谢谢。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
真题+项目实战源码》,点击传送门,即可获取!**