共 15 篇文章 |
|
图 xx-xx Android根文件系统中的init进程。上面声明了7个action:early-init,init,boot等,以on init为例当每个init action被触发时,会顺序执行它后面的命令,直到其后面的onboot。上述Action依次被init进程解释,放到action_list链表里,每个action_list节点都有一个commands链表存储所有Command,init进程从action_list依次触发每一个acti... 阅353 转0 评0 公众公开 16-12-21 15:43 |
在Linux中,使用mknod命令来创建设备节点文件,但出于安全考虑,Android未提供类似mknod的命令,而是使用了类似Linux系统中的udev方式来实现对设备的管理,在Android中类似udev功能的进程称为ueventd守护进程,其源码为system/core/init/devices.c。在Android系统中,Cold Plug方式是通过事先定义好各驱动程序所需的设备节点文件,这些定义的设... 阅144 转0 评0 公众公开 16-12-21 15:42 |
由上面的架构可知,上层应用层或框架层代码加载so库代码,so库代码我们称为module,在HAL层注册了每个硬件对象的存根stub,当上层需要访问硬件的时候,就从当前注册的硬件对象stub里查找,找到之后stub会向上层module提供该硬件对象的operations interface(操作接口),该操作接口就保存在了module中,上层应用或框架再通过这个module操作接口... 阅45 转0 评0 公众公开 16-12-21 15:41 |
阅274 转1 评0 公众公开 16-09-02 17:52 |
阅248 转3 评0 公众公开 16-09-02 17:51 |
阅508 转5 评0 公众公开 16-09-02 17:51 |
Camera.cpp里调用了模板类里的connect函数,这个函数的实现在CameraBase.cpp里spTCam> CameraBaseTCam, TCamTraits>::connect(int cameraId, const String16& clientPackageName, int clientUid){ ALOGV(''%s: connect'', __FUNCTION__);//把所有的TCam替换成Camera,构造了一个Camera对象。 阅1264 转5 评0 公众公开 16-09-02 17:51 |
阅1 转自风雪夜归... 公众公开 16-07-15 13:56 |
点击(此处)折叠或打开首先从上层讲解下来Packages/apps/camera/src/com/android/camera/camera.javaprivate void capture() { mCaptureOnlyData = null; // See android.hardware.Camera.Parameters.setRotation for mParameters.setRotation(rotation); …… 阅286 转0 评0 公众公开 16-07-14 17:44 |
阅104 转0 评0 公众公开 16-07-14 17:43 |