前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试被吊打,是因为你的知识体系零乱!值得收藏的全方面覆盖Android知识结构总结

面试被吊打,是因为你的知识体系零乱!值得收藏的全方面覆盖Android知识结构总结

原创
作者头像
Android技术干货分享
修改2020-12-28 18:10:03
7430
修改2020-12-28 18:10:03
举报
文章被收录于专栏:Android技术分享

2017年初Android市场饱和的传言一度甚嚣尘上。2018年经济寒潮,2020年疫情打压下,众多大厂和曾经风口上的互联网企业也不得不裁员自保,通过小程序、前端渲染以达到原生的实现。

面对外界的纷繁复杂和技术栈的日新月异,我们更应该清楚认识到自身技术的短板来进行知识巩固。目前移动端Android初中级人才大量涌入,正所谓僧多粥少,但楼主始终认为:苦心人,天不负,只要自身有过硬的知识广度和深度储备,在寒冬之下,同样也能站稳脚跟。

楼主19年年前走了一波社招试试水,一番厮杀后最终拿到多家offer,回味之余,不得不感叹现在的985、211出身的技术人才真的强(楼主只是普通本科),为了践行社会主义核心价值观,于是总结自己的面试经历,结合参考其他社招面试总结整理出这一份面试知识体系,相关的答案都整理在了一个文档,有需要的文末查看领取,承蒙大家不弃,文中知识点如有描述错误,还望提出探讨纠正。

此篇文章是初中高级工程师学习文章,知识体系较为完整。有如下特点: 1.知识结构全面 2.跟随当下技术潮流实时更新 3.可用于面试 & 学习 4.知识分为文字部分和视频部分,任性选择 5.正确的职业规划 6.方便工作过程中遗忘知识点快速查询

这份知识体系大纲包括:

Android部分:

四大组件篇

  • Activity
  • BroadcastReceiver
  • ContentProvider
  • Service

第五大组件篇

  • Fragment

对话框 & 弹框 & 悬浮窗 & 通知篇

  • Dialog
  • PopWindow
  • DialogFragment
  • Notification

Android UI控件篇

  • 基础布局
  • 基础控件
  • 高级控件(ListView,RecyclerView,ViewPager,WebView...)
  • 自定义控件(包含很多其它知识)
    • Android坐标系
    • Android的角度与弧度
    • View绘制机制
    • View事件分发
    • Android动画机制
    • Canvas类
    • Path类
    • 贝塞尔曲线
    • ......
  • 原生控件源码分析

Android系统架构篇

  • 系统架构
  • 系统版本特点 & 区别

Android通信篇

  • 线程间通信框架Handler
    • AsyncTask
    • HandlerThread
    • IntentService
  • 进程间通信

Android网络编程篇

  • 网络请求
  • Token & Session & Cookie三者联系与区别
  • 数据解析[Json,XML]
  • ......

Android数据持久化篇

  • 文件存储
  • key-value存储[SharePreference,MMKV(腾讯)]
  • 数据库存储[SQL语句,SQLite]
  • 序列化

Android 原生音视频图片开发[非JNI]

  • 图片开发(Bitmap)
  • 视频开发[GsyPlayer,JiaoZiPlayer...]
  • 音频开发[MediaPlayer]

Android特殊知识点【不知道如何分类的知识点】

  • gradle
  • 蓝牙
  • 定位
  • SDK开发与接入
  • Drawable
  • ......

Android必须掌握的轮子

  • 异步通信[EventBus,RxJava]
  • 图片加载[Glide,Picasso,Fresco]
  • 内存优化[LeackCanary,BlockCanary]
  • 依赖注入[ButterKnife,Dagger]
  • 数据库轮子[LitePal,GreenDao...]

项目架构篇

  • MVC & MVP & MVVM
  • 组件化
  • JetPack

Android高级进阶篇

  • UI绘制过程
  • 一个app启动过程
  • Android 动画机制
  • View事件分发
  • 热更新 & 插件化
  • Handler源码分析
  • ......

Android优化篇

  • 内存优化
  • 布局优化
  • UI卡顿优化
  • UI适配优化
  • apk安全优化

Android职业方向篇

【这是笔者新加入的,对于Andorid开发者而言非常重要,要有自己的职业规划】

  • 资深UI工程师[自定义控件,源码方向]
  • Android底层开发工程师[C++音视频/图像算法/智能家居]
  • Android资深架构师[造得一手牛逼的好轮子,熟悉Framework,Java高级知识等等]
  • 全栈工程师(以Android为核心技术)

Android工作工具篇

  • Git/SVN(代码版本控制)
  • 调试工作
  • 测试

Android工作必备技能篇

  • 玩转Gradle
  • 打包 & 多渠道打包
  • 加固 & 混淆

Android跨平台开发篇

  • WebView & 第三方内核
  • Flutter

*Android项目学习篇

  • 实战项目学习

Java部分

基础部分

  • 操作系统
  • 八大基本数据类型&引用类型
  • JDK&JRE&JVM篇
  • 面向过程&面向对象篇
  • 数组
  • NIO/BIO/AIO
  • Java异常体系篇
  • 集合篇
  • 多线程篇
  • 泛型篇
  • Java注解篇
  • 反射篇
  • Socket
  • Java设计模式篇

高级部分

  • JVM
  • AOP
  • APT
  • 多线程核心知识点

Kotlin部分:

基础部分

  • 基本数据类型
  • 数组
  • 集合
  • 函数
  • 类 & 接口
  • 扩展方法
  • 空类型安全
  • 智能类型转换
  • ......

高级部分

  • 泛型
  • 反射
  • 注解
  • 协程

数据结构与算法部分

数据结构部分

  • 时间复杂度 & 空间复杂度
  • 数组
  • 链表
  • 队列
  • 散列表

算法部分

  • 排序(8大排序)
  • 查找
  • 递归 & 回溯算法
  • 贪心算法

计算机网络部分

  • 五层网络模型
  • http[请求头,响应体,三次握手,四次挥手等]
  • https
  • DNS
  • Socket & WebSocket
  • 浏览器访问一个url的过程
  • Android技术应用【Andorid中能运用的网络知识点】

Android面试部分

  • Java部分
  • Kotlin部分
  • Android部分
  • 移动UI框架部分(Flutter为主)
  • 数据结构与算法部分
  • 常用的开源库部分
  • 计算机网络认识

面试复习系统路线

1、看视频进行系统学习

这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。

另外,我自己也珍藏了好几套视频,有需要的我也可以分享给你。

2、进行系统梳理知识,提升储备

客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

系统学习方向:

  • 架构师筑基必备技能:深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO
  • Android高级UI与FrameWork源码:高级UI晋升+Framework内核解析+Android组件内核+数据持久化
  • 360°全方面性能调优:设计思想与代码质量优化+程序性能优化+开发效率优化
  • 解读开源框架设计思想:热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack
  • NDK模块开发:NDK基础知识体系+底层图片处理+音视频开发
  • 微信小程序:小程序介绍+UI开发+API操作+微信对接
  • Hybrid 开发与Flutter:Html5项目实战+Flutter进阶

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。

3、读源码,看实战笔记,学习大神思路

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp 源码等等。

4、面试前夕,刷题冲刺

面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。

关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三。

总结

改变人生,没有什么捷径可言,这条路需要自己亲自去走一走,只有深入思考,不断反思总结,保持学习的热情,一步一步构建自己完整的知识体系,才是最终的制胜之道,也是程序员应该承担的使命。

以上内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Android部分:
  • Java部分
  • Kotlin部分:
  • 数据结构与算法部分
  • 计算机网络部分
  • Android面试部分
  • 面试复习系统路线
  • 总结
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档