Android
文章平均质量分 82
hl09083253cy
这个作者很懒,什么都没留下…
展开
-
Handler,Looper,HandlerThread
1.Handler,Looper原理图解:其根本点在于:在 Handler所在线程通过创建一个 Looper来创建一个 MessageQueue通过在 Handler所在线程执行 Looper.loop 循环,从 MessageQueue取出消息,在Handler所在线程执行可以从其他线程通过 Handlerxian 向这个 MessageQueue中扔 msg原创 2018-01-25 16:36:05 · 385 阅读 · 0 评论 -
Android Watchdog 机制
用两张图和部分代码来描述:第一张图(图片需要在新标签中打开):第二张图借自 @宇落无痕 的博客:代码 Watchdog.run(): @Override public void run() { boolean waitedHalf = false; while (true) {原创 2018-01-25 22:01:53 · 604 阅读 · 0 评论 -
Android ftrace
ftrace README:××××:/sys/kernel/debug/tracing # lsREADME buffer_size_kb events options saved_cmdlines set_event trace_clock trace_options tracing_on ...原创 2018-12-04 15:46:52 · 1001 阅读 · 0 评论 -
Binder学习[3]: ServiceManger.getService 实现
本文主要从分析 Java层 getService是怎么实现的,getService最终的返回值是什么,以及怎么使用的。1.ServiceManager.getService从Am.java的 onRun函数开始: @Override public void onRun() throws Exception { mAm = ActivityManager....原创 2018-12-04 23:27:30 · 1817 阅读 · 0 评论 -
Binder学习[5]: Android ContentProvider 进程间通信原理及实现
1.Android ContentProvider 如何进行进程间通信的原创 2018-12-04 23:28:50 · 611 阅读 · 0 评论 -
Binder学习[2]: ServiceManger.addService实现
本文将讲述用户进程如何通过 defaultServiceManager()->addService的实现。1.addService发起端进程在 addService过程中的动作class DrmManagerService : public BnDrmManagerService {....class BnDrmManagerService: public BnInterfac...原创 2018-02-01 23:46:57 · 5094 阅读 · 4 评论 -
Binder学习[1]: ServiceManger 如何成为所有Service的管理进程
本文主要解析两个关键点:ServiceManger 如何成为所有Service的管理进程 ServiceManager 与 Binder Driver 共享 128K 内存我们从ServiceManager的 main函数开始(service_manager.c):int main(){ struct binder_state *bs; bs = binder_o...原创 2018-01-30 23:48:40 · 802 阅读 · 0 评论 -
Binder学习[4]: AIDL 实现
1.从系统服务 ActivityManagerService开始我们看 AMS声明:public class ActivityManagerService extends IActivityManager.Stub implements Watchdog.Monitor, BatteryStatsImpl.BatteryCallback {可以看到AMS继承了 IAc...原创 2018-12-06 18:28:29 · 1805 阅读 · 2 评论