android adb 的各種使用方式詳解

來源:互聯網
上載者:User

標籤:android   style   使用   資料   c   問題   管理   應用   

這篇文章主要介紹在windows 程式中使用adb 的方法,不介紹adb 的命令。

1) 啟動adb 進程,從管道擷取輸出。

這種方式的弊端有多少,我也不知道,反正就是各種問題吧。但是目前我問過很多朋友,他們都是這麼做的,因為這種方法最簡單。弊端我列舉一下

   1) 每次執行一個adb 命令都要啟動一個adb 進程,速度太慢,好像就是很不爽

   2)  偶爾發現進程管理器中有N 多個adb 進程,然後就卡了。

   3)  從管道擷取輸出,在很多情況下會發現adb 卡死了,進程退不出來。

   4)  曾經發現 adb 進程正常啟動退出,但是管道就是沒有資料。具體原因我現在還不知道。



2) 市面上手機小幫手使用方式

      現在的手機小幫手無論你怎麼搞,在正常情況下都不會出現多個adb 進程,只會有一個adb 的服務進程。我大膽猜測一下,應該是應用程式直接和adb 的服務進程通訊,然後直接通過socket 接收資料。

    第一種方式啟動一個adb 進程,這個adb 進程通過socket 和服務進程通訊,把命令發送給服務進程,服務進程接收到命令並且執行,之後把結果通過socket 返回給adb 進程,adb 進程把結果寫入管道,然後自己退出了。 因此我們自己可以直接和adb 的服務進程通訊,自己的應用程式裡面通過socket 給服務進程發送訊息。這樣速度很快而且也可以避免第一種方式的弊端。但是這種方式也是比較困難,需要自己實現socket 通訊


我自己修改了adb 進程,做了很大的最佳化,並且寫了一個lib,這個庫封裝了和adb 服務進程通訊,這個庫有一個函數直接調用就可以執行adb 命令。程式只需要靜態連結這個庫,然後調用一個函數就可以了。


ExecuteADBCommand("devices",strOut);


詳細可以瞭解qq: 2506314894





聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.