前言
博主双非本科毕业,五年的Android开发经验,最近准备跳槽,正好赶上金九银十,都说金九银十,这几个月份是程序员最好的跳槽时间,
找工作之前看了很多面试题,复习资料,但是发现纯看面试题是不行的,因为靠背的东西是记不牢的,需要知识成体系才可以,所以笔者整理了一份复习大纲,基本涵盖了 Android 中高级工程师面试所必须知识点,希望可以通过此文帮助一些想换工作的朋友更好的复习,准备面试。
1、Java 相关
- 容器(HashMap、HashSet、LinkedList、ArrayList、数组等)
需要了解其实现原理,还要灵活运用,如:自己实现 LinkedList、两个栈实现一个队列,数组实现栈,队列实现栈等。
- 内存模型
- 垃圾回收算法(JVM)
- 类加载过程(需要多看看,重在理解,对于热修复和插件化比较重要)
- 反射
- 多线程和线程池
- HTTP、HTTPS、TCP/IP、Socket通信、三次握手四次挥手过程
- 设计模式(六大基本原则、项目中常用的设计模式、手写单例等)
- 断点续传
2、Android 基础
- 自定义 View
- 事件拦截分发
- 解决过的一些性能问题,在项目中的实际运用。
- 性能优化工具 (TraceView、Systrace、调试 GPU 过度绘制 & GPU 呈现模式分析、Hierarchy Viewer、MAT、Memory Monitor & Heap Viewer & Allocation Tracker 等)
- 性能优化
(1)网络:API 优化、流量优化、弱网优化
(2)内存:OOM 处理、内存泄漏、内存检测、分析、Bitmap 优化
(3)绘制 (4)电量:WeakLock 机制、JobScheduler 机制 (5)APK 瘦身 (6)内存抖动 (7)内存泄漏 (8)卡顿 (9)性能优化:布局优化、过度渲染处理、ANR 处理、监控、埋点、Crash 上传。 - IntentService 原理及应用
- 缓存自己如何实现(LRUCache 原理)
- 图形图像相关:OpenGL ES 管线流程、EGL 的认识、Shader 相关
- SurfaceView、TextureView、GLSurfaceView 区别及使用场景
- 动画、差值器、估值器
- MVC、MVP、MVVM
- Handler、ThreadLocal、AsyncTask
- Gradle(Groovy 语法、Gradle 插件开发基础)
- 热修复、插件化
3、Android Framework
- AMS 、PMS
- Activity 启动流程
- Binder 机制(IPC、AIDL 的使用)
- 为什么使用 Parcelable,好处是什么?
- Android 图像显示相关流程,Vsync 信号等
4、三方源码
- Glide :加载、缓存、LRU 算法
- EventBus
- LeakCanary
- ARouter
- 插件化(不同插件化机制原理与流派,优缺点。局限性)
- 热修复
- RXJava
- Retrofit
5、算法与数据结构
- 单链表:反转、插入、删除
- 双链表:插入、删除
- 手写常见排序、归并排序、堆排序
- 二叉树前序、中序、后序遍历
- 最大 K 问题
- 广度、深度优先搜索算法
- 可以去刷一下 LeetCode ,对自己提升也会比较大。
注:本文只罗列出大纲内容,至于每个模块的详细内容,需要的下方获取。
作为一名Android开发如何正确高效的提升?
如果想在写简历和面试的不心虚,这就需要你除了日常工作外,一定还要有计划的提升自己。能看到这里的,或多或少都会有提升自己的想法,让自己在职场里不再“心虚”,但是麻烦的在于:
-
我要工作,还要学习,时间怎么安排?
-
我该从哪里开始学?学什么?
-
为什么我学的时候,感觉还不错,学完之后就忘了,感觉是白给?
-
我该如何快速提升自己,年纪越大,感觉竞争力越低(我的目标除了星辰大海,还有升职加薪)
对标腾讯T9级Android高级架构师进阶路线图
下面给大家分享一份互联网快速提升的对标腾讯T9级Android高级架构师进阶路线图及对应的学习笔记和部分高频面试问题,看看你掌握了多少?
核心技术及面试题
Andorid从底层基础到架构成长笔记目录展示
Android开发必备底层技术模块
BATJ这些大公司都要求有扎实的Java语言基础和虚拟机底层原理,这一个部分就是Android开发中最常用的java语言相关知识。在这个里面,结合了Dex文件加密实战和热修复手写实战来让大家深刻体会Java语言体系的重要性以及在Android开发中的地位
FrameWork源码与UI及jetpack模块
在Android中,Framework泛指系统架构层。Framework的中文意思是“框架”,在软件开发中通常指开发框架,在一个系统中处于内核层之上,为顶层应用提供接口,被设计用来帮助开发者快速开发顶层应用,而不必关心系统内核运行机制,通常Framework都会隐藏main函数等应用程序必须的组件,开发人员只需把精力放在功能代码的实现上。说简单点,Framework具体的工作也就是为android应用开发的开发人员提供了一系列的服务和API的接口。
FrameWork源码解析: Binder+Handler+Zygote+ AMS+ PMS+WMS
UI底层源码深度剖析篇:UI绘制流程+ LayoutInflater + 事件分发机制+ 属性动画+ViewGroup+ View
Jetpack实战及大厂架构演进实践手册
Android性能分析与优化实战方案
作为一名Android程序员,说实话要做好性能这一块,真心不容易。*为什么这么说? 是因为需要接触的知识实在是太多了, Android 是一个整体,牵一发而动全身,不是说只懂一个模块就可以做好。这份*《Android性能分析与优化实战进阶手册》,让每一个想进入 Android 系统开发和优化这个领域的人,能通过这份笔记手册快速入门,同时也算是对知识的一个梳理,查漏补缺,终身学习。
-
内存优化
-
布局优化
-
启动优化
-
卡顿优化
-
稳定性优化
-
电量优化
-
线程优化
-
瘦身优化
Andorid高级音视频实战模块
-
基础语法
-
H264视频编码
-
H265编码原理及应用
-
MediaCodec集训
-
Opengl与音视频编解码
-
实战
Android架构师必备源码框架精讲解析模块
Gradle高阶实战模块
-
Groovy语法
-
Gradle Android插件配置
-
实战
Kotlin入门到精通模块
Flutter2.0混合式开发模块
-
Dart语法
-
Flutter2.0之UI
-
Flutter2.0进阶
-
Flutter2.0优化
-
实战
鸿蒙2.0系统开发模块
-
Ability组件
-
分布式任务
-
事件总线
-
鸿蒙线程
-
UI自定义控件
总结
同样是做Andorid,有的人工作5年工资没变化,有的人工作2年就已经年薪50W。这个现象或许前几年还不明显, 但随着近几年后端技术疯了一般的快速发展,曾经那个只要会个UI啥的就能走遍天下的时代早已不在了,人才水平的分化也越来越明显。
竞争永远都是非常残酷的,毕竟成为一个架构师不是那么容易的,一个架构师的成长来自于机会,努力及天分 !在这个后浪奔腾的时代,不管是你是刚工作还是有几年开发了,我相信以上这份Andorid从底层基础到架构成长笔记你都需要阅读阅读,需要的下方获取领取方式!