我想編寫一個應用程序,它可以從不同的傳感器(GPS,Acc,Gyro,Compass)讀取儘可能多的傳感器值(每次)。所以我必須調查使用NDK是否有優勢。Android:通過使用NDK和輪詢提高傳感器採樣率
這裏是我的問題:
a)從傳感器讀取傳感器值時,有什麼瓶頸?它是Senosr本身還是Java?我可以通過使用NDK來提高費率嗎? (我認爲GPS的瓶頸是傳感器本身,但我讀過例如陀螺儀傳感器速度很快) 我發現了this thread,它似乎是傳感器的瓶頸。有人能證實這一點嗎?
b)輪詢而不是使用EventListener會提高速度嗎?什麼是快速讀取傳感器值的最佳方式?
c)是否使用NDK對應用程序的功耗有任何影響?我沒有發現任何關於此事的信息。
d)我是Android新手。使用NDK而不是普通的Java更有價值嗎? 根據這個sample-code,使用事件隊列與傳感器交互似乎很簡單,但編譯代碼並從應用程序使用代碼有多少功能?
在此先感謝。
謝謝你的回答,但那不是我要求的。問題在於如果使用C++(NDK)而不是Java(SDK)會有好處。 – steckl 2012-09-23 14:18:02
我們使用JNI將來自Java的G傳感器數據傳遞給本機,並發現沒有問題。 – 2012-09-23 14:43:14
你從你的方法中獲益嗎?你爲什麼不直接使用NDK的傳感器接口? 對我來說,你的方法沒有任何好處,因爲我不對傳感器數據做任何計算,只是將它轉發給服務器。 – steckl 2012-09-23 15:06:45