一起來學嵌入式Android系統 (第六章心得二)

在O’REILLY"嵌入式Android系統"這本書的第六章原生使用者空間,本次心得分享兩個部份:

◎ adb

◎ Android命令列

在adb的部份,主要是延伸第三章基本操作,我們一樣是在Cubietruck開發板上而不是使用模擬器,因為先前我們已經安裝ADT Bundle,所以就可以直接使用adb 與ddms兩套工具來探索Android;再此先瞭解一下書上有關adb的運作原理,原則上主機可以透過網路TCP/IP或USB來與Cubietruck開發板進行連接,但我們是使用USB方式為之;主要旗標、參數和環境變數的部份,可以直接執行adb help看到相關的說明,以下只是顯示部份內容:

6-2-1

可能用到的部份之說明請參考表6-9;再下來書上內容都是針對adb命令的部份進行詳細說明,於此就把實際運作的畫面表示出來,首先是基本的本地命令:

6-2-2

要說明的,這裡的adb是使用ADT Bundle內版本,其版本編號恰巧與Android 4.2 AOSP內所附的adb版本相同;若有發現adb命令無法使用,請更新ADT Bundle才能與裝置正確連接;在裝置連接和狀態(以USB方式):

6-2-3

基本遠端命令部份,常用的有:

6-2-4

檔案系統命令部份,常用的有:

6-2-5

狀況改變的相關命令,常用的有:

6-2-6

其餘的部份就請參考書中的說明,或Google官方的說明(http://developer.android.com/tools/help/adb.html)。

在Android的命令列的部份,在Android4.0以後是使用MirBSD Korn Shell(https://www.mirbsd.org/mksh.htm);工具箱的部份有提供常用的Linux命令,但功能不像Busybox那樣豐富,且有些命令的行為模式與"傳統"的Linux命令並不相同,命令部份請參考表6-13與表6-14,而Cubietruck開發板的原始碼中已經整合Busybox,可用adb shell進行確認:

6-2-7

全域特性在第二章時已有介紹,可用getprop <key>setprop <key><vlaue>watchprops來進行讀取、設定與監控,使用範例於下:

6-2-8

輸入事件的部份,由於Android相當依賴Linux輸入分層來取得使用者輸入事件,雖然在System Server已經妥適的處理這些事件,但也可以使用getenevt命令與sendevent命令來觀察或產生自己的事件;在控制服務的部份,就可以用start <servicename>stop <servicename>兩個命令來啟動與停止服務,其實這方面的操作需要瞭解Android init.rc組態命令稿的部份,關於init.rc的部份在本章後面會有說明;日誌記錄的部份,是可以讓你自己添加自己的事件到Android日誌記錄器上,使用log命令為之,以下是執行範例:

6-2-9

ioctl的部份,可以ioctl命令來操控Linux驅動程式ioctl(),但這部份要瞭解受操控的Linux驅動程式如何運作才能正確使用;在抹除裝置的部份,可以用wipe命令來銷毀Android裝置上的資料,這命令沒有"取消"的功能,使用上要非常小心;其它Android特定命令的部份,有nandread命令、newfs_msdos命令、notify命令、schedtop命令、setconsole命令與smd命令,由於開發板並不是手機所以smd命令並沒有實際的用途,其餘的命令就請參考書中的說明;而在中心的原生實用程序與背景處理程序,是說明獨立於Java框架中的實用程序,主要是放在/system/bin目錄下,表6-15中說明的是從external/目錄中專案編譯而來的"中心"實用程序與背景處理程序,後面會針對關鍵的項目進行說明;首先是logcat部份,logcat命令的部份可在adb shell下以logcat –help方式看到相關說明,書上有特別提到-s旗標的用法需要特別瞭解;netcfg部份,netcfg命令與ifconfig命令有著相似與重疊的功能,但在Android上ifconfig命令並無法列出所有介面及其組態,但用netcfg命令就可以做得到;debuggered部份是在init.rc啟動的背景程序,當發生原生程序錯誤時就會產生tombstone,以便於分析或使用gdb來進行除錯;其它Android特定的中心實用程序和背景處理程序有check_prereq命令、linker動態連結器、logwrapper命令、run-as命令與sdcard命令,詳細就請參考書中的說明;額外的原生實用程序和背景處理程序就請參考表6-16與表6-17;最後Framework實用程序和背景處理程序部份,將於書中的第七章進行討論。

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s