前言
國內的 Android TV 應用雖然是在 TV 上顯示,但是實際上大都運行在各類機頂盒中(當然也可以運行在智能電視本身定制的 Android 系統(tǒng)中),這些機頂盒運行的都是各個廠商基于 Android 各個版本系統(tǒng)定制的 ROM,并不是 Google 原生的Android TV 系統(tǒng)。
連接機頂盒
開發(fā)手機 app 應用,手機開啟調試模式,用數(shù)據線連上手機,就能對手機進行 debug 開發(fā)。然而,機頂盒并沒有手機的 micro usb 接口,并不能連數(shù)據線進行直接調試(據說,用 USB to USB 數(shù)據線連接機頂盒,也無法識別機頂盒),這時需要使用 adb 命令連接和調試機頂盒。打開 Android Studio 的 Terminal 或者 cmd( windows )、終端( mac ),輸入 adb 出現(xiàn)如下結果,證明 adb命令可以正常使用,否則參照 adb 錯誤“ 'adb' 不是內部或外部命令,也不是可運行的程序或批處理文件 ( windows ) 或 在 MAC OS X 安裝 ADB (Android 調試橋)
( mac )開啟 adb 命令。

adb 命令可用后,通過以下命令連接機頂盒:
adb connect [ip]:[端口(可以不填,某些機頂盒需要填端口號)]例如:
adb connect 192.168.192.196:5114
確保電腦和機頂盒在同一個局域網(如果可以通過
ping [ip]ping 通的話,表示在同一局域網 ),推薦機頂盒和電腦都插網線,這樣速度快些。
機頂盒的端口有:5114、5555(默認)等。
如果沒有提示任何錯誤信息,表示連接機頂盒成功,接著輸入
adb devices 查看連接的機頂盒的狀態(tài)信息。
如果提示 xxxxx refused connect 證明還未獲取機頂盒的調試權限,需要和機頂盒廠家獲取調試工具、開啟調試功能的方法、調試端口等(許多機頂盒的廠商都留有調試后門),也可以 root 機頂盒的系統(tǒng)。
某些機頂盒將遙控器上的 1237894560 按順序按一邊,可以開啟調試模式。
常用adb命令
adb connect [ip]:[port] 連接機頂盒(默認端口為5555)
adb devices 查看所有連接設備 名稱、ip、端口已經狀態(tài)( device 或 offline )
adb install [apk 安裝包所在路徑(如:d:\a.apk)] 將對應路徑的 apk 安裝包安裝到機頂盒
adb install -r [apk 安裝包所在路徑(如:d:\a.apk)] 將對應路徑的apk 安裝包強制(覆蓋)安裝到機頂盒
adb -s [設備名稱或設備IP:端口] install [apk 安裝包所在路徑(如:d:/a.apk)] 當 adb 連接多個設備時,將 apk 安裝到指定設備中
通過 -s [設備名稱或設備 IP:端口] (例如:
adb -s 192.168.192.196:5555 d:\apk指定 IP 為192.168.192.196端口為5555的設備)。其中-s 192.168.192.196:5555要緊跟在adb后面,**其他的 adb 命令,也可以通過這種形式對指定的設備進行操作。 **
當 adb 指令使用時,出現(xiàn) more than one device and emulator 錯誤提示時,需要用該方式指定需操作的設備。
adb uninstall [應用包名,例如:com.example.tmall] 卸載應用(通過包名指定)
adb shell進入系統(tǒng)目錄(通過 exit 退出)
adb shell am start -n [包名]/[包名+類名] 啟動指定類名的 Activity
adb shell am的使用可以參考 Andoird開發(fā)調試時不修改Manifest直接啟動任意Activity的方法 。
除了-n之外,還有[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]等,-a參數(shù)代表了 Activity 的 action ,-d參數(shù)代表 Activity 的 data。
adb shell input text **** 在已經獲取焦點的EditText中輸入內容
adb shell ps 查看當前終端中的進程信息
adb shell dumpsys activity activites查看當前終端所以前后臺Acitivity的堆棧
adb shell logcat > d:\log.txt 打印日志到本地文件(會打印緩存的日志,可能會有昨天等之前日志。windows下,按ctrl+c停止日志打?。?br>
adb logcat *:D > d:\log.txt 過濾出D級別以上的日志,打印日志到本地文件( 在 macOS 下需要給 *:W 這樣以 * 作為 tag 的參數(shù)加雙引號,如 adb logcat "*:W")
其他可參考:
放在github上的,介紹的很全
Android ADB 命令大全(通過 ADB 命令查看 wifi 密碼、MAC 地址、設備信息、操作文件、查看文件、日志信息、卸載、啟動和安裝 APK 等)
總結
連接上機頂盒的一小步,是機頂盒開發(fā)的一大步。