ChinaUnix.net
相关讨论

请问大家有没有讲解android的硬件抽象层的资料,网站或是书籍么? 小弟最近刚刚接触,还在门外打转... androidhal是用户态还是在内核态? 上层调用hal的模块是什么接口? hal怎么和内核交互,如何调用驱动的?

by J_O_H_N - 移动操作系统 - 2011-03-18 14:14:39 阅读(2118) 回复(1)

本帖最后由 bxfqing 于 2011-12-26 15:52 编辑 1. Audio 音频系统 可用参考: android4.0音频系统hal初探 源代码在以下目录 frameworks/base/services/audioflinger/

by bxfqing - 移动操作系统 - 2011-12-27 13:44:44 阅读(3139) 回复(1)

使用zc301 USB摄像头,这个摄像头返回JPEG图形留,camera的preview需要进行jpeg解码(没做),但是可以直接take jpeg照片。

1、修改你的BoardConfig.mk
USE_CAMERA_STUB := false

将stub设置为false,在编译时不会编译android2.1/frameworks/base/camera/libcameraservice中的
CameraHardwareStub.cpp
CameraHardwareStub.h
Fake...

by aokikyon - 移动操作系统 - 2011-12-22 08:51:15 阅读(886) 回复(0)

问过很多NB的高手,都说不出来,我赌这里也没人说得清

by mordorw - 内核源码 - 2012-03-10 23:49:25 阅读(6642) 回复(15)


1 overlay可能支持的颜色格式
/* possible overlay formats可能支持的颜色格式 课件 */
enum {
    OVERLAY_FORMAT_RGBA_8888    = hal_PIXEL_FORMAT_RGBA_8888,
    OVERLAY_FORMAT_RGB_565      = hal_PIXEL_FORMAT_RGB_565,
    OVERLAY_FORMAT_BGRA_8888    = hal_PIXEL_FORMAT_BGR...

by aokikyon - 移动操作系统 - 2011-12-22 08:51:15 阅读(1149) 回复(0)

该文件中的几个主要函数是gralloc_module_t结构函数指针的具体实现。

struct private_module_t hal_MODULE_INFO_SYM = {
    base: {
        common: {
            tag: HARDWARE_MODULE_TAG,
            version_major: 1,
     ...

by aokikyon - 移动操作系统 - 2011-12-22 08:51:14 阅读(1195) 回复(0)

Framebuffer.cpp就是以前的EGLdisplaysurface.cpp改进版

1、int fb_device_open(hw_module_t const* module, const char* name,
        hw_device_t** device)
1)gralloc_open(module, &gralloc_device);
2)初始化fb_context_t(该结构继承framebuffer_device_t)

by aokikyon - 移动操作系统 - 2011-12-22 08:51:14 阅读(1376) 回复(0)

这几天总是被他事打搅,今天终于看完Gralloc hal最重要的gralloc.cpp

Gralloc的最重要的功能应该都体现在本文件中了:为显存分配空间。

先不看该文件的内容,回想一下Framebuffer.cpp中,高通MSM在做硬件blit操作时传入的结构体buffer_handle_t handle。

这个buffer_handle_t可以向前追溯至 native_handle_t。

typedef...

by aokikyon - 移动操作系统 - 2011-12-22 08:51:14 阅读(1481) 回复(0)

1.耳机监听
系统服务(Systemserver.java)启动,并新建线程(ServerThread.java)开始服务HeadsetObserver。

class HeadsetObserver extends UeventObserver { 
…… 
public HeadsetObserver(Context context) { 
…… 
startObserving(HEADSET_UEVENT_MATCH); 
init(); 

by karl321 - 移动操作系统 - 2011-12-21 08:41:34 阅读(2366) 回复(0)

在网上搜了些资料,看了后感觉linux的halandroidhal不是一个东西。虽然同样的linux内核,同样都叫做hal。 linux的hal是用户态的进程,是为了向用户态进程提供方便的访问设备的信息(虽然linux为了向用户态进程方便的访问设备已经提供了/dev,/sys文件统和udev进程)。 而android的上是一些用户态共享库,提供设备驱动,用户态进程在用户直接调用hal里的设备驱动函数。 不过对于wifi网卡和sd卡等多进程共享的设备,涉及到多进程...

by mordorw - 内核源码 - 2012-01-13 22:55:31 阅读(1022) 回复(0)