拜請Google大神以後,找到這篇:阅读android有关sensor的源码总结,這篇寫的超級詳細,從上層到底層巨細靡遺的都描述出來了,但他並沒有描述當你有新的 sensor device 時,該怎麼做?
基本上,除了 Kernel driver 以外,還需要寫 library(sensor module),去實作 hardware/libhardware/include/hardware/sensors.h 所提出的介面,也就是上面文章最後面提到的 JNI 函數。這部份可以再參考這篇:Android Sensors Development對 HTC G1 Sensor的剖析。
對照著看,大致上就能了解了。Kernel sensor driver 被實作為一個 input system driver,當有事件時,會把 input event 發出去;sensor module 是被上層的 Sensor service 呼叫,主要是透過 _data_poll 函數詢問 input device 是否有事件並且取得數據。
沒有留言:
張貼留言