-
volatile有什么用,原理是什么
-
为什么会有StackOverflow,stack的大小是多少
-
虚拟机
Java虚拟机和Android虚拟机有什么区别
Android两种虚拟机有什么区别
类加载过程
内存模型
四种引用类型
class文件格式
synchronized底层实现原理
synchronized放在普通方法和静态方法上有什么区别
synchronized的锁实际是保存在哪里的(对象头)
双亲委派机制,为什么要用双亲委派机制,如何打破双亲委派机制
内存收集整理的算法
Android
- Activity
Activity的生命周期
dialog会不会影响Activity生命周期,为什么
Activity的启动模式(还会伴有场景让你说这种场景选哪个合适)
Activity任务栈以及taskaffinity
- Service
Service存在的意义是什么
startService和bindService的生命周期
startService和bindService的区别
startService和bindService分别适合应用在什么场景
Service可以执行耗时操作吗
IntentService和Service的区别
Service和线程都可以用来执行后台任务,为什么选Service不选线程,明明线程用起来更简单
- broadcastreceiver
广播的原理是什么
- View的绘制流程
详细讲一下View的绘制流程有哪些
View的第一次绘制是怎么调到的
View的后续绘制是怎么调用的
View的onMeasure,onLayout,onDraw都分别用来干什么
除了上面三个,还有哪些关键的方法
invalidate的原理
invalidate和requestlayout的区别
requestlayout的作用范围是多大
一个View被添加后第一个回调的方法是哪个(onAttacthToWindow)
为什么View.post能拿到view的宽高
讲一些字节做过的自定义VIew的例子
- 触摸事件分发
讲一下Android事件分发的流程
怎么处理滑动冲突
怎么判断手势
讲一些自己做过的处理滑动冲突的原理
事件分发
handler这套机制的原理
IdleHandler是什么
handler的postDelay怎么实现的
Message有个缓存池,缓存池大小是多少知道吗
MessageQueue的中没有消息的时候为什么不会ANR
知道epoll的底层原理吗
epoll是阻塞的吗
- ANR
ANR是什么
ANR的原理
什么情况下会发生ANR
如何检测是否发生了ANR
- SharedPreference
SharedPreference原理
SharedPreference的优化
SharedPreference的commit和apply区别
什么情况下会选择用SharedPreference
- 序列化
Serlizeable和Parceable的区别
什么情况下选择用哪个,为什么
有没有了解过别的序列化方法
RecyclerView
RecyclerView的缓存机制
RecyclerView和ListView对比
Recycler是怎么进行回收和复用的
LayoutManager怎么进行布局的
- 内存泄漏
内存泄漏的常见场景
怎么检查内存泄漏
- Binder
Binder原理
Binder比起其他跨进程的通信方式好在哪
网络
-
HTTP报文格式
-
HTTP在网络体系架构中的意义是什么
-
HTTPS和HTTP的区别
-
对称加密和非对称加密
-
TLS四次握手的过程
-
CA是干什么的
-
校验证书的详细过程
-
HTTPS一定是安全的吗
-
TCP和UDP的区别(高频)
-
HTTP1.0,1.1,2.0的区别
-
有没有实际了解过HTTP2.0到底比1.1快了多少
-
详细解释“Keep-Alive”有什么用
-
UDP为什么比TCP快(存在误导,UDP不一定比TCP快)
-
UDP可以进行广播为什么TCP不行
-
为什么要三次握手,四次挥手
-
为什么握手仅需要三次而回收需要四次
-
HTTP是基于什么协议的(一般来说是TCP,可以借此引出QUIC,KCP等协议进行进一步的探讨)
操作系统
-
线程间通信方式
-
线程的几种状态
-
进程间通信方式
-
线程和进程的区别
设计模式
设计模式没有必要全都看,重要的是你会的几种设计模式他们的优点是什么,缺点是什么,在哪些常见的地方用到了他们,要能够举一反三,例举几个我面试时常说的。
-
单例——单例一定要特别熟,特别高频,尤其是DCL为什么这么写,synchronized为什么那么加,有什么讲究,volatile在这个地方起到了什么作用,不加会导致什么问题。静态内部类的单例怎么能够保证线程安全。等等。
-
Builder——常见,知道什么时候用就行了
-
责任链——要能扩展到Android的事件分发,okhttp的拦截链等。
-
观察者模式——要能知道Android中哪些地方用到了观察者,什么情况下使用。比如广播机制就使用的是观察者
-
享元模式——要知道享元模式是为了避免重复创建对象而导致的开销,Message,String,线程池都是这样的设计思想。
-
Adapter——要能想到ListView和RecyclerView,以及为什么他们设计的时候要用Adapter
-
代理模式——静态代理,动态代理
算法(手撸代码)
就算法来说,其实大部分公司(除了字节和腾讯)问的都不是很难,一般都集中在数组和链表上,基本就是剑指offer难度甚至直接就是原题。
-
移动零——一个数组有0和其他数,不更改原本其他非0数字的顺序,把0都移到数组最末位(猿辅导)
-
手写栈(伴鱼)
-
数组中只出现一次的数字——剑指原题(伴鱼)
-
判断链表是否有环(顺丰,腾讯,美团)
-
有环链表环的长度(腾讯)
-
反转链表(腾讯)
-
一道贪心——题目太长了且没有原题(腾讯)
-
字符串转数字(百度)
-
回字形打印数组(老虎证券)
-
插入5(https://www.lintcode.com/problem/188/)(老虎证券)
-
斐波那契数列(美团)
-
手写DCL单例(字节)
-
二叉树路径和——从根节点到叶子节点是否有一个路径之和等于给定值(字节)
-
最短子数组长度——滑动窗口(字节)
-
手写观察者模式(字节)
-
两个栈实现队列(字节)
-
获取一个VIewGroup的最深深度(美团)
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。





既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
要如何成为Android架构师?
搭建自己的知识框架,全面提升自己的技术体系,并且往底层源码方向深入钻研。
大多数技术人喜欢用思维脑图来构建自己的知识体系,一目了然。这里给大家分享一份大厂主流的Android架构师技术体系,可以用来搭建自己的知识框架,或者查漏补缺;

对应这份技术大纲,我也整理了一套Android高级架构师完整系列的视频教程,主要针对3-5年Android开发经验以上,需要往高级架构师层次学习提升的同学,希望能帮你突破瓶颈,跳槽进大厂;
最后我必须强调几点:
1.搭建知识框架可不是说你整理好要学习的知识顺序,然后看一遍理解了能复制粘贴就够了,大多都是需要你自己读懂源码和原理,能自己手写出来的。
2.学习的时候你一定要多看多练几遍,把知识才吃透,还要记笔记,这些很重要! 最后你达到什么水平取决你消化了多少知识
3.最终你的知识框架应该是一个完善的,兼顾广度和深度的技术体系。然后经过多次项目实战积累经验,你才能达到高级架构师的层次。
你只需要按照在这个大的框架去填充自己,年薪40W一定不是终点,技术无止境
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
架构师完整系列的视频教程,主要针对3-5年Android开发经验以上,需要往高级架构师层次学习提升的同学,希望能帮你突破瓶颈,跳槽进大厂;
最后我必须强调几点:
1.搭建知识框架可不是说你整理好要学习的知识顺序,然后看一遍理解了能复制粘贴就够了,大多都是需要你自己读懂源码和原理,能自己手写出来的。
2.学习的时候你一定要多看多练几遍,把知识才吃透,还要记笔记,这些很重要! 最后你达到什么水平取决你消化了多少知识
3.最终你的知识框架应该是一个完善的,兼顾广度和深度的技术体系。然后经过多次项目实战积累经验,你才能达到高级架构师的层次。
你只需要按照在这个大的框架去填充自己,年薪40W一定不是终点,技术无止境
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
本文涵盖Android开发的关键概念,如volatile原理、类加载、内存管理、并发控制、UI绘制、服务与广播、网络通信、设计模式、算法应用和性能优化等内容,旨在帮助开发者构建全面的技术体系并提升至高级架构师层次。
55万+

被折叠的 条评论
为什么被折叠?



