Android进阶学习:移动端开发重点学习的十点,不能再得过且过的写业务代码了
最近有朋友问我:“安卓开发是不是没人要了,除了画 UI 别的都不会怎么办?”
考虑到这可能是很多人共同的疑问,决定简单写一下。
说了很多遍了,不是安卓开发没人要了,是初级安卓没人要了。现在还在大量招聘移动端开发的,基本是大厂的明星应用或者是创新业务。大厂校招生那么多,画界面的工作基本上校招生都能胜任,那社招当然要求会更高些。
安卓开发,甚至包括 iOS 开发,除了 iveg(if visible else gone),还有很多点值得学习的点。
这里我结合一些移动端金字塔顶端职位(技术经理、架构师、负责人)的要求,整理出值得我们重点学习的十点。
首先来看下这些职位的要求:
高级安卓开发
- 了解常见的APP性能优化解决方案,对至少一个维度的性能优化有过较深入的挖掘
- 熟悉 JNI 以及 NDK 相关的技能,熟悉 C/C++
- 对业务开发的痛点有深度理解,了解常见开发框架的优缺点和适用场景
- 动态化相关技术框架的探索和完善,熟悉Flutter、Reactive Native、以及其它客户端动态化开发框架者优先;
- 熟练使用Kotlin、Flutter开发者优先
安卓架构师
- 负责客户端架构设计及组件化构建;
- 参与研发流程优化和基础平台搭建。
- 优化 Android 团队的开发方式和流程、规范,提高团队效率
- 主导过至少一个知名 Android APP 的架构
- 计算机基础扎实,熟悉常见数据结构、算法和设计模式,熟悉数据库开发
- 有IM架构经验者优先
安卓技术经理
- 对稳定性和性能有超乎寻常的关注,能够编写自动化测试代码
- 有iOS、Web前端或Web后端经验优先有知名开源作品优先,熟悉flutter/reactnative/js/bash/python/ruby等语言和相关框架
- 优秀的沟通及表达能力,规划组织能力,能带领团队规划和实现产品、技术需求
移动端负责人
- 理解业务,将业务目标转化为团队的工作成果
- 5年以上移动端开发经验,3年以上团队管理经验;
- 负责过百万日活以上用户规模或者较高复杂度App的 完整开发 过程
- 善于带领团队,能够充分调动成员的积极性,能培养成员的能力
- 优秀的跨团队沟通能力,善于项目管理,能够将技术的价值最大化
- 有C++、JNI等基础技术能力加分,有web前端技术能力加分
- 手动水印,文章来自张拭心的博客
要求很多,有一些是日常工作就能涉及到的,其余的就需要自己额外多投入精力了。
接着看下,从这些繁杂的要求里提炼出的 10 个关键点:
关键点
1.稳定性和性能优化,至少深入一个点
2.可移植开发(JNI NDK C++)
3.框架优缺点、场景
4.动态化,RN Flutter,其他方案
5.客户端架构设计
6.组件化构建
7.研发流程优化
8.基础平台搭建
9.其他端经验
10.跨团队沟通能力、规划组织能力、团队管理经验、调动成员的积极性、培养成员
出了上面这些还有一些Android相关的核心技术知识点也是需要掌握的:
JAVA 知识点汇总
- JVM
- static
- final
- String、StringBuffer、StringBuilder
- 异常处理
- 内部类
- 多态
- 抽象和接口
- 集合框架
- 反射
- 单例
- 线程
- volatile
- synchronized
- Lock
- 引用类型
- 动态代理
- 元注解
Android 知识点汇总
- Activity
- Fragment
- Service
- BroadcastReceiver
- ContentProvider
- View
- 进程
- Parcelable 接口
- IPC
- Window / WindowManager
- Bitmap
- 屏幕适配
- Context
- SharedPreferences
- 消息机制
- 线程异步
- RecyclerView 优化
- Webview
Android 扩展知识点
- ART
- Apk 包体优化
- Hook
- Proguard
- 架构
- Jetpack
- NDK 开发
- 计算机网络基础
- 类加载器
看五年想三年,认真做好一两年。与其临渊羡鱼,不如退而结网,努力掌握这些点吧,奥利给!
目前我们要做的就是选好自己细分领域深入研究,对基础原理性内容深入理解,尽快向高级水平靠近并达到。当然也要了解新技术,拥有开放的心态去学习一些新技术,不要一开始出来一个新技术就转入学习,这样会导致啥都会一点啥都不会,当然新技术是有一个发展过程的,不会立马流行和大量应用等它稍微成熟点。
这样你会少踩很多坑,也不要排斥它,完全不去理会和了解学习,正确的方式是简单了解这个技术产生是为了解决什么问题,有什么优缺点已经目前发展成熟度和应用范围,我们还是要多抓住技术的本质和基础,这样出现了新技术学起来也会很轻松,当然机会合适了再去学习它。 所以,找准自己的定位及细分领域。
自己去制定系统的一个学习计划可能是比较难的,所以文章最后我给大家准备了一份系统的学习思维导图,还有相关的学习资源,这些资料也都是我开发这么多年一点一点的累积整理出来的,今天完全无偿的分享给大家就是想今年寒冬我们程序员能好过一点,希望大家都能工作顺利,事业有成。
首先是超级详细得不能再详细的Android开发学习思维导图,因为图片实在是太大了,所以我就只把二级目录的内容放出来,更加详细的你们可以文末获取。
然后再是通过源码来系统性地学习
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
《486页超全面Android开发相关源码精编解析》
以上内容均放在了开源项目:【github】 中已收录,大家可以自行获取。
本文地址:https://blog.csdn.net/weixin_44339238/article/details/111996088