1. 程式人生 > >一種定位android HAL程式碼位置的方法

一種定位android HAL程式碼位置的方法

一種定位android HAL程式碼位置的方法

2017年04月07日 23:33:20 feiniao8651 閱讀數:1044

背景

裝置廠商一般會在Android HAL層做自己定義的實現,但是不同廠商的路徑不同,在沒有文件的情況下,查詢對應的原始碼實現就要花費很多時間。這裡提供一種查詢的思路。

方法

以Audio的HAL實現為例,檢視adb logcat輸出

adb logcat | grep audio

看到日誌輸出中很多都帶有標籤audio_hw_primary

V/audio_hw_primary( 1751): adev_open_output_stream, flags: 1
V/audio_hw_primary( 1751): +++++++++++++++ adev_open_output_stream: req_sample_rate: 44100, fmt: 1, channel_count: 3
D/audio_hw_primary( 1751): out_standby
V/audio_hw_primary( 1751): out_set_parameters: exiting=1
D/audio_hw_primary( 1751): out_standby
V/audio_hw_primary( 1751): adev_set_parameters, connect=1024
V/audio_hw_primary( 1751): out_set_parameters: routing=1024
V/audio_hw_primary( 1751): out_set_parameters, line: 1650

這裡的HAL模組的LOG_TAG應該就是audio_hw_primary。 
來到原始碼的hardware路徑下,使用grep查到定義LOG_TAG為audio_hw_primary的檔案

grep -s -R -n '#define LOG_TAG "audio_hw_primary"' ./*

之後就能找到HAL實現的程式碼了。