導航:首頁 > 源碼編譯 > Android編譯adb

Android編譯adb

發布時間:2022-04-28 04:51:37

A. 如何在android應用里執行adb 命令

ADB介面的作用主要是讓電腦等其它設備控制安卓系統的,所以,稱為「中間橋」;

不是為安卓自已用的,自已可直接執行稱為SHELL,這與ADB無關。

所以安卓JAVA不一定有封裝的ADB類。電腦上有ADB服務程序,埠5037,

它是中間程序,與安卓系統上守護進程(Daemon)通訊。

如果要在自已的手機上應該也能執行adb命令,應該直接跟守護進程

(Daemon)通訊了。網路上可以搜到的方法並不滿意。

樓主用exec執行CMD命令,這已不是ADB介面了,這是系統的SHELL了!!!

自已用socket/tcp直接發命令效果不知怎樣,地址用127.0.0.1,安卓daemon進程的埠

5555是奇數開始。

。。。。至於ADB對話協議網路可以搜到,建議試一試。

樓上其實要的是SHELL,並不是ADB,我搜到一篇文章,但我並沒有試過,

是否需要ROOT,不得而知,附上,你試一試 ,回個話。

滿意就採納!

B. Android SDK 環境下如何使用adb軟體

Android SDK開發工具中有幾個重要的指令:adb、ddms、emulator與mksdcard、dx tool等。
ADB系統除錯與連結工具
使用adb指令進行APK組件的安裝,雖然adb(Android debug bridge)是Android系統的除錯工具,但是從放置文件到SD存儲卡與安裝APK應用程序,adb是操作Android 系統不可或缺的重要工具。adb是與Android模擬器溝通最重要的橋梁。如果要跟Android底層的Linux操作系統進行溝通,就必須通過 Android SDK tools目錄下的adb (android debug bridge) 指令來進行操作。這個adb除了提供程序碼除錯功能外,最重要的功能是它可以將Eclipse編譯好所生成的Android應用程序組件Android Package (apk),直接連接安裝到Android模擬器上或者手機裝置上,因此程序開發在Eclipse環境中完成後,Android模擬器上就直接會有這個應 用程序的圖標icon了。另外adb除錯工具也支持命令列模式shell指令,可以輸入指令來進行一些除錯動作。這些實用的adb指令如下:
$ adb devices (顯示當前有多少個模擬器正在運行)
List of devices attached
emulator-5554 device
emulator-5556 device
emulator-5558 device
運行adb devices會顯示有多少個模擬器正在運行,上面的例子指出有5554、5556、5558三個模擬器正在運行,如果沒有運行模擬器,則顯示 no device。
$ adb -s <serialNumber> <command> (指定模擬器來操作)
$ adb -s emulator-5554 install email.apk
adb -s可以指定模擬器序號,用來選擇操縱哪一個模擬器,例如adb -s emulator-5554 install email.apk,指定將email.apk安裝在模擬器emulator-5554。
$ adb install apkfile (安裝APK應用程序組件)
例如:adb install email.apk
$ adb uninstall package (移除APK應用程序組件)
例如:adb uninstall com.android.email
adb install與adb uninstall可以用來安裝與移除APK 應用程序組件,但是必須注意的是adb install後面是接apk文件名稱,然而adb uninstall 後面是域名形式的package名稱,例如com.android.email。詳細的package名稱可以由Android操作系統目錄/data /data或者由/data/app來查得。
$ adb shell (進入Android系統指令列模式)
$ ls
$ dmesg (查看Android Linux Kernel運作消息)
運行adb shell可以進入Android操作系統指令列模式,如此一來就可以直接看到Android系統的目錄結構,因為Android是Linux操作系統的 一種,所以Shell指令和Linux系統是相同的,例如ls(顯示文件目錄)、cd(進入目錄)、rm(刪除文件)、mv(移動文件)、mkdir(生 成目錄)與rmdir(刪除目錄)等指令。
$ adb push <file/dir> /sdcard (復制文件到SD存儲卡)
例如:adb push mp3 /sdcard
$ adb pull <file/dir> . (從Android系統下載文件)
例如:adb pull /data/app/com.android.email
adb push可以上載文件到SD存儲卡目錄/sdcard,因為其他目錄有訪問許可權問題無法寫入,所以一般都是將文件放到/sdcard目錄下。adb pull則是將文件從Android系統下載到一般計算機上,常用的例子除了從/sdcard下載文件外,也可以從/data/data或/data /app目錄將APK文件抽出來,提供已經安裝成功的APK應用程序,給其他使用者安裝。
$ adb logcat (監控模擬器運作記錄)
adb logcat會實時監控Android模擬器運行時所生成的記錄,此項功能對於程序開發人員用來除錯幫助很大,開發人員可以從記錄中得到應用程序運行時發生的錯誤消息。運行adb logcat後,若要離開監控模式,可以按Ctrl+C。
$ adb bugreport (生成adb除錯報告)
開發人員若要進一步得知系統生成的所有錯誤消息報告,可以運行adb bugreport指令來實現,該指令會將Android系統的mpsys、mpstate與logcat信息都顯示出來。
$ adb get-state (獲得adb伺服器運作狀態)
adb get-state會顯示adb伺服器的運作狀態為何,共有offline (離線)、bootloader (開機中)、與device (運作中) 三種狀態。
$ adb start-server (啟動adb伺服器)
$ adb kill-server (關掉adb伺服器)
通常啟動Android伺服器時,就會啟動adb伺服器了。可以使用adb get-state來查知adb的狀態。如果沒有啟動可以運行adb start-server啟動它,若不想進行除錯監控,可以運行adb kill-server關掉它。
$ adb forward tcp:6100 tcp:7100 (更改模擬器網路TCP通信埠)
Android模擬器內定的TCP port為6100,若有需要可以運行adb forward指令改成另外一個通信埠。
$ adb version (顯示adb版本)
您可以運行adb version查看當前使用的Android SDK adb版本。
$ adb help (顯示adb指令參數)
adb help會顯示所有adb指令的用法,
參考資料:http://blog.chinaunix.net/uid-20332519-id-3176865.html

C. 為什麼android源碼編譯出來的adb是動態庫

例如:你不想編譯music進image中,你就在該文件里PRODUCT_PACKAGES :=這一項下的Music刪除就可以了同理,你想把自己的app編譯進image中,你先寫好編譯用的 Android.mk 文件,然後去到上面所說的文件里在 PRODUCT_PACKAGES :=這一項添加對應的app包名一般來說,只要改這么一個文件就足夠了。但是如果以上編譯後發現還是編譯到了image裡面,那麼它很有可能是一個已經編譯好的apk文件預裝到 image 裡面去了,也是以我的sdk為例,進入 device/產品目錄/common/apk 下看看有沒有.apk文件,我的sdk裡面這個目錄下的.apk文件是全部預裝到 system/app 裡面的還有一個目錄:/device/產品目錄/common/preinstallapk 這個目錄里的apk也是預裝到image裡面去,只是並不是預裝到 system/app 而已也就是說,你還要看看你不想編譯進image里的app是不是預裝進去,如果是預裝進去的話,只要在對應目錄下把該apk文件刪除了就好了希望這些能幫到你!

D. android開發adb沖突怎麼解決

你可以試著拔掉連接在電腦上的手機,重啟一下adb,如果還是不行的話可以徹底退出編譯環境,甚至是注銷操作系統,結束埠佔用。希望能幫到您,有什麼問題歡迎您追問,謝謝。

E. 【Android】如何使用ADB進行調試

是用來管理模擬器和真機的通用調試工具,該工具功能強大,直接打開cmd即可使用adb命令,adb的全稱為Android Debug Bridge,是起到調試橋的作用,通過adb我們可以在Eclipse中方面通過DDMS來調試Android程序,說白了就是debug工具,adb的工作方式比較特殊,採用**Socket TCP 5554等埠的方式讓IDE和Qemu通訊,默認情況下adb會daemon相關的網路埠,所以當我們運行Eclipse時adb進程就會自動運行,藉助adb工具我們可以管理設備或手機模擬器的狀態,還可以進行很多手機操作,如安裝軟體、系統升級、運行shell命令等等,其實簡而言說,adb就是連接Android手機與PC端的橋梁,可以讓用戶在電腦上對手機進行全面的操作 1:查看當前模擬器或者Android設備實例的狀態 一般在使用前都會使用adb devices這個命令查看一下模擬器的狀態,通過這個命令得到ADB的回應信息,可以看到ADB作為回應為每個實例制定了相關的信息 1.1:emulator-5554為實例名稱 1.2:device為實例連接狀態,device表示此實例正與adb相連接,offline表示此實例沒有與adb連接或者無法響應 2:安裝和卸載APK應用程序 你可以從電腦上復制一個APK應用到模擬器或者Android設備上,通過adb install <path_to_apk安裝軟體,adb uninstall <packageName卸載軟體,如果你不知道這個包名,在AndroidManifest.xml里的找package=""就可以了 2.1: 先把apk文件拷貝到sdk目錄下的tools 2.2: 進入dos下切換到SDK的安裝路徑下的tools目錄 2.3 :執行安裝命令 adb install <path_to_apk 發生的錯誤,因為我連接了真機,而且也打開了模擬器,所以adb給我的回應信息是「比一個多的驅動設備和模擬器」,我最後關閉掉了模擬器在運行安裝命令,就提示安裝成功了 卸載APK 3:從本機上復制文件到模擬器或者Android設備 adb push <本地路徑<遠程路徑,<本地路徑指的是自己的機器上或者模擬器上的目標文件,<遠程路徑指的是遠程設備實例上的目標文件 4:從模擬器復制文件到模擬器或者Android設備 adb pull <遠程路徑<本地路徑,<本地路徑指的是自己的機器上或者模擬器上的目標文件,<遠程路徑指的是遠程設備實例上的目標文件 輸入adb shell就可以進入shell命令行了,可以使用一些常用的shell命令,如:ls命令列出了文件

F. android adb是什麼意思

adb的全名是Android調試橋,它充當調試橋。Adb是Android SDK中的工具,使用此工具,您可以直接操作和管理Android模擬器或真實的Android設備(例如G1手機)。

Android系統的adb的全名是Android Debug Bridge,在Android開發環境中,abd是我們經常用於開發的調試工具,使用adb工具的前提是打開手機上的USB調試,然後通過數據線連接到計算機。

通過adb,我們可以通過Eclipse中的DDMS(調試工具)輕松調試Android程序。,Adb以一種特殊的方式工作,它監視Socket TCP 5554和其他埠,以允許IDE和Qemu進行通信,默認情況下,adb將守護程序相關的網路埠,因此,當我們運行Eclipse時,adb進程將自動運行。

(6)Android編譯adb擴展閱讀:

android adb主要功能有:

1、運行設備的shell(命令行);

2、管理模擬器或設備的埠映射;

3、計算機和設備之間上傳/下載文件;

4、 將本地apk軟體安裝到模擬器或android設備。

參考資料:網路—ADB

G. 在Android的apk中怎麼調用adb命令

實際上 dkmeteor 已經給出了詳盡的答案了,我就額外羅嗦一下
apk 是編譯打包生成的安裝程序,運行在 android 系統裡面。 adb 只是 android 的一個調試橋,用於跟其他平台通信,其中有一個功能就是執行 shell 命令
從題主的需求上看,需要移動一個系統文件,必要的話還需要重新掛載 這個需求得用到 android 的超級管理員許可權,也就說沒有 root 的手機無法達到要求。
題主可以嘗試 dkmeteor 提供的方法先獲取 root 許可權,然後再執行兩個 shell 就可以了

H. 在android代碼里怎麼執行adb命令

Android中執行adb shell命令的方式如下: /** * 執行一個shell命令,並返回字元串值 * * @param cmd * 命令名稱&參數組成的數組(例如:{"/system/bin/cat", "/proc/version"}) * @param workdirectory * 命令執行路徑(例如:"system/bin/") * @return 執行結果組成的字元串 * @throws IOException */ public static synchronized String run(String[] cmd, String workdirectory) throws IOException { StringBuffer result = new StringBuffer(); try { // 創建操作系統進程(也可以由Runtime.exec()啟動) // Runtime runtime = Runtime.getRuntime(); // Process proc = runtime.exec(cmd); // InputStream inputstream = proc.getInputStream(); ProcessBuilder builder = new ProcessBuilder(cmd); InputStream in = null; // 設置一個路徑(絕對路徑了就不一定需要) if (workdirectory != null) { // 設置工作目錄(同上) builder.directory(new File(workdirectory)); // 合並標准錯誤和標准輸出 builder.redirectErrorStream(true); // 啟動一個新進程 Process process = builder.start(); // 讀取進程標准輸出流 in = process.getInputStream(); byte[] re = new byte[1024]; while (in.read(re) != -1) { result = result.append(new String(re)); } } // 關閉輸入流 if (in != null) { in.close(); } } catch (Exception ex) { ex.printStackTrace(); } return result.toString(); }

I. android+studio無法找到adb怎麼解決

摘要 其實這個不算個問題,但總是容易忘記。主要就是把ADB 的路徑加入到系統的path就能處理了。

閱讀全文

與Android編譯adb相關的資料

熱點內容
安卓平板android如何降級 瀏覽:124
蘋果怎麼下載整理文字軟體app 瀏覽:130
怎麼刪除一個app下載任務 瀏覽:713
python執行bat命令 瀏覽:471
什麼吉他調音器app最好 瀏覽:33
php程序員招聘試題 瀏覽:14
程序員升職記第九關最優解 瀏覽:317
三星安卓11怎麼訪問data文件夾 瀏覽:817
華三伺服器怎麼設置開機自啟 瀏覽:711
釘郵登錄伺服器地址 瀏覽:644
起源編譯器適配第二款應用 瀏覽:433
cad弄斷線條命令 瀏覽:463
怎麼恢復手機app的安裝包 瀏覽:300
idea重啟項目不編譯 瀏覽:495
程序員那麼可愛演員表陸漓媽媽 瀏覽:127
linuxgadget驅動 瀏覽:594
華三調用acl的命令 瀏覽:9
資金流pdf 瀏覽:931
金融結演算法補充條款 瀏覽:291
什麼叫伺服器怎麼連接 瀏覽:521