读书-手敲-思考
总结-深入-查漏补缺
对Framework层源码的了解,为什么这么设计,优缺点
Android动画框架实现原理
Android各个版本API的区别
- https://www.jianshu.com/p/0b0210308e45
- android 10新特性
https://blog.csdn.net/linxinfa/article/details/93904506
requestLayout()和onLayout()的区别和联系?
- 调用requestLayout()方法的时机是:当前View发生了一些改变,这个改变使得现有的View失效,所以调用requestLayout()方法对View树进行重新布局,过程包括了measure()和layout()过程,但不会调用draw()过程,即不会发生重新绘制视图过程
- View需要给自己设置大小和位置了或者ViewGroup需要给子View和ViewGroup自身时调用
onDraw()和drawChild()的区别和联系?
- ()方法就是在绘制View第三步时发生,已经测量好View的大小,设置好View的布局,剩下最后一步就是,具体画出这个布局。画的方法就是onDraw(),每个View都需要利用这个方法画出自己,ViewGroup除了要设置背景,不然一般都不会调用该方法
- drawChild 去重新回调每个子视图的draw()方法
invalidate和postInvalidate的区别及使用
invalidate在主线程中调用,postInvalidate在子线程中调用,最终调的也是view.invalidate()
Activity-Window-View三者的差别
Activity是整个模型的控制单元,
Window属于承载模型,负责承载视图,
View是视图显示模型
https://blog.csdn.net/github_37130188/article/details/89164647
谈谈对Volley的理解
如何优化自定义View
低版本SDK如何实现高版本api?
SupressLint很显然的意思是忽略Lint检查,对于我们使用高版本API来说,可以使用@SuppressLint(“NewApi”)的方式让Lint在编译时忽略所调用API对版本的要求。而@TargetApi是忽略特定版本的API调用报错
描述一次网络请求的流程
- DNS解析IP
- tcp连接 握手
- 发生请求
- 响应
系统设计和性能相关
https://www.jianshu.com/u/ce54e5c21032
HttpUrlConnection 和 okhttp关系
Bitmap对象的理解
looper架构
ActivityThread,AMS,WMS的工作原理
自定义View如何考虑机型适配
自定义View的事件
LaunchMode应用场景
SpareArray原理
https://www.cnblogs.com/RGogoing/p/5095168.html
请介绍下ContentProvider 是如何实现数据共享的?
它的底层是用 SQLite 数据库实现的,所以其对数据做的各种操作都是以 Sql 实现,只是在上层提供的是 Uri,用户只需要关心操作数据的 uri 就可以了,ContentProvider 可以实现不同 app 之间共享
Android Service与Activity之间通信的几种方式
IntentService原理及作用是什么?
说说Activity、Intent、Service 是什么关系
ApplicationContext和ActivityContext的区别
SP是进程同步的吗?有什么方法做到同步?
谈谈多线程在Android中的使用
进程和 Application 的生命周期
封装View的时候怎么知道view的大小
RecycleView原理
AndroidManifest的作用与理解
Handler机制和底层实现
Handler、Thread和HandlerThread的差别
handler发消息给子线程,looper怎么启动?
关于Handler,在任何地方new Handler 都是什么线程下?
ThreadLocal原理,实现及如何保证Local属性?
请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系
请描述一下View事件传递分发机制
Touch事件传递流程
事件分发中的onTouch 和onTouchEvent 有什么区别,又该如何使用?
View和ViewGroup分别有哪些事件分发相关的回调方法
View刷新机制
View绘制流程
自定义控件原理
自定义View如何提供获取View属性的接口?
Android代码中实现WAP方式联网
Ubuntu编译安卓系统
系统启动流程是什么?(提示:Zygote进程 –> SystemServer进程 –> 各种系统服务 –> 应用进程)
大体说清一个应用程序安装到手机上时发生了什么
简述Activity启动全部过程
App启动流程,从点击桌面开始
逻辑地址与物理地址,为什么使用逻辑地址?
我们都知道任何一个独立运行的程序都需要系统分配单独的内存空间,大多数情况下这个工作是由系统完成,方便程序访问变量,程序不需要关心变量的物理地址。
因此现代操作系统都提供了一种内存管理的抽象,即虚拟内存。
进程使用虚拟内存的逻辑地址范文,操作系统协助转换成真正的物理地址
每个进程能分配到除1G的内核空间以外的3G的独立内存空间,代码段、数据段和堆是从低地址向高地址,栈从高地址向低地址把实际的物理内存按4K的大小为一个单元标号,叫做页
Android为每个应用程序分配的内存大小是多少?
16-64M
Android中进程内存的分配,能不能自己分配定额内存?
进程保活的方式
notification+jobschedule
如何保证一个后台服务不被杀死?(相同问题:如何保证service在后台不被kill?)比较省电的方式是什么?
notification+jobschedule
App中唤醒其他进程的实现方式
- 广播
- exported=true,intent ComponentName跳转
- scheme,隐式跳转,Uri
- PackageManager唤起
事件到底是先到DecorView还是先到Window的?
RecyclerView卡片中持有的资源,到底该什么时候
https://blog.csdn.net/weixin_44339238/article/details/105053387
Android的UI刷新机制?
https://blog.csdn.net/weixin_44339238/article/details/104946131
Android渲染机制讲解
https://blog.csdn.net/weixin_44339238/article/details/106240344
https://blog.csdn.net/weixin_44339238/article/details/108734961
一个新启动创建的 Activity 对象到底被谁引用了?
https://blog.csdn.net/weixin_44339238/article/details/103924373
用另一种角度学习 View 事件分发!
https://blog.csdn.net/weixin_44339238/article/details/103389441
https://blog.csdn.net/weixin_44339238/article/details/106107206
https://blog.csdn.net/weixin_44339238/article/details/106198158
https://blog.csdn.net/weixin_44339238/article/details/108712502
今日分享:那些大牛们都是怎么阅读 Android 系统源码的?
https://blog.csdn.net/weixin_44339238/article/details/102896585
InputManagerService
https://blog.csdn.net/weixin_44339238/article/details/102838144
Binder
https://blog.csdn.net/weixin_44339238/article/details/102664688
https://blog.csdn.net/weixin_44339238/article/details/103308322
https://blog.csdn.net/weixin_44339238/article/details/103352203
https://blog.csdn.net/weixin_44339238/article/details/104366327
关于 Handler 面试官问了我什么
https://blog.csdn.net/weixin_44339238/article/details/102590730
https://blog.csdn.net/weixin_44339238/article/details/102744287
https://blog.csdn.net/weixin_44339238/article/details/103038101
https://blog.csdn.net/weixin_44339238/article/details/103559744
https://blog.csdn.net/weixin_44339238/article/details/104378825
https://blog.csdn.net/weixin_44339238/article/details/104780102
app启动流程
- Launcher startActivity
- AMS startActivity
- Zygote fork进程
- Activity main()
- ActivityThread 进程loop循环
- 开启Activity,开始生命周期回调…
https://blog.csdn.net/weixin_44339238/article/details/103074340
https://blog.csdn.net/weixin_44339238/article/details/104925541
6.Activity启动流程
- Activity startActivityForResult
- Instrumentation execStartActivity
- AMS startActivity
- ApplicationThread scheduleLaunchActivity
- ActivityThread.H handleMessage -> performLaunchActivity
- Activity attach
- Instrumentation callActivityOnCreate