色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

Android Sensor HAL層深度解析:結(jié)構(gòu)體、流程與平臺適配調(diào)試

Android Sensor HAL層深度解析:結(jié)構(gòu)體、流程與平臺適配調(diào)試 簡介面向Android系統(tǒng)開發(fā)者的傳感器HAL層源碼包聚焦傳感器硬件抽象層的內(nèi)部實(shí)現(xiàn)適合需要深入理解傳感器框架、進(jìn)行自定義ROM或硬件適配的工程師尤其對系統(tǒng)級開發(fā)者價值明顯。包內(nèi)含27個文件包括13個C源文件、12個頭文件、1個靜態(tài)庫和1個構(gòu)建腳本源文件與頭文件實(shí)現(xiàn)傳感器驅(qū)動及HAL接口覆蓋加速度計(jì)、陀螺儀、磁力計(jì)、光感與接近傳感器等靜態(tài)庫提供MEMS融合算法構(gòu)建腳本負(fù)責(zé)編譯集成整體僅71KB。目前已有913人學(xué)習(xí)/下載。通過閱讀各傳感器驅(qū)動、輸入事件讀取與傳感器檢測模塊可梳理從底層文件節(jié)點(diǎn)讀取事件、數(shù)據(jù)校準(zhǔn)到HAL接口上報(bào)的完整鏈路掌握獲取傳感器列表、批處理、使能等核心接口的底層行為同時還能了解多傳感器協(xié)同、MEMS融合算法封裝、功耗優(yōu)化以及新增傳感器硬件的移植思路為系統(tǒng)級調(diào)試、性能調(diào)優(yōu)和故障排查提供直接參考。 接手過一個傳感器調(diào)試任務(wù)現(xiàn)象很典型上層應(yīng)用能讀到加速度計(jì)和陀螺儀的傳感器列表但數(shù)值永遠(yuǎn)停在同一個位置。第一反應(yīng)是查應(yīng)用代碼查了三天一無所獲。后來偶然打開HAL層的調(diào)試日志才發(fā)現(xiàn)數(shù)據(jù)鏈路早就斷了——問題根本不在應(yīng)用而在android的sensor hal層。那次經(jīng)歷之后我花了不少時間把HAL層的接口、結(jié)構(gòu)體、平臺適配邏輯完整梳理了一遍才真正看懂這個最深處的守門人在整條鏈路里扮演的角色。這篇文章的目標(biāo)很明確把sensor hal層里的關(guān)鍵結(jié)構(gòu)體、調(diào)用流程、平臺差異和排查方法講清楚。適合正在做驅(qū)動適配、系統(tǒng)中間件開發(fā)、傳感器bring up的工程師也想讓對傳感器內(nèi)部機(jī)制好奇的應(yīng)用層開發(fā)者知道一個傳感器沒數(shù)據(jù)的問題到底要過幾道門才能定位到根因。1. Sensor HAL層到底藏了什么密碼先看清整條數(shù)據(jù)鏈路1.1 從觸摸屏幕到傳感器數(shù)據(jù)一次上報(bào)要過幾道門很多Android開發(fā)者對傳感器框架的印象是注冊一個Listener然后等回調(diào)。但在回調(diào)的背后數(shù)據(jù)要穿過一條相當(dāng)長的鏈路。應(yīng)用層通過SensorManager.getDefaultSensor()拿到傳感器實(shí)例再通過registerListener()訂閱數(shù)據(jù)。這一步會向下走進(jìn)SensorManager的JNI層再通過Binder進(jìn)入SystemServer里的SensorService。SensorService是系統(tǒng)里的傳感器管理中樞它統(tǒng)一管理所有傳感器客戶端、事件分發(fā)和權(quán)限控制。SensorService真正取數(shù)據(jù)時會調(diào)用SensorDevice而SensorDevice做的事情是通過hw_get_module()加載一個以libsensors.xxx.so命名的HAL庫。這個so文件就是HAL層。它通常由芯片廠商或整機(jī)廠商提供向上實(shí)現(xiàn)Android定義的標(biāo)準(zhǔn)接口向下通過設(shè)備節(jié)點(diǎn)、I2C/SPI總線甚至協(xié)處理器和內(nèi)核驅(qū)動及物理傳感器交互。數(shù)據(jù)上報(bào)的方向則完全反過來傳感器硬件產(chǎn)生中斷或數(shù)據(jù) - 內(nèi)核驅(qū)動讀取寄存器 - HAL層通過poll輪詢或中斷事件拿到原始數(shù)據(jù) - 做濾波、校準(zhǔn)、坐標(biāo)轉(zhuǎn)換 - 交給SensorService - 再分發(fā)給上層應(yīng)用的回調(diào)函數(shù)。所以一次看似簡單的加速度計(jì)數(shù)值變化至少經(jīng)過應(yīng)用、框架、Native服務(wù)、HAL、內(nèi)核驅(qū)動、硬件六個環(huán)節(jié)。每一層都可能截?cái)鄶?shù)據(jù)而HAL層是唯一一個接口是公開的、實(shí)現(xiàn)是閉源的環(huán)節(jié)也是最難排查的環(huán)節(jié)。1.2 為什么說HAL層是獨(dú)家的HAL層的獨(dú)家體現(xiàn)在兩個層面。第一接口標(biāo)準(zhǔn)是公開的但具體實(shí)現(xiàn)每家都不同。AOSP定義了一套統(tǒng)一接口Android上層只認(rèn)這套接口但同一顆加速度計(jì)芯片在高通平臺上和MTK平臺上的HAL實(shí)現(xiàn)可能完全不同。高通的HAL往往會把傳感器邏輯下沉到DSP協(xié)處理器MTK則依賴自己的Sensor Hub硬件海思平臺又有自己的配置通道。上層看到的都是同一個SensorDemo底下的實(shí)現(xiàn)卻是八仙過海。第二真正的算法和校準(zhǔn)參數(shù)全都鎖在HAL層里。姿態(tài)融合、計(jì)步識別、握持檢測、溫漂補(bǔ)償這些獨(dú)家配方不會放進(jìn)內(nèi)核也不會放進(jìn)框架而是以靜態(tài)庫或私有配置的方式跟HAL綁定在一起。這也是廠商之間拉開體驗(yàn)差距的護(hù)城河。所以如果你想搞清楚某個平臺上傳感器的性格最直接的路徑就是打開它的HAL層代碼。2. HAL頭文件里的簽名檔sensors.h關(guān)鍵結(jié)構(gòu)體逐個啃2.1 sensor_t一張傳感器的身份證不管哪家平臺的Sensor HAL頭文件里第一個繞不開的結(jié)構(gòu)體就是sensor_t。它描述了一個傳感器的所有靜態(tài)能力上層拿到這張身份證后才知道怎么使用這個傳感器。下面是實(shí)際產(chǎn)品里必須填對的核心字段字段作用注意點(diǎn)name / vendor傳感器名字和廠商會影響用戶看到的顯示名handle傳感器的唯一句柄上層用這個ID來指定操作哪個傳感器一般從0開始編號type傳感器類型對應(yīng)SENSOR_TYPE_ACCELEROMETER、SENSOR_TYPE_GYROSCOPE等上層一大套分發(fā)邏輯依賴這個值maxRange量程加速度計(jì)常見的 ±16g 就要寫成 16.0 嗎不對很多驅(qū)動上報(bào)的是累加值要按實(shí)際轉(zhuǎn)換后的物理單位填寫resolution分辨率1 LSB對應(yīng)的物理量直接影響上層看到的數(shù)值精度power工作電流單位mASensorService做功耗統(tǒng)計(jì)時會用到minDelay最小上報(bào)周期單位微秒對應(yīng)最大采樣率maxDelay最大上報(bào)周期加了report_mode之后這個字段決定batch模式下最低頻率fifoReservedEventCount / fifoMaxEventCountFIFO事件數(shù)用來告訴系統(tǒng)這個傳感器支持多少事件緩存stringType字符串類型標(biāo)識從Android 4.0開始推薦使用比如android.sensor.accelerometerrequiredPermission訪問權(quán)限需要權(quán)限才能訪問的傳感器必須填比如心率傳感器這里要特別強(qiáng)調(diào)maxRange和resolution一定不能隨手抄參考代碼必須跟驅(qū)動里的實(shí)際轉(zhuǎn)換公式對齊。我就見過一個平臺加速計(jì)量程填成2g驅(qū)動實(shí)際輸出是4g的量程結(jié)果上層所有算力都基于錯誤量程做成的計(jì)步器偏差離譜。2.2 sensors_module_t 與 sensors_poll_device_t入口和操作句柄Android的HAL模塊有統(tǒng)一規(guī)范每個HAL都必須導(dǎo)出一個hw_module_t傳感器HAL則通過sensors_module_t擴(kuò)展。這個結(jié)構(gòu)體除了公共接口外最關(guān)鍵的是get_sensors_list()函數(shù)——它返回該設(shè)備上所有傳感器的sensor_t數(shù)組。static const struct sensor_t base_sensors[] { { .name BMI160 Accelerometer, .vendor Bosch, ... }, }; static int sensors_get_sensors_list(struct sensors_module_t* module, struct sensor_t const** list) { *list base_sensors; return ARRAY_SIZE(base_sensors); }上層拿到傳感器列表后再通過open()拿到sensors_poll_device_t這個操作句柄。sensors_poll_device_t繼承了hw_device_t并且擴(kuò)展出了activate、setDelay、poll、batch、flush這些關(guān)鍵函數(shù)。真實(shí)產(chǎn)品里HAL庫必須實(shí)現(xiàn)完整的方法表才能通過框架的加載校驗(yàn)。這里有個容易踩坑的點(diǎn)get_sensors_list返回的傳感器數(shù)組內(nèi)容必須在HAL加載期間保持有效不能是臨時變量否則上層訪問時會拿到野指針。有些平臺為了動態(tài)配置傳感器列表會分配一塊靜態(tài)存儲區(qū)再把可變指針填進(jìn)去。2.3 sensors_event_t上報(bào)數(shù)據(jù)的統(tǒng)一快遞盒上層從poll()里讀到的所有數(shù)據(jù)都用sensors_event_t來承載。這個結(jié)構(gòu)體把多種傳感器類型的事件做成了union針對不同類型切片解釋。typedef struct sensors_event_t { int32_t version; int32_t sensor; int32_t type; int32_t reserved0; int64_t timestamp; union { struct { float x, y, z; } acceleration; struct { float x, y, z; } gyro; struct { float x, y, z; } magnetic; struct { float light; } light; struct { float distance; } proximity; ... }; uint32_t flags; uint32_t reserved1[3]; } sensors_event_t;關(guān)鍵點(diǎn)在于timestamp。這個時間戳必須是CLOCK_MONOTONIC域的系統(tǒng)單調(diào)時鐘不能是CLOCK_REALTIME因?yàn)橄到y(tǒng)休眠時實(shí)時時鐘可能調(diào)整會導(dǎo)致傳感器事件的時間線錯亂。好多傳感器調(diào)試問題都出在這個細(xì)節(jié)上數(shù)據(jù)有、曲線有但時間線不定期倒跳最后定位到就是HAL里直接把內(nèi)核驅(qū)動的jiffies轉(zhuǎn)成了實(shí)時時鐘的毫秒數(shù)。另外一個字段是flags。在batch和direct channel模式下flags會標(biāo)記事件是否來自FIFO、是否為喚醒事件這個不多看一眼后面做功耗優(yōu)化時很容易踩坑。3. 真正干活的三板斧activate、setDelay、poll的實(shí)現(xiàn)邏輯3.1 activate的使能與禁用傳感器不是一開就完事上層調(diào)startListening()之后最終會轉(zhuǎn)化為HAL層的activate(handle, 1)調(diào)用。這個函數(shù)用真實(shí)的物理動作開啟傳感器把GPIO拉起來、通過I2C寫入電源模式寄存器、申請中斷、啟動輪詢線程等。activate(handle, 0)則做相反的事情。實(shí)現(xiàn)activate時的常見坑有同一個傳感器被多個客戶端同時使用但HAL層并不維護(hù)引用計(jì)數(shù)。SensorService已經(jīng)做了上層的客戶端管理它保證只有第一個和最后一個Listener來去時才會調(diào)用activate。HAL層如果自己也做引用計(jì)數(shù)反而容易出現(xiàn)狀態(tài)錯亂。不同上報(bào)模式的傳感器activate之后的預(yù)期行為也不同。連續(xù)上報(bào)型如加速度計(jì)需要馬上開始持續(xù)輸出數(shù)據(jù)on-change型如光感、接近傳感器只在數(shù)值變化時上報(bào)一次one-shot型如顯著運(yùn)動檢測只上報(bào)一次事件后自動進(jìn)入禁用狀態(tài)特殊上報(bào)型如姿態(tài)傳感器通常需要結(jié)合硬件中斷觸發(fā)。這些差異直接影響HAL層的具體實(shí)現(xiàn)方式。3.2 setDelay與batch參數(shù)換算頻率是門算術(shù)課setDelay(handle, period_ns)的參數(shù)是納秒周期的期望值但真實(shí)驅(qū)動往往只支持固定的幾檔頻率HAL層需要把期望值轉(zhuǎn)換成最近的硬件頻率。比如驅(qū)動支持 10ms、20ms、50ms 三檔上層要15msHAL可以取最近的20ms也可以直接向下取整到10ms行業(yè)內(nèi)通常傾向于取不小于請求值的檔位避免頻率不足導(dǎo)致上層計(jì)算的積分漂移。batch()則更復(fù)雜它同時設(shè)置了period_ns、max_report_latency_ns和flags。max_report_latency_ns表示硬件FIFO可以緩存事件多久不上報(bào)這個參數(shù)是傳感器省電的核心。如果傳感器硬件FIFO足夠HAL可以讓傳感器在低功耗模式下持續(xù)采集事件先存進(jìn)FIFO等到超過max_report_latency_ns或者FIFO快滿時再一次性上報(bào)AP側(cè)的cpu可以一直休眠。這也是為什么sensor_t里的fifoMaxEventCount要填準(zhǔn)因?yàn)樗鼪Q定了batch模式下FIFO能裝多少事件比如采樣率100HzFIFO容量為1000個事件那硬件大約可以緩存10秒的數(shù)據(jù)。3.3 poll與線程模型把數(shù)據(jù)穩(wěn)定送到上層poll()是個阻塞函數(shù)SensorService會開啟專門線程調(diào)用它HAL實(shí)現(xiàn)里最常見的做法是內(nèi)部維護(hù)一個環(huán)形緩沖區(qū)當(dāng)傳感器數(shù)據(jù)到來時寫入poll()被調(diào)用時把緩沖區(qū)里的數(shù)據(jù)拷貝到上層數(shù)組并返回事件個數(shù)。如果沒有數(shù)據(jù)則阻塞等待一個條件變量。實(shí)現(xiàn)poll時的幾個關(guān)鍵細(xì)節(jié)多傳感器共用一個poll線程靠傳入的傳感器句柄區(qū)分?jǐn)?shù)據(jù)來源。當(dāng)多個事件同時到達(dá)時poll()返回的是一個數(shù)組框架層會按數(shù)組順序分發(fā)。如果某個傳感器數(shù)據(jù)量大可以在一次poll里返回多個事件。環(huán)形緩沖區(qū)要加鎖且鎖內(nèi)不能做耗時的I2C讀取否則中斷上報(bào)會被鎖拖住。flush操作也要在poll線程里配合完成。上層調(diào)用flush()后HAL層的flush()函數(shù)不能直接返回一個事件因?yàn)槭录仨氉呓y(tǒng)一的事件通道。正確做法是在flush里置一個標(biāo)志讓poll線程在下一個循環(huán)中生成一個META_DATA_FLUSH_COMPLETE類型的事件返回。4. 平臺適配的暗礁高通、MTK、海思的HAL差異4.1 高通平臺從直接操作寄存器到DSP大管家高通老平臺比如MSM8916那一代的Sensor HAL相對簡單很多是直接在HAL里通過/dev節(jié)點(diǎn)操作I2C、SPI設(shè)備。到了后續(xù)平臺高通的傳感器框架逐步演變成以SLPI/ADSP為核心的模式傳感器被掛到DSP側(cè)DSP負(fù)責(zé)采樣和基礎(chǔ)算法AP側(cè)的Sensor HAL通過QMI/fastrpc消息與DSP通信。這個架構(gòu)的直觀影響是HAL層看到的不是一只裸傳感器而是一套運(yùn)行在DSP上的服務(wù)。上層調(diào)activateHAL會把請求包裝成消息發(fā)給傳感器核心再等待DSP的回執(zhí)。所以高通平臺上調(diào)HAL debug的時候不僅要在AP側(cè)打日志還得在DSP側(cè)看診斷輸出。高通平臺還附帶一個比較麻煩的配置點(diǎn)傳感器列表和軸向來。不同機(jī)型裝配的傳感器模組不同同型號主板也可能存在方向角差異這些是通過產(chǎn)品樹的配置文件來描述并由HAL加載的。手勢、休眠時是否保持傳感器上報(bào)等都在這套配置里做改錯一個坐標(biāo)軸所有數(shù)據(jù)都會顛倒。4.2 MTK平臺Sensor Hub與硬件級融合MTK平臺通常有獨(dú)立的Sensor Hub協(xié)處理器甚至是多核MCU架構(gòu)。重力加速度、陀螺儀、磁力計(jì)數(shù)據(jù)先由協(xié)處理器統(tǒng)一采集再由HAL層通過專用通道獲取。觸覺上MTK的功耗表現(xiàn)不錯也是因?yàn)镾ensor Hub把數(shù)據(jù)采集和部分算法從AP里解放了。MTK平臺調(diào)試時有個明顯特點(diǎn)很多傳感器的使能邏輯分散在HAL層和內(nèi)核驅(qū)動的meta通道里。如果單純改HAL而忽略內(nèi)核側(cè)的cust_alsps、cust_acc這類配置宏常常會出現(xiàn)HAL明明已經(jīng)打開了傳感器底層卻沒有數(shù)據(jù)的現(xiàn)象。MTK還通常要求在HAL里對傳感器進(jìn)行坐標(biāo)系轉(zhuǎn)換因?yàn)镾ensor Hub輸出的默認(rèn)坐標(biāo)系跟Android的約定坐標(biāo)系不一致。4.3 海思平臺的configs與pqtool.sh海思平臺在機(jī)頂盒、車載和部分手機(jī)方案中都有應(yīng)用。它的傳感器HAL層比較依賴專用配置文件工程師通常通過一個類似pqtool.sh的腳本在調(diào)試階段把寄存器序列、校準(zhǔn)參數(shù)寫入對應(yīng)配置文件再加載到HAL的初始化流程里。這種腳本生成配置、配置驅(qū)動HAL的模式跟高通和MTK直接用代碼寫死參數(shù)的做法很不一樣。pqtool.sh這類工具的價值在于它可以快速驗(yàn)證寄存器配置是否生效而不用反復(fù)改代碼重編。用這類工具導(dǎo)出的configs文件本質(zhì)上就是廠家傳感器工廠校準(zhǔn)參數(shù)的最終存檔調(diào)試完成后一定要備份好否則量產(chǎn)換料后數(shù)據(jù)漂移會非常嚴(yán)重。4.4 i2c-tools查看傳感器真面目的利器無論哪個平臺拿到一塊新板子第一件事是用i2c-tools確認(rèn)傳感器還在線。Android工程機(jī)上最常用的三個命令是i2cdetect掃描總線上掛著的設(shè)備、i2cget讀寄存器、i2cset寫寄存器。以一顆常見的加速度計(jì)為例寄存器0x0F是芯片ID寄存器。如果I2C地址是0x68掛在I2C總線2上可以用這條命令確認(rèn)它還活著i2cget -y 2 0x68 0x0f正常返回的ID應(yīng)該跟數(shù)據(jù)手冊一致比如0xD1就表示BMI160在線。如果返回異常大概率不是HAL問題而是驅(qū)動、上拉電阻或芯片焊接問題。i2c-tools的價值就是把硬件通沒通和軟件有沒有讀對這兩個問題快速切開省去在HAL層瞎找原因的半天時間。5. 踩坑實(shí)錄從看不到數(shù)據(jù)到HAL層日志的完整排查鏈路5.1 場景一傳感器列表能讀到但是數(shù)據(jù)不動這是最經(jīng)典的問題??吹竭@個現(xiàn)象別急著改代碼按下面的鏈路走一遍。第一步用dumpsys sensorservice確認(rèn)SensorService視角下的傳感器狀態(tài)。命令會列出所有已注冊的傳感器以及當(dāng)前活躍的客戶端。重點(diǎn)看兩點(diǎn)傳感器列表里有沒有目標(biāo)傳感器只有應(yīng)用能拿到列表才說明HAL層的get_sensors_list正常當(dāng)前客戶端有沒有注冊成功如果注冊失敗問題是權(quán)限或handle沖突。第二步用getevent看內(nèi)核事件。傳感器通常通過input子系統(tǒng)上報(bào)運(yùn)行g(shù)etevent -S后晃動手機(jī)看有沒有事件流。如果有事件說明驅(qū)動正常問題卡在HAL到框架之間如果沒有事件說明驅(qū)動或硬件根本沒工作。第三步打開HAL層的調(diào)試日志。多數(shù)HAL實(shí)現(xiàn)都支持設(shè)置屬性或編譯開關(guān)打開ALOGD。把日志打開后看activate有沒有被調(diào)用poll線程有沒有在等數(shù)據(jù)以及事件里帶的傳感器handle是不是應(yīng)用期待的handle。實(shí)際操作中我印象最深的一次是列表正常驅(qū)動事件也正常但HAL里poll的數(shù)據(jù)集死活不動。最后定位到問題出在HAL加載了舊版本的傳感器配置庫庫里的FIFO緩沖沒有真正初始化poll線程一直在空轉(zhuǎn)。這種問題沒有日志定位幾乎不可能憑肉眼發(fā)現(xiàn)。5.2 場景二數(shù)值漂移得像過山車數(shù)據(jù)動是動了但完全對不上物理量靜置時加速度計(jì)讀數(shù)還在往下掉。這類問題大概率出在兩個環(huán)節(jié)校準(zhǔn)參數(shù)沒加載或者坐標(biāo)映射錯誤。用i2c-tools讀原始寄存器看原始值是否穩(wěn)定。如果原始值穩(wěn)定說明硬件沒問題那就是HAL沒把offset和sensitivity應(yīng)用到上報(bào)值上。很多傳感器的校準(zhǔn)參數(shù)存放在/mnt/vendor/sensors/calibration這類路徑如果這些文件缺失或權(quán)限不足HAL會退回默認(rèn)值漂移自然就會出現(xiàn)。坐標(biāo)映射錯誤則表現(xiàn)為翻轉(zhuǎn)會跳變。比如把手機(jī)平放桌面Z軸應(yīng)該接近9.8如果讀數(shù)變成0或者負(fù)值要去檢查HAL里的坐標(biāo)系轉(zhuǎn)換矩陣。這類錯誤最常見的原因是從參考設(shè)計(jì)拷貝代碼時沒有根據(jù)當(dāng)前主板上的實(shí)際裝配方向修改。5.3 場景三功耗下不來省電是傳感器HAL設(shè)計(jì)里繞不開的話題。明明開啟了batch模式功耗還是居高不下通常要檢查三件事FIFO配置有沒有用上喚醒傳感器有沒有被頻繁使用poll線程有沒有在無事件時真正休眠。FIFO配置這塊我實(shí)測過把fifoMaxEventCount從100改成0之后同樣場景下整機(jī)功耗直接多了幾十毫安因?yàn)槊總€事件都會立即喚醒AP。對喚醒傳感器Android框架有獨(dú)立的紅外喚醒通道但HAL層必須正確標(biāo)記SENSOR_FLAG_WAKE_UP標(biāo)志否則傳感器事件無法在系統(tǒng)休眠時喚醒AP。5.4 排錯工具速查工具用途使用時機(jī)dumpsys sensorservice查看傳感器列表和客戶端狀態(tài)優(yōu)先使用getevent -S看內(nèi)核input事件流判斷驅(qū)動好壞i2cdetect/i2cget/i2cset直接訪問傳感器寄存器確認(rèn)硬件在不在線HAL層ALOGD日志確認(rèn)activate/poll內(nèi)部行為定位軟件邏輯sensors-stress測試程序壓力測試多客戶端并發(fā)驗(yàn)證穩(wěn)定性6. 不上手的知識點(diǎn)不算真會一個最小Sensor HAL骨架參考很多文章講HAL層只停留在概念這里我直接給一個教學(xué)級別的骨架說明一個最基本的加速度計(jì)HAL要怎么寫。真實(shí)產(chǎn)品必須在對應(yīng)平臺SDK基礎(chǔ)上適配不能直接照抄但對于理解接口關(guān)系這個骨架足夠了。#include hardware/sensors.h static int accel_activate(struct sensors_poll_device_t* dev, int handle, int enabled) { // 打開/關(guān)閉設(shè)備節(jié)點(diǎn)或通過ioctl控制傳感器電源 // 真實(shí)場景這里會寫I2C寄存器 return 0; } static int accel_set_delay(struct sensors_poll_device_t* dev, int handle, int64_t period_ns) { // 將period_ns轉(zhuǎn)換為采樣頻率檔位 return 0; } static int accel_poll(struct sensors_poll_device_t* dev, sensors_event_t* data, int count) { // 讀取驅(qū)動緩存或設(shè)備節(jié)點(diǎn)填充sensors_event_t data[0].type SENSOR_TYPE_ACCELEROMETER; data[0].sensor 0; data[0].timestamp systemTime(SYSTEM_TIME_MONOTONIC); // data[0].acceleration.x ...; // data[0].acceleration.y ...; // data[0].acceleration.z ...; return 1; } static struct sensors_poll_device_1_t sensor_device { .common { .tag HARDWARE_DEVICE_TAG, .module sensor_module, .close sensor_close, }, .activate accel_activate, .setDelay accel_set_delay, .poll accel_poll, .batch accel_batch, .flush accel_flush, };編譯時把這個文件所在的模塊加進(jìn)平臺的PRODUCT_PACKAGES或者直接放在vendor包中編譯產(chǎn)物就是libsensors_xxx.so。然后用dumpsys sensorservice驗(yàn)證能否看到傳感器列表再用一個測試APK或sensorstest讀取數(shù)據(jù)。這塊骨架里最容易被忽略的是.common.module必須指向一個合法的sensors_module_t而sensors_module_t里必須實(shí)現(xiàn)get_sensors_list。如果這兩個指針沒對齊HAL加載會直接失敗但錯誤提示往往藏在logcat較深的地方不容易被發(fā)現(xiàn)。時間戳這一欄也要認(rèn)真處理不要用time()這類秒級時鐘而要用systemTime(SYSTEM_TIME_MONOTONIC)或clock_gettime(CLOCK_MONOTONIC)否則框架層融合算法的數(shù)據(jù)順序會亂。寫這個骨架的過程中我反復(fù)提醒自己HAL層不是寫一個接口就完事每個字段、每個返回值都是跟上下層之間的一紙契約。你對契約的理解越精確調(diào)起問題來就越有底氣。這種先看鏈路再看協(xié)議、先確認(rèn)硬件再定位軟件的排查方式我自己用了很多年實(shí)測是處理傳感器問題效率最高的路徑。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
激情久久av一区av二区av| 久久久蜜桃一区二区三区| 啊啊啊啊好疼视频| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | a亚洲欧美色欲| 丁香婷婷激情五月天无毒不卡 | 国产成人拍国产亚洲精品| 精品国产国产AV| 色婷婷99| 日韩性爱高清免费视频| 国产精品一区二区手机看片| 啊啊啊 在线| 久久久婷婷婷| 五月丁香社区婷婷日韩欧美精品影院 | 欧美天堂超碰97| 亚洲五月婷婷| 日韩性爱免费视频在线网站| 亚洲情色欧美| 中国特猛少妇色xxx| 亚洲吊色| 美女久久久久久久| 蜜臀av一区二区三区免费观看| 麻豆国产精品午夜视频| 97国产超碰| 208天天久久九九九| 九九热精品在线| 无码少妇精品一区二区60岁老人| 国产成人亚洲精品无码古代早漏男| 60秒不遮不挡| 亚洲 日本 不卡| 91男人天堂网| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 久草线上视频免费看| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 激情小说图片亚洲首页| 久久久9999| 嗯~啊~快点 死我视频免费看网站| 日韩欧美女优电影| 国产亚洲 中文欧美久久| 黄色一级视| 欧美日韩国产黄色片| 天天操夜夜操| 日韩熟女操逼| 久久天天艹| 74成人在线| 久久精品| 日本1区2区不卡视频| 精品久| 欧美综色欧| 男人天堂综合| 日日干夜夜欢| 一级免费精品| 四虎精品一区二区| 午夜乱轮操逼视频免费看| 亚洲囯产精品女人久久久| 一级人妻性爱视频| 探花熟女,姿勢到位,體驗感也到位| 欧美大香蕉久| 成功精品影院| 亚洲中文字幕乱码无码一区二区| 色在线69堂| 97超碰人操| 十八禁一区二区无码观看| 欧美午夜视频| 九九九久久久W精品| 美女黄站| 国产操伦| 中文字幕交换人妻| 又黄又爽在线观看视频| 综合激情97 | 370p日韩欧美亚洲精品| 国产树林里野战在线看| 色噜噜狠狠色综无码久久合欧美| 亚洲国产欧美日韩人妻日中文| 欧美大香蕉同搞| 久久亚洲欧美中文字幕国语| 日日碰狠狠添天天爽超| 少妇99成人麻豆| juliaann精品熟女一区| 欧美韩日精品99综合| 精品夜夜澡人妻无码AV| 亚洲欧美国产va在线播放频| 国产日本久久免费精品| 夜夜爽妓女| 东北女人的毛片| 热久久无毒不卡| 久久99九九九九6666免费观看软件| 狠狠操使劲操| 毛片电影一区二区三区| 99www.bibizy香蕉资源国产一区二区三区高清 | 后入式在线免费观看60秒| 久久综合av| 精品午夜福利| 国产精品亚洲一区二区三区四区| 成人无码专区精品视频| 欧美翘臀视频网站一区二区三区| 欧美一区二区一级岛国大片| 久久欧美1卡2卡3| 九九国产热| 超碰4A| 大香蕉黄色一级片免费看| 动漫爆乳3D奶水一区在线观看| 九九九久千久久激情蜜桃在线看 | 高精欧美色| 亚洲国产一区二区日韩专区| 色综合加勒比四四季| 99最新日韩偷拍视频| 国产家庭乱伦性爱视频| 男人的天堂亚洲| 欧美色图私拍91| 亚洲高潮影院| 蜜乳av一区二区| 中文字幕日韩综合| 校园春色亚洲色图| 国产精品99久久久www| 日韩精品99999| 老女人老91妇女老热女| 国产精品久久久无码AV网站| 激情五月天校园春色网| 亚洲欧洲精品视频发布| 亚洲AV无码久久精品蜜桃小说| 999久久久国产精品| 激情看片网站| 亚洲色图综合网| 久久五月天婷婷丁香中文字幕| 女优视频第10页| 超碰无码五月97| 中国熟女老妇仑乱一区二区三区| 久久久9品一区二区三区| 97国产|免费| 国产精品午夜高潮呻吟久久av| 青青草好吊| 日日碰狠狠添天天爽超| 欧美综合综合| 久久久久久中文字幕中文字幕最新| 国产精品成人午夜福利| 国产99 中文字幕日韩小视频| 男人的天堂无码| 国产精品盗摄 偷窥盗摄| 91女在线观看| 午夜无码精品免费看性色| 国桃视频产巨乳精品一区二区在线| 日韩操逼HD| 加勒比色综合| 理论久久婷婷网 8| 人干人人人操人人摸| 99精品无码| 婷婷五月色| 日本韩欧美在线播放a| 91在线一起| 啊啊啊啊嗯嗯嗯用力好爽| 国产 日韩 欧美一区| 一区 欧美 日韩 麻豆| 欧美一区二区三区入口| 九九九九精| 日韩三级在线观看mp4| 国产免a费看黄片在线| 欧美性五月| 日本有码影片下载| aaaa少妇高潮大片| 亚欧高清| 久久国产乱子伦精品免费女,网站| 玖玖爱综合| 亚洲成av人片色午夜乱码| 亚洲日韩精品久久久久一区壹牛| 亚洲男人天堂网站| 久久人妇| 久热久一区二区三区| av无码精品久久久久| 久久精品一区二区| 亚洲性综合| 大稥蕉免费视频这里只有精品| 国产日韩区| 亚洲欧美色图片| 任你干在线视频| 96AV久久久| 国产亚洲99久久精品| 久久久精品电影| 美女黄页网站| 4tube欧美女厕所| 嗯嗯啊啊啊好舒服| 97天堂| 日本污ww视频网站| 免费?级毛片无码?∨蜜芽试看| 好湿好紧视频| 丰满少妇精品一区二区| 国偷自 一区二区| 爽爽爽免费视频| 嗯啊不要在线观看嗯啊| 一区二区偷拍拍视频| 亚洲成熟国产精品美女| 亚洲春色欧美激情自拍| 亚洲字幕一区二区| 国产精品呦一区二区三区| 亚洲精品九九九| 香港久久久| 乱色老一区二区三区的观看方式| 亚洲精品蜜桃久久久久久久| 好看的91视频| wwe 天天干.com| 久久婷婷色综合一区二区三区| 99在线精品观看99| 97午夜剧场日韩| 激情网五月天| 天天影视网综合少妇| 日本久久99| 激情五月天丁香社区| 日本一区二区成人在线| 中日韩欧美精品无码AⅤ一区二区| 国产专区第一页| 国产网站在线播放| 一区二区三区精品视频| 色婷婷色99国产综合精品| 婷婷在线精品| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 超碰免费人人| 久久久草成人网站久久久草成人久久久草久久久| av凤凰久久久| 熟妇人妻精品一区二区视频色欲| 欧美黄页在线| 一区二区三区日韩欧美| 天天看高清麻豆| 色阁阁AV综合网| 97超碰这里只有精品| 久草综合视频| 久久妇| 97伊人超碰| 欧美日韩资源| 国产白嫩漂亮KTV在线| 日韩乱伦视频| 插入综合网| 美女的肌被草喷水视频| 九色 蝌蚪 熟女自| 大学生美女口爆| 中文字幕国产在线天堂| 操B视频日韩无码| 93人人操人人| www.狠狠干.coom| 亚洲激情 欧美色图| 98福利在线视频| 国产精品在线免费| 无码不卡八戒| 国产亚洲在线| 狠狠躁天天躁日日躁| 亚洲综人| 亚洲天堂五月天国产| 性色av蜜臀av色欲aV| 欧美国产日韩高清在线| 青青草十区九区爱夜| 手机久操欧美综合色码| 久久一二三四| 日本高清一区二区在线| 精品久一区免费| 日本三级韩国三级美三级91| 懂色av一区二区三区天美传媒| 一级岛国大片| 日韩草久视频| 中文 人妻 制服| 色色香蕉| 91爰爱欧美| 在线欧美亚洲| 无码国产精品午夜不卡(| 精品乱子一区二区三区99| 伊人在线大香蕉视频久久| 久久久久久久唑| 成人激情无码在线视频| 在线一区| 粉嫩av平台| 久久xx| 智利AV在线网| xxxx网站亚洲精品| 蜜臀精品1区2区| 精品免费囯产一区二区三区| 国产精品成人无码av无码免费| 亚洲五区熟女| 3PAV乱伦视频| 99无码| 免费视频观看60秒| 欧美做爰无码A片视频| h色99999| 色婷婷五月综合激情中文字幕| 免费网站观看www在线观| 屁股久久久久久| 亚洲精品美女久久久久久久久| 久热精品色情| 久久精品日韩| 久操网在线| 第四色奇米影视777| 18精品一区| 日韩猛交| 美女裸体麻豆天美蜜桃91| 无码人妻精品酒店| 天天综合~91入口| 啊啊啊啊好多水| 97av在线视频| 午夜精品久久一区二区| 亚洲伊人久久精品狠狠在线| 色综合国产在线观看| 日本特黄f c2| 国产精品日韩在线一区| 97资源免费视频| 懂色中文一区二区三区| 97一区二区三区视频| 国内毛片国产欧美拍| 91网站视频在线观看| 1769国内精品视频| 日韩欧美中文字| 国产日韩欧美亚洲精品95 | 手机看片91人妻| 4141514逼喷水三级片| 中文字幕天堂在线| 美女丝袜激情小说| 亚洲激情四射| 丝袜人妻av一区二区| 艳尻美人妻| 户外裸露刺激视频第一区| 久久精品91| 国产欧美一区激情交| 青青草好吊色| 天天弄欧美| 91精品女厕偷拍视频| 死我十八禁| 久久久草成人网站久久久草成人久久久草久久久 | 成人无码专区精品视频| 免费一级a毛片久久久久久鸭绿欲 国产精品亚洲天堂网址 | 国产日韩怡红院| 超碰97欧美在线| 极品欧美一区二区三区| 欧美第五页| 18精品一区| 久草国产在线视频| 爱逼综合| 久热这里| 日韩av色图| 五月丁香啪| 91精品无码久久久久久久| 久久动漫精品视频这里只有精品| 国产99 中文字幕日韩小视频| 美欧色综合| 九九热视频这里只有精品| 影音先锋中文字幕日本好一区二区| 欧美图片校园春色| 欧美久久人妻少妇一区二区| 东京热男人的天堂网| 国产成人无码a| K8久久久久| 91夜夜蜜桃臀1区2区3区| 日本国产欧美高清在线| 加勒比在线观看一区二区| 欧美劲爆第一页| laoshunv91| 亚码激情| 欧美性爱另类综合| 一区二区三区黄色片a| 免费国产视频| 欧美97av| 亚洲欧美啪啪| 91AV天美在线视频| 99re在线观看| 亚洲AV免费在线观看| 国产女人成人精品视频| 日韩人妻一二三区视频| 激情五月天插| 成年人三级黄色片视频| 午夜亚洲国产理论秋霞| 国产v片在线免费观看| 99re这里只有| 精品国产乱码久久久久久免费| 天堂伊人久久| 青青草日本中文字幕| 天天看天天综合成人网| 999久久久精品国产| 在线观看中文av字幕| 日韩欧美aⅴ综合网站发布| 91这里只有精品| 超碰97 线线 在现| 啊v在线观看视频| 99999久久精| av橘色网站| 天天天堂影视日韩亚洲91| 天天综合网1| 人妻社区男人天堂| 九九热超碰97亚洲最新香蕉| 91丝袜美女| 91 国产丝袜在线放观看| 激情六月天| 又大又黄国产| 麻豆国产av网| 成人精品视频| 欧美最婬乱婬爆婬牲视频| 97少妇人妻中文字幕久久 | 看一级黄色视频| 亚洲国产激情国产av| 91九色首页| 亚洲日韩一区电影| 亚洲三级网址久久最新| www.高清无码诱惑一区.com| 天天操天天看| 欧美九九九| 男人久久天堂| 51久久夜色精品国产麻豆| 北约熟女超碰| 久久AV无码网址| 五月天伊人| 殴美牲| 97爱爱影院| 人妻熟妇久草在线| 懂色AV网| 亚洲A曰本VA欧美VA视频| 国产精品99精品视频网站| 国产成年精品高清在线观看91| 精品午夜福利国产一区二区在线观看| 久久‘黄片视频| 99精品无码| 啊啊啊啊啊在线视频| ...日韩成人一区二区三区字幕| 欧美第二页午夜| 91亚洲欧美激情| 日韩成人无码| 色综合久久88色综合久久天天| 综合熟女| 中文字幕超碰CAO| 亚洲狠狠入| 日韩免费簧片| 天天躁日日躁AAAXX| 精品一区二区三区最新| 97伦乱| 少妇久久久| 国产成人手机视频激情| 色噜噜综合在线| 99re这里| 一区二区免费电影久久| 婷婷丁香六月天| 色婷婷久久综合超碰| 色原狠狠天天天| 国产偷拍网站| 欧美激情综合色综合啪啪五月| 日韩78m视频| 好属操| 性做久久久久久免费观看软件| 97超碰色屌| 美女爽到高潮91| 人妻干天天| Julia在线播放亚洲久久| 老女人碰碰在线碰碰视频| 大香蕉中文| 天天天天天天天天天天干美女| 一区二区三区国产精产| 五十路熟女人妻一区二区三区四区五| 成人免费福利在线观看| 久久久熟妇熟女国产| 国产精品视屏| 国产毛片精品一区二区色欲黄A片| 九九九九九九成人| 亚洲中字幕日本一区二区三区| 操比国产| 亚洲素人综合| AV免费在线播放一区| 中文字幕一区二区三区人妻少妇在线| 在线二区不卡| 欧美婷婷五月天| 黑人干亚洲| 人妻 丝袜美腿 中文字幕| 天堂av2019| 91 丝袜在线播放| 久久久国产三级黄色片| 亚洲在钱| 人人摸人人叼| 欧美综合传媒| 黄网色一区二区三区四区精品| 亚洲免费97免费| 偷拍偷窥与盗摄视频专区| 校园春色之综合网| 综合久久9| 日本人体九九九九九九| 日本不卡一区| 97中文字幕色| 北约熟女超碰| 超碰这里有精品| 人人干人人操人人..com| 亚欧洲一区二区视频| 日韩激情啪啪啪| 国产精品一区二区后入| 爱做久久久久久| 性欧美| 97香蕉碰碰人妻国产欧美| 亚洲影视第一页| 911粉嫩人妻| 欧美成人精品一区二区男人蜜臀| 国产日韩欧美三级片| 亚洲色图片区| 青青青国产| 国内精品久久人妻性色av| 香蕉99秘 一区精品蜜桃臀| 牛黄色久午久| 国产熟妇 码视频户外直播| 91色黑人少妇| 欧美经典一区二区三区| 欧美性五月| 中文字幕在线观看视频www| 91欧美网| 96爱综合| 立川理惠无码一区二区| 日日操夜夜操天天操免费观看麻豆| 丁香五月婷婷基地| 日本操逼aaaaa| 久久久男人的天堂| 色色综合网站| 久久透逼视频| 四虎免费在线播放| 啪啪AV导航| 人妻啪| 五月丁香婷婷啪啪| 亚洲狼狼干综合1| 日韩人妻播放| 欧美第二页| 亚洲美女黄色| 国产精品网站www| 浪人综合网| 国产精品高潮久久久无码| 在线情色电影 91大 | 国产毛片片精品天天看视频| 好爽要喷了| 高树玛利亚无码流出| 91精品国产高清久久久久久,亚洲成人| 亚洲黑人在线| av天堂加勒比| 99re这里| 美女91在线观看| 日本免费中文一区二区三区四区| 免费看黄视频亚洲网站| 蜜乳中文字幕a在线| 青青久日| 麻豆a'v电影| 亚洲av热热色| 用力操死我| 久久久久久亚洲精品不卡人乳| 亚洲暴力强奸AV| 51国产午夜精品视频| 97在线视频免费| 噜噜噜噜天天狠狠| 欧美日日人人天天| WWW美腿丝袜香蕉中文| 久草毛片电影怡| 国产性刺激| 精品无码一区二区| 六六久久日韩不卡| 色香色香欲天天天影视综合网| www.av在线观看| 欧美日韩国产中文精品字幕自在自线 | 操操逼操操逼操操逼逼| 成人av影院在线观看| 欧美片第一页| 国产不良强奸视频免费看| 日韩一级二级三级在线不卡观看完整| 欧中美三级一区二区三区| 视频在线观看青青99国产| 狠狠2050在线观看| 日本精品一区二区三| 精品少妇人妻| 蜜桃臀AV在线| 色亚洲欧美| 91热热色| 久久精品—区二区三区内射| 嗯嗯啊啊好爽| 国产强奸乱伦欧美| 性久久久| 黄色av片三级三级三级免费看| 日韩 欧美 视频 在线 一区| 日本操逼视频导航| 黄色av一区二区在线| 欧洲一区二区三区免费| 乱码熟妇人妻久久久| 欧美在线色图| 玖玖爱伊人玖玖爱| 78m成人视线| 97色亚洲| 亚洲免费在线探花| 深田咏美亚洲精品福利社 | 精品免费成人久久| 熟女人妻精品一区二区视频 | 成人婷婷丁香| 91天天综合网,天天综合网| 亚州色国| 91色亚洲| 嫩草美女久久| 日韩中文字幕二区| 婷婷综合在线观看| 国产精品丝袜久久亚洲不卡| 久久99干一本高清| 欧美一级AAAAAAA| 约操熟妇| 99久久无色码| 国桃视频产巨乳精品一区二区在线| 亚洲人精品久久久| 日本爽爽爽爽爽爽免费视频| 无码国产精品久久久久| 大香蕉伊人亚洲| 欧美在线视频播放| 精品视频一区二区| 日韩AV无码中文一区二区| 日本三级中国三级99人妇网站| 嗯嗯啊啊亚欧精品| 欲色综合| 国产精品久久久久久照片| 亚洲综合激情五月久久| 超碰夫妻97| 一区二区三区麻豆| 日韩欧美国产一区二区三区四区| 亚洲天堂,男人| 99精品高潮| 四虎精品永久在线播放| 亚洲国产一区二区三区四区国产| 青青草伊人久久| 99re视频在线播放青草| 人妻 中文 日韩| 亚洲,欧美,春色,另类| 玖玖爱综合网| 日韩国产不卡在线视频| 国产丝袜美女诱惑| 992视频一区| 日韩欧美午夜视频在线| 东北女人的毛片| 久这精品中文在线观看视频| 亚洲无线码一区国产欧美国| 今日头条成人一区二区三区四虎精品| 97超碰色色| 日韩精品一区二区三区色欲| 国产欧洲精品亚洲午夜拍精品| 在线观看不卡一区二区三区| 五月天婷婷激情| 色97欧美| 岛国片在线观看视频亚洲| 蜜臀一二三| 国产高清精品一区二区三区毛片 | 国产精品久久久吖| 又黑又大又粗| 男女国产精品| 中文字幕五区| 99热伊人| 中文字幕第页| 中文字幕精品码亚洲| 五月天大香蕉| 加勒比综合在线| 大香蕉啪啪网| 91天堂| 中文字幕二区日韩天堂| 日日爱99| 中文字幕艹艹| 九九精品无码专区免费| 亚洲免费日韩在线一区二区| 91蜜臀熟女| 伊人91| 综合久草| 亚洲无码成人精品| 日韩人妻精品中文字幕| 精品久久久久久中文字幕三区| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 大香蕉黄色一级片免费看| 国产亚洲欧洲在线观看| 欧美不卡二区| 青草伊人网| 五月天激情网站| 搡老女人老91妇女老熟女| 日韩伦理视频| 国产成年精品高清在线观看91| 久操视频免费观看| 国产精品久久伊人| 欧洲亚洲人妻无码高清久久三区四区| 亚洲色久| 无码久久国产| 久久精品99久久久久久| www.色婷婷.com| 毛片久久| 第二页中文字幕| 亚洲最大的综合性av| www.久久超碰| 春色校园综合网| 亚洲AV无码AV吞精久久久久 | 91久久久久免| 国产亚洲性生活视频播放| 99精品久久久久久| 人妻激情偷乱视频一区二区三区| 日韩国产精品人妻无码久久久| 伊人991| 九色婷婷| 国产AAAAAABBBBB| 精品人妻一二三四区视频| 丁香六月婷婷久久综合| 美女熟妇色| 999热日韩精品| 亚洲综合113页| 亚洲最大无码中文字幕网站 | 综合天天网| 9久久精品| 男女日B国产| 亚洲色婷婷综合久久一区二区三区| 视频在线观看一二三区| 欧美网站免费| 黑人美精品 A片| 中文字幕乱妇免费视频| 性爱AV天堂| 亚洲AV无码天美传媒一区| 无码精品一区二区三区潘金莲| 91人妻人人澡人人爽人人精品| 欧美少妇性乱| 色一射色一射| 天天干天天拍| 国产 v乱码一区二| AV在线性爱| 亚洲男人天堂AV| 性欧美| 日韩不卡网操逼中文字幕日韩| 私色综合网| 日韩,欧美,中文在线| 伊人网青青| 加勒比中文av| 欧美亚洲系列| 玖玖综合视频| 久湿久久| 97在线观视频免费观看| 日韩精品人妻系列无码天堂| 日韩成人精品中文字幕| 亚州AV无码国产精品| 国产黄色在线播放观看| 日韩性爱小视频| 神马麻豆福利院| 18精品一二区| 风间由美日韩欧美久久| 一二区在线观看视频| 91欧美丝袜| 欧美激色| AV男人天堂网| 啊啊啊啊啊舒服| 国产诱惑| 国产精品亚洲无码| 国产精品不卡一区二区三区av| 国产熟妇 码视频户外直播| 97Ai亚洲| 一二三区操逼国产91| 免费试看60秒| 91精品国产91久久青草| 日韩在线观看三级电影| 国产捆绑一区| 国产第12页| 国产理论视频在线播放| 熟女色综合久久| 国产18精品亚洲精品| 一区二区娱乐网站| 99re视频在线观看这里只有精品| 67914亚洲精品| 97视频网站在线观看| 精品国产污一区二区三区| 99操| 综合一区二区影视| 亚洲综合色图欧美| 少妇久久久久| 人人做天天爱| 亚洲黄色网址视频| 99超级碰免费视频| 好淫网一二三视区| 欧美日动态视频| 九久久精品| 九七色图| 无码外流操逼视频| 在线观看精品国产免费| 农村妇女一级二级三级视频| 玖玖蜜臀资源网| 麻豆a'v电影| 欧美高清第一页| 成 人片 黄色大片| 久久久精品成人国产| 怡红院视频在线| 国产乱弄免费在线视频。| 日韩人人精品| 亚洲婷婷丁香在线| 国产浮力影院第1页| 久久国产视频性吧 | 亚洲天堂一区二区久久| 国产精品国产拍高清AV| 宅男91视频在线播放| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 麻豆精品久久久久久久| 欧美色图 人妻| 欧美高清色| 午夜无码精品免费看性色| 久久精品小视频| 青青伊人加勒比海| 男人的天堂网页| 自拍大香蕉乱插| 日韩AV中文字幕电影| av日韩中文字幕| 欧美一级AAAAAAA| 97综合在线| 午夜精品久久久久| 亚洲se91| 性爱乱伦网址| 天堂日本亚洲欧美| 亚洲麻豆18发?| 日熟女| 天综合网| 久草成人影片| 国产精品黄色三级av| 99欧美| 国产AB视频| 午夜国产综合视频在线观看| 99啪啪| 天天搞欧美| 男女猛烈无遮掩视频免费软件| 五月综合视频| 99re在线精品78| 亚洲精品一二牛牛| 婷婷99| 99热这里只有精品1| 9国产超碰| 国产四虎在线| 爱爱啊啊啊| 大屁股xxxxx| 亚州欧美综合| 久久精品久久九九精品| 一区=区三区视频| 日逼97| 黄aaaaaaaaaaaaaaaaaa色网站| www.91色| 性感美女啊啊啊在线| 亚洲囯产精品女人久久久| 国产污视频麻豆传媒一区二区| 亚欧美综合网| 97色碰| 中文字幕av片| 久热9| 1区2区3区中文字幕日韩| 男插女青青影院| 日本精品88888888| 色婷婷电影网| 国产精品伦理| 黑人黄片在线免费观看| 加勒比久久av| 翔田千里Av在线| 伊人一区二区三区| 伊人久久综合影院| 热久久99999| 国产精品成人福利在线| 青青草色插素人| 国产aⅴ无码片毛片一级网站| 久悠悠av| 久久国产熟女影院| www.男人天堂| 美女午夜福利免费视频| 超碰在线综合97| 爱av免费| 青青青青操国内视频在线| 超碰亚洲欧美日韩无| 九九九九九九视频免费| 综合国产97| 91视频精品| 久久久久久9999| 国产无马视频| 亚洲色交| 2019AV天堂| 天天综合网日韩7799| 久久人妻一区二区三区高清 | 本道在线| 色婷婷色99国产综合精品| 午夜在线播放| 日本 免费 一区二区三区 久久香蕉 | 亚洲偷拍欧美激情| 九九热精品| 少妇一级无码精品| 欧美 牲| 天堂种子在线www网资源| 一本色道久久综合精品婷婷| 国产大片精久久久久久| 国产女人91精品嗷嗷嗷嗷| 密臀在线视频| 在线视频五十市| 国产区性爱在线视频秋霞豆 | 69AV女优男人的天堂| 26uuu成人影片| 中出人妻中文字幕91在线| 开心五月婷婷激情| av天堂精品久久| 男同专区一区二区三区在线| 中文字幕制服欧美久久一区| av天堂手机版追回| 国产精品96| 玖玖爱伊人玖玖爱| 夜夜嗨AV蜜臀av| 无码在线亚洲| 嫩呦国产一区二区三区AV| 一级免费精品| 亚爽爽爽爽爽爽爽爽| 婷婷五月天伊人| 人人操人人插人人摸人人干| 天美传媒AV在线| 天天操人人操骚逼网站| 天天综合在线4| 一个人免费HD91视频| 亚洲美女av无码| 久久久久久久久女黄| 99re6国产精品99re在线| 美女自卫慰黄网站免费| 91在线超高颜值国产| 草草草视频| 91网站18+| 很黄很污的免费网站| 欧美国产日韩清纯唯美| 亚洲 欧美 手机在线观看| 成·人免费午夜在线观看| 香港久久久| baiduhicn.com。| 亚洲男人天堂网久久| 黑丝内射一区二区三区| 国产精品成人无码av无码免费| 成人午夜高潮av猛片| 熟人人妻少妇精品久久| 超碰97导航| 亚洲凸凹超碰成人| 亚洲最大的黄色电影网站。| 欧美 亚洲 综合 制服| 欧美性爱免费短视频| 人妻少妇久久中文字幕一区二区 麻豆| 东京热,男人的天堂| 久草精品视频| 亚州熟妇精品| 激情四射五月天| 91最新综合| 裸模AV女优| 插入综合网| 91亚洲黑人| 久操黄色视频| 国语人妻精彩刺激| 992这里有精品| 六月婷婷五月丁香| 五月激情啪啪| 女同在线视频一区| 色色激情五月天| 午夜天堂精品久久久久91| www.婷婷五月天| 大香蕉综合在线| AV九九| 男人的天堂一区三区| 爆操无码| 色色热| 日韩有码免费视频| 九九久久久久久爱| 久久av网| 黄网站黄视频网站进入口| 97欧美日韩中文| 2003天天干夜夜操| 日韩av情韩国爱禁区av一区二区| 人妻 欧美亚洲| 99精品无码| 久久肏大逼| 五月花婷婷| 97天天爽| 男人 天堂 日 亚洲| 91操人| 欧美亚洲韩国视频十五区| 中国特猛少妇色xxx| 国产情色第一第二页在线观看| 色99久草| 人妻欧美| 天天影视色香欲综合网小说| 尤物黄色在线观看网站| 男男H黄动漫啪啪无遮挡网站| 免费在线观看国内色片网站网址| 国产成人无码久久精品| 炮色五月| 亚洲综合九| 日本欧美不卡| 九九九九一区| aaa亚无码专区| 十八禁的黄污污免费网站| 日本一区二区成人在线| 另类图片五月| 4虎在线视频| 日韩欧美麻豆 | 人妻熟女一区在| 国产精品suv一区| 天天草AV| 日韩国产精品人妻无码久久久| 91在线超高颜值国产| 国产精品99久久久www| 亚州成人a∨| 九九九九九九九| 日韩有码专区| 乱伦Av网| 日本天堂网| 青草伊人久久| 国内毛片无遮挡国产| 色婷婷香蕉| 精产国品一区二三产品| 99rre在线精品99re8| 葡萄牙性视频一二区| 操逼视频亚洲| 麻豆久久久久久久久丝袜| 日韩亚洲97| 免费a级毛片av无码久久精品中文字幕| 9999免费精彩视频| 天天干天天日天天射黄色片| 上床啊啊啊| 午夜福利精品| 丰满少妇一区二区三区专区| 亚州黄站| 黄片aaaaa一区| 1024亚洲中文字幕久在线看片你懂的| 精品少妇一区二区三区| 午夜无遮挡男女啪啪视频| 色色色欧美| 九99久久| 岛国网址国产 | 国产999精品久久久久久| 蜜臀久久99精品| a亚洲欧美色欲| 久久无码电影| 国产成人天堂| 国产精品露脸在线观看| 秋霞蝌科网日本一区| 亚洲 欧美 另类 综合 偷拍| 欧美少妇高潮视频| 强奸乱伦αv片| 中文字幕女同在线| TS人妖另类精品视频系列| 91N欧美| 91n欧美| 99久久99九九99九九九| 蜜桃视频啊啊啊啊| 亚洲少妇综合在线播放| 激情四射婷婷四五月天| 我想要 啊 啊 啊| 亚洲av在线免费观看| 男女性扦B| 久久高清欧美国产| 久久久96精品| 十八禁视频一区二区| 综合网久久| 一区二区三区亚洲| 啊v视频在线观看| 91精品导航| 欧美日韩高潮喷水91| 日本506070| 亚洲精品 大香蕉| 欧美91精品国产自产| 97 亚洲 日韩 欧美 在线| 九九九九精品精| 丰满人妻一区二区三区| 色妇综合网| 91丝袜美女| 天天躁日日躁狠狠躁| 亚洲熟妇无码一区二区三区| 色欲Av人妻精品一区二| 欧美综合第一| 18禁精品网站在线看| 97精品97久久| 国产成人免费观看在线视频| 欧美后入式| 欧美美女自慰一区二区三区| 超碰九7| 中文字日本乱码| 中文字幕精品日韩中文字幕| 91l欧美在线| 中文字幕狠狠玩| 精品久久久久综合无码| 亚洲天堂另类小说男人| 偷拍 欧美 日韩| 亚洲色图欧美色图制服诱惑| 日本精品成人无码| 日韩在线电影| 天天综合影院91| 无码人妻丰满热妇又大又粗| 成人AV在线网站| 亚洲少妇诱惑| 99热只有这里有精品| 中文字幕午夜精品久久久| 久久ww| 国产三级资源在线观看| 亚洲极品| 深爱五月婷婷| 欧美精品一区二区少妇免费A片 | 老女人综合| 日日干日日| 免费观看国产不卡av| 少妇淫妇久久久久久久| 天天看人人操屄犊摸阴| 性做久久久久久久| 精品九九九九九| 人妻熟女一区二区| 91狠狠综合久久久久久| wwwxxx日本爽| 校园春色亚洲色图| 日本色色色| 超碰在线观看av不卡| 777超碰| 蜜臀无码一区二区| 一区二区三区四区色图| 青青操综合网| 国产在线综合网| 波多野42部激情无码喷潮| 99久久久| 丝袜av一区二区三区| 99热精品在线| 国产亚洲精品玖玖玖在线观看| 韩日欧亚a级| 久久综合久色欧美综合狠狠| 天天欧美色| 精品国产人成在线| 思思久热在线精品66| 欧美激情精品久久久久久| 色综合加勒比四四季| 精品久久久久久亚洲| 国产男女无套视频免费观看| 八戒午夜福利理论片| 蜜桃臀av一区二区| 99国内熟女露脸视频| 操人妻逼91| 青娱乐国产精品| 国产一区二区免费福利片| 婷婷色香伊人| 色网亚洲人| 骚熟女吞| 日本日日色视频| 国产女上位好爽在线| 丁香五月婷婷啪啪| 亚洲欧洲综合成人av一区| 日本人妻最新在线中| 1240青青草一区二区三区视频天爱| 国产第二页| 亚洲精品1区| 夜草欧美| 97一区二区三区视频| 啊a一区在线| 精品视频日日夜夜| 韩国久久97| 男人高清无码一区二区| 精品中文字幕一区二区| 中文字幕一区二区三区四区在线视频| 天天日天天操天天射河南省| 日韩天天综合| 国产精品久久泡妞网站| 久操免费观看| 97视频免费播放| 中文字幕福利视频一区二区三区在线观看| 久久久草草精品| 国产又大又粗又长视频| 久久综合日韩亚洲欧美| 日韩一区二区熟女| 超碰97玖玖爱| 美女AV一区二区| 久久久久久久久久久久黄色| 91嫩草欧美| 九九九精品一区二区无码| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 欧美偷| 欧美,日韩,中文,另类| 人妻天天爽夜夜爽2| 东京热91| 热99这里有精品综合久久| 日韩性爱小视频| 国产又黄又粗又猛大片|