解决代码嵌套严重提示的方法:关于复杂度的计算可以参考 Cognitive Complexity 认知复杂度[https://www.jianshu.com/p/cd6da0a...
解决代码嵌套严重提示的方法:关于复杂度的计算可以参考 Cognitive Complexity 认知复杂度[https://www.jianshu.com/p/cd6da0a...
这里展示两种方法,以top命令为例,需要注意的是top命令返回的结果只包含当前用户id对应的进程相关的process信息。在adb shell直接执行命令获取的是以root进...
其核心思想有这几点: 使用ServiceManager的getService获取对应service的Binder代理IBinder 定义FileDescriptor指向目标文...
2. IBinder上下文的创建 所谓IBinder上下文在这里实际上就是获取binder server代理,用来访问server接口。这个上下文,就是指的server的代理...
概述 service的注册可以概括为如下几个过程: 进程启动和ProcessStates的初始化 IBinder 上下文创建 addService 客户端数据构建 binde...
1. 概述 Binder整个模块可以分为以下四部分 binder驱动的初始化 servicemanager的初始化 service的注册 客户端对service的申请和使用
概述 servicemanager的功能可以分为以下几部分: servicemanager的启动 打开binder设备,初始化驱动数据,映射内存 构建上下文,创建binder...
1. kernel Init binder kernel位于如下路径: 其初始化调用开始于: 关于device_initcall可以参考:https://www.cnblog...
转自: https://developer.android.com/training/improving-layouts/reusing-layouts 通过<include...
转自: https://developer.android.com/training/improving-layouts/optimizing-layout 优化布局层次结构...
今天在跟踪系统获取实时电流的接口BatteryManager.getIntProperty的时候,发现其使用.hal直接从java调用到c++,所以简单研究了一下.hal文件...
还是那张图,先回忆一下 从View开始 从应用的角度来讲,View有两个方法我们比较熟悉,一个是requestLayout,一个是invalidate,先看一下代码 这两个方...
关于Choreographer的知识,这里分作3部分来解析: Choreographer的初始化 View绘制请求 View绘制 先放一张总流程图,如下: 第一部分 Chor...
总述 从流程上来讲,View的绘制大概分为以下几个步骤 应用请求View绘制 Vsync触发绘制条件 构建Surface 绘制View内容到BufferQueue Surfa...
//屏幕刷新率支持60Hz和90Hz两种模式 //当前与VSync建立的连接个数, 用户创建的EventThreadConnection个数,比如Choreographer....