Advertisement

Binder客户端和驱动端通信流程实例分析(以acquireWakeLock()函数为例)(一)

阅读量:

(本文主要针对具备Binder框架基础认识但缺乏感性认知的读者群体进行撰写。为了使读者能够顺利理解文章内容并完成后续操作步骤,请确保具备 Android Framework 和 Linux Kernel 等软件体系的基本知识储备,并准备好一套完整的编译环境下的安卓6.0源代码资源以便于实现代码分析与验证过程中的关键环节复现工作。如需转载,请注明出处。)

正文开始

下图是一张常见的Binder通信机制流程图:

我们从细节出发,并以PowerManager内部类WakeLock提供的获取亮屏锁函数acquire()为例进行探讨。

为了便于追踪,在编写演示文稿时必须编写一个演示文稿,在其中插入一个按钮,在该按钮的点击事件函数中输入以下代码:

复制代码
 String TAG = "BinderDemo";

    
 PowerManager.WakeLock wakeLock;
    
 PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    
 wakeLock = pm.ne

全部评论 (0)

还没有任何评论哟~