十项移动端开发重点,告别敷衍的业务代码编写

发表时间: 2020-12-30 18:19

最近有朋友问我:“安卓开发是不是没人要了,除了画 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开发相关源码精编解析》

以上文章中的资料,均可以免费分享给大家来学习,

资料太多,全部展示会影响篇幅,暂时就先列举这些部分截图;

需要的朋友,直接转发+点赞+私信回复【资料】一键领取!!!