Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 框架之創建設備節點文件

Android 框架之創建設備節點文件

編輯:關於Android編程

Android 與linux一樣使用設備驅動來訪問硬件設備,設備節點文件是設備驅動的邏輯文件,應用程序使用設備節點文件來訪問設備驅動程序,linux使用mknod來創建設備節點文件,Android 有自己法子。   Android 使用Init 進程來創建設備節點文件,分兩種情況:靜態節點文件和動態節點文件,以應對已經定義好的冷插拔和系統運行起來後插入的熱插拔設備。   對於冷插拔設備,init 進程事先獲取等待冷插拔處理的驅動程序,事先定義好個驅動的設備節點文件(在android_source_code/system/core/init/devices.c中),在struct perms_devices[ ] 列出了設備節點的名稱。訪問權限,用戶ID,組ID,若要添加新的用戶定義的新設備需要在此結構體重添加相應信息。   init 首先調用device_init() 函數,創建一個socket 來接收uevent,再通過cold_boot() 調用do_coldboot()對內核啟動時注冊到/sys下的驅動程序進行冷插拔處理,do_coldboot會啟動uevent,在handler_device_fd()中接收uevent信息,並寫入到uevent struct 中,調用handle_device_event()創建節點文件,先創建所有的子目錄,然後調用make_device()創建節點文件。   init 對於熱插拔的動態設備,使用事件處理循環來完成,使用poll()監聽來自驅動程序的uevent, 然後調用handle_device_fd()創建設備節點。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved