Android开发中经常会因为依赖版本升级而引起一些问题,通过Gradle Versions Plugin[https://github.com/ben-manes/grad...
Android开发中经常会因为依赖版本升级而引起一些问题,通过Gradle Versions Plugin[https://github.com/ben-manes/grad...
怎么同步处理消息? 这个服务可以是应用自己的服务,也可以是系统服务,请求都会调到binder线程池里,binder线程将请求转到工作线程里去处理,工作线程在处理这个请求的过程...
怎么同步处理消息? 这个服务可以是应用自己的服务,也可以是系统服务,请求都会调到binder线程池里,binder线程将请求转到工作线程里去处理,工作线程在处理这个请求的过程...
怎么检查线程有耗时任务? 检测机制 WatchDog:framework自带机制,检测SystemServer里的系统服务是否正常(是否死锁,系统服务的工作线程是否还能处理新...
来说说Looper的副业 epoll_wait返回后,下面处理事件,总共eventCount个事件,每个事件都有一个fd, fd == mWakeEventFd: 表示有新消...
说说ThreadLocal的原理 Framework用到ThreadLocal的地方 Looper使用ThreadLocal Choreographer使用ThreadLoc...
怎么跨进程传递大图片 跨进程传大图,有哪些方案? 给图片保存到固定地方,传key给对方 两次IO操作,进程1将图片写到磁盘上,进程2从磁盘读取。大图的话,性能是很差的 通过I...
听说过消息屏障吗? 消息队列:单链表 消息类型: normal, barrier(屏障), block其他消息 async,相比normal多设置了一个异步标志位 如何想消息...
应用主线程进入loop循环为什么没有ANR? ANR dialog 是 在 AMS里弹出来的,AMS在SystemServer进程(系统进程), mUiHandler:是Sy...
说说IdleHandler的原理 MessageQueue里的addIdleHandler方法 IdleHandler的调用时机:当next方法里的nativePollOnc...
handler的消息延时是怎么实现的? postDelay:最后也是封装一个消息调用sendMessageDelayed messageQueue其实是一个单链表,消息的插入...
说说android线程间消息传递机制 msg.target: Handler msg.recycleUnchecked(): 回收message,将这条消息重置后,放入一个单...
线程的消息队列是怎么创建的? 子线程创建handler 子线程中Looper.prepare(): 默认是可以退出 主线程的Looper.prepareMainLooper:...
说说一说binder的oneway机制 oneway binder 发送请求时 只有带_data parclel, 没有_reply parcel oneway的aidl的接...
binder对象跨进程传递的原理是怎样的? AIDL接口定义 publishBinder:将ICallback(binder对象)发布到另外一个进程 AIDL接口定义生成的P...
一次完整的IPC通信流程是怎样的? 了解binder的整体架构原理:binder的分层架构 了解应用和binder驱动的交互方式:1. client端和binder驱动的交互...
谈谈你对binder的理解 client和server可以在同一进程,也可以不在同一进程 remote call:远程函数调用,可以带参数(传数据) binder通信使得进程...
Android Framework用到了哪些IPC方式? Linux IPC 方式 1.管道, 2. Socket, 3. 共享内存, 4. 信号 管道通信 半双工的,单向的...
一般一个Activity对应一个DecorView,一个DecorView对应一个ViewRootImpl,一个ViewRootImpl持有一个Surface,UI线程即创建...
VSync信号机制 HWComposer:硬件生成VSync信号 VSyncThread:软件生成VSync信号的线程。如果硬件没加载成功,这里用软件模拟生成VSync信号 ...