![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
framework
framework
HandKnock
读书-手敲-思考-总结-细节-深入-查漏补缺
展开
-
ActivityManagerService
了解ActivityManagerService吗?发挥什么作用(重点)主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作ANR的处理ActivityManagerService是运行在单独进程的,所以一定是跨进程的...原创 2020-12-13 22:46:58 · 150 阅读 · 0 评论 -
Binder
Binder内核空间用户空间binder讲清楚https://juejin.im/post/6844903656131657736一次拷贝:内存映射mmap安全,有身份验证uidC/S架构是APP和系统服务之间的通信工具,提供跨进程的消息传递。系统的内核空间是共享的,每个进程都可以访问,Binder驱动存在于内核空间每一个进程都有一个ProcessState对象,负责打开Binder驱动每一个线程都有一个IPCThreadState对象,通过talkWithDriver,将IPC数据原创 2020-10-29 09:23:21 · 115 阅读 · 0 评论 -
消息机制
Handler postDelay() 然后finish当前Activity会怎么样?如果你能从 Handler 答出 epoll 机制,接下来会问 epoll 机制的原理,有没有看过源码?为什么需要消息队列解耦,异步处理,削峰/限流sendMessage最终会走到enqueueMessage方法,执行插入动作MessageQueueenqueueMessage,根据时间排序插入单链表msg.target = thisMessageQueue.Next()nextPollTimeoutM原创 2020-10-09 22:56:01 · 173 阅读 · 0 评论 -
题目-Framework
对Framework层源码的了解,为什么这么设计,优缺点Android动画框架实现原理Android各个版本API的区别https://www.jianshu.com/p/0b0210308e45android 10新特性https://blog.csdn.net/linxinfa/article/details/93904506requestLayout()和onLayout()的区别和联系?调用requestLayout()方法的时机是:当前View发生了一些改变,这个改变使得现有的原创 2020-10-09 22:55:19 · 217 阅读 · 0 评论 -
事件分发传递过程
一 是什么,怎么用,为什么事件分发传递过程,点击/触摸在Activity和控件之间,控件和控件之间的传递过程,明白点击事件由哪个对象发出,经过哪些对象,最终到达哪个对象并最终得到处理。了解并熟悉有助于分析各种滑动失效问题为什么要有事件分发传递Android的view是树形结构的,view可能会重叠在一起,当我们点击/触摸的时候,这个事件该给谁所以制定一个机制,先保证这个事件能传递到每一个view去,然后哪个view想消费这个事件,就拦截这个事件,消费掉它二 学习之前应该了解事件分发的三个方法原创 2020-10-09 22:54:44 · 380 阅读 · 0 评论 -
屏幕渲染刷新机制
简述Android的View绘制流程,Android的wrap_content是如何计算的?https://www.cnblogs.com/duanweishi/p/4301742.htmlWindowManager.addView(),View.getParent()是谁?View 绘制原理会问 requestLayout() 和 invalidate() 什么区别?什么情况下 requestLayout() 会执行 onDraw() 方法?invalidate、requestlayout是否会调原创 2020-10-09 22:53:50 · 461 阅读 · 0 评论 -
activity启动流程
activity的启动过程总体流程Launcher通过Binder机制通知AMS启动一个ActivityAMS使Launcher栈最顶端Activity进入onPause状态AMS通知Process使用Socket和Zygote进程通信,请求创建一个新进程Zygote收到Socket请求,fork出一个进程,并调用ActivityThread#main()ActivityThread通过Binder通知AMS启动应用程序AMS通知ActivityStackSupervisor真正的启动Acti原创 2020-10-09 22:50:46 · 370 阅读 · 0 评论 -
Apk打包-安装过程
App的安装过程当一个新应用程序,要安装并运行在Linux中时,系统需要先为其开辟一个用户空间,并分配Linux独立用户id或共享用户id,由PackageManagerService完成每次系统重启时,都需要对程序做一次重新安装,为了提高效率,程序在第一次安装时,PMS会将安装信息进行保存,以便再次安装时进行快速恢复,settings就是用来保存这些信息的对象安装包信息数据是通过xml进行存储的,双备份,双次检测Xml以package为根标签保存了一个应用的完整信息,所以从package标签开始解原创 2020-10-09 22:49:24 · 1371 阅读 · 0 评论 -
Android Framework架构
C/S客户端ApplicationThread-ApplicationActivityThread-ActivityPhoneWindow/window-DecorViewWindowManagerImpl/WindowManagerViewRootImpl/ViewRoot服务端ActivityManagerServiceWindowManagerServicePackageManagerServiceandroid系统结构层次应用层应用框架层:framework层系原创 2020-10-09 22:47:53 · 374 阅读 · 0 评论