android震動(dòng)系統(tǒng)結(jié)構(gòu)移植與調(diào)試的要點(diǎn)

android震動(dòng)系統(tǒng)結(jié)構(gòu)移植與調(diào)試的要點(diǎn)

ID:31726026

大小:74.40 KB

頁(yè)數(shù):6頁(yè)

時(shí)間:2019-01-17

android震動(dòng)系統(tǒng)結(jié)構(gòu)移植與調(diào)試的要點(diǎn)_第1頁(yè)
android震動(dòng)系統(tǒng)結(jié)構(gòu)移植與調(diào)試的要點(diǎn)_第2頁(yè)
android震動(dòng)系統(tǒng)結(jié)構(gòu)移植與調(diào)試的要點(diǎn)_第3頁(yè)
android震動(dòng)系統(tǒng)結(jié)構(gòu)移植與調(diào)試的要點(diǎn)_第4頁(yè)
android震動(dòng)系統(tǒng)結(jié)構(gòu)移植與調(diào)試的要點(diǎn)_第5頁(yè)
資源描述:

《android震動(dòng)系統(tǒng)結(jié)構(gòu)移植與調(diào)試的要點(diǎn)》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、Android震動(dòng)系統(tǒng)結(jié)構(gòu)移植與調(diào)試的要點(diǎn)2012年02月01日05:00it168網(wǎng)站原創(chuàng)作者:小試牛刀編輯:景保玉評(píng)論:0條[IT168技術(shù)】振動(dòng)器負(fù)責(zé)控制引動(dòng)電話(huà)的振動(dòng)功能,Android中的振動(dòng)器系統(tǒng)是一個(gè)專(zhuān)供這方面功能的小系統(tǒng),提供根據(jù)時(shí)間振動(dòng)的功能。振動(dòng)器系統(tǒng)包含了驅(qū)動(dòng)程序、硬件抽象層、JN1部分、Java框架類(lèi)等幾個(gè)部分,也向Java應(yīng)用程序?qū)犹峁┝撕?jiǎn)單的API作為平臺(tái)接口。Android振動(dòng)器系統(tǒng)的基本層次結(jié)構(gòu)如圖23-1所示。筍中Android應(yīng)用平臺(tái)APIJX▲圖23-1Android振動(dòng)器系統(tǒng)的基本層次結(jié)構(gòu)1、振動(dòng)器部分的結(jié)構(gòu)Android振動(dòng)器系統(tǒng)自下而

2、上包含了驅(qū)動(dòng)程序、振動(dòng)器系統(tǒng)硬件抽象層、振動(dòng)器系統(tǒng)Java框架類(lèi)、Java框架中振動(dòng)器系統(tǒng)使用等幾個(gè)部分,其結(jié)構(gòu)如圖23-2所?seiJava框架xzVibrato^erviceJNIVibrator本地框架內(nèi)核(libha^dwarejegacy.so)I._振動(dòng)器驅(qū)動(dòng)ITimedII—-j/JOutput

3、:移植部分▲圖23-2Android振動(dòng)器系統(tǒng)的結(jié)構(gòu)自下而上,Android的振動(dòng)器系統(tǒng)分成了以下部分。⑴驅(qū)動(dòng)程序:特定硬件平臺(tái)振動(dòng)器的驅(qū)動(dòng)程序,通?;贏ndroid的TimedOutput驅(qū)動(dòng)框架實(shí)現(xiàn)(2)硬件抽象層光系統(tǒng)硬件抽象層接口路徑為:hardware/lib

4、hardware」egacy/include/hardware」egacy/vibrator.h振動(dòng)器系統(tǒng)的硬件抽象層在Android中已經(jīng)具有默認(rèn)實(shí)現(xiàn),代碼路徑:hardware/libhardware」egacy/vibrator/vibrator.c振動(dòng)器的硬件抽象層通常并不需要重新實(shí)現(xiàn),是libhardwarejegacy.so的一部分。(2)JNI部分代碼路徑:frameworks/base/services/jni/com_android.server.VibratorService.cpp這個(gè)類(lèi)是振動(dòng)器的JNI部分,通過(guò)調(diào)用硬件抽象層向上層提供接口。(4)Java

5、部分代碼路徑:frameworks/base/services/java/com/android/server/VibratorServicejavaframeworks/base/core/java/android/os/VibratorjavaVibratorServicejava通過(guò)調(diào)用,VibratorServiceJNI來(lái)實(shí)現(xiàn)com.android.server包中的VibratorService類(lèi)。這個(gè)類(lèi)不是平臺(tái)的API,被Android系統(tǒng)Java框架中的一小部分調(diào)用。Vibratorjava文件實(shí)現(xiàn)了android.os包中的Vibrator類(lèi),這是向Java層

6、提供的APIO2.移植內(nèi)容針對(duì)特定的硬件平臺(tái),振動(dòng)器系統(tǒng)的移植有兩種方法。第一種方法(通常情況):由干已經(jīng)具有硬件抽象層,振動(dòng)器系統(tǒng)的移植只需要實(shí)現(xiàn)驅(qū)動(dòng)程序即可。這個(gè)驅(qū)動(dòng)程序需要基于Android內(nèi)核中的TimedOutput驅(qū)動(dòng)框架。第二種方法:根據(jù)自己實(shí)現(xiàn)的驅(qū)動(dòng)程序,重新實(shí)現(xiàn)振動(dòng)器的硬件抽象層定義接口儒要在libhardware.legacy.so庫(kù)中),由于振動(dòng)器硬件抽象層的接口非常簡(jiǎn)單,因此這種實(shí)現(xiàn)方式也不會(huì)很復(fù)雜。1.驅(qū)動(dòng)程序Vibrator的驅(qū)動(dòng)程序只需要實(shí)現(xiàn)振動(dòng)的接口即可,這是一個(gè)輸出設(shè)備,需要接受振動(dòng)時(shí)間作為參數(shù)。由于比較簡(jiǎn)單,因此Vibrator的驅(qū)動(dòng)程序可以

7、使用多種方式來(lái)實(shí)現(xiàn)。在Android中,推薦基于Android內(nèi)核定義TimedOutput驅(qū)動(dòng)程序框架來(lái)實(shí)現(xiàn)Vibrator的驅(qū)動(dòng)程序。TimedOutput的含義為定時(shí)輸出,用于定時(shí)發(fā)出某個(gè)輸出。實(shí)際上,這種驅(qū)動(dòng)程序依然是基于sys文件系統(tǒng)來(lái)完成的。drivers/staging/android/@錄timed_output.h中定義timed_output_dev結(jié)構(gòu)體,其中包含enable和get_time這兩個(gè)函數(shù)指針,實(shí)現(xiàn)結(jié)構(gòu)體后,使用timed_output_dev_register()和timed_output_dev_unregister()函數(shù)注冊(cè)和注銷(xiāo)即可

8、。TimedOutput驅(qū)動(dòng)程序框架將為每個(gè)設(shè)備在/sys/class/timed_output/目錄中建立一個(gè)子目錄,設(shè)備子目錄中的enable文件就是設(shè)備的控制文件。讀enable文件表示獲得剩余時(shí)間,寫(xiě)這個(gè)文件表示根據(jù)時(shí)間振動(dòng)。TimedOutput驅(qū)動(dòng)的設(shè)備調(diào)試,通過(guò)sys文件系統(tǒng)即可。對(duì)于Vibrator設(shè)備,其實(shí)現(xiàn)的TimedOutput驅(qū)動(dòng)程序的名稱(chēng)應(yīng)該為"vibrator”。因此Vibrator設(shè)備在sys文件系統(tǒng)中的方法如下所示:#echo"10000">/sys/clas

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。