① 什麼是adb命令行
adb命令行是androidsdk里的一個工具,用這個工具可以直接操作管理android模擬器或者真實的android設備(如G1手機),它的主要功能有:
1、運行設備的shell(命令行)
2、管理模擬器或設備的埠映射
3、計算機和設備之間上傳/下載文件
4、將本地apk軟體安裝至模擬器或android設備
ADB是一個客戶端-伺服器端程序,其中客戶端是你用來操作的電腦,伺服器端是android設備。
(1)linuxadb下載擴展閱讀:
常用命令
1. 查看設備 *adbdevices
這個命令是查看當前連接的設備, 連接到計算機的android設備或者模擬器將會列出顯示
2. 安裝軟體
*adbinstall <apk文件路徑>
這個命令將指定的apk文件安裝到設備上
3. 卸載軟體
*adbuninstall <軟體名>
*adbuninstall -k <軟體名>
如果加 -k 參數,為卸載軟體但是保留配置和緩存文件。
4. 登錄設備shell
*adbshell
*adbshell <command命令>
這個命令將登錄設備的shell。
後面加<command命令>將是直接運行設備命令,相當於執行遠程命令。
5. 從電腦上發送文件到設備
*adbpush <本地路徑> <遠程路徑>
用push命令可以把本機電腦上的文件或者文件夾復制到設備(手機)。
② linux系統下如何安裝android sdk
一、下載android sdk
下載SDK,下載地址:http://developer.android.com/sdk/index.html,選擇Linux(i386)。因為SDK只有32位的,如果裝的是64位系統,則要安裝ia32-libs,運行32位程序。
ubuntu安裝命令:sudo apt-get install ia32-libs(在Ubuntu中的命令)。
centos安裝命令:
yum install glibc.i686
下載完成後解壓,在終端進入到SDK的根目錄,然後執行:tools/android update sdk –no-ui即可開始和windows裡面一樣的更新。
二、配置環境變數
更新完成後配置環境變數。使用命令 vi /etc/profile 編輯文件profile,然後在下面增加下面內容:
export ANDROID_HOME=/opt/softwaretools/android-sdk-linux
export PATH=$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$PATH
/opt/softwaretools/android-sdk-linux為SDK的根目錄。
這個配置之後,以後要執行android裡面的命令,就不是需要進到這個目錄,直接可以在終端裡面輸入。
修改完成後,使用命令 :wq! 保存關閉文件,再執行命令 source /etc/profile 使配置生效一下。
在終端輸入:android,如果Android SDK Manager窗口出來了,就證明環境配置成功。
三、配置AVD
1、進入$SDK_HOME/toos目錄
2、命令窗口運行:./android avd
③ ADB是什麼 ADB常用命令介紹
adb是windows系統通過usb或者無線連接Android手機的一個介面
adb 常用命令大全
1. 顯示系統中全部Android平台:
android list targets
2. 顯示系統中全部AVD(模擬器):
android list avd
3. 創建AVD(模擬器):
android create avd --name 名稱 --target 平台編號
4. 啟動模擬器:
emulator -avd 名稱 -sdcard ~/名稱.img (-skin 1280x800)
5. 刪除AVD(模擬器):
android delete avd --name 名稱
6. 創建SDCard:
mksdcard 1024M ~/名稱.img
7. AVD(模擬器)所在位置:
Linux(~/.android/avd) Windows(C:\Documents and Settings\Administrator\.android\avd)
8. 啟動DDMS:
ddms
9. 顯示當前運行的全部模擬器:
adb devices
10. 對某一模擬器執行命令:
abd -s 模擬器編號 命令
11. 安裝應用程序:
adb install -r 應用程序.apk
12. 獲取模擬器中的文件:
adb pull <remote> <local>
13. 向模擬器中寫文件:
adb push <local> <remote>
14. 進入模擬器的shell模式:
adb shell
15. 啟動SDK,文檔,實例下載管理器:
android
16. 缷載apk包:
adb shell
cd data/app
rm apk包
exit
adb uninstall apk包的主包名
adb install -r apk包
17. 查看adb命令幫助信息:
adb help
18. 在命令行中查看LOG信息:
adb logcat -s 標簽名
19. adb shell後面跟的命令主要來自:
源碼\system\core\toolbox目錄和源碼\frameworks\base\cmds目錄。
20. 刪除系統應用:
adb remount (重新掛載系統分區,使系統分區重新可寫)。
adb shell
cd system/app
rm *.apk
21. 獲取管理員許可權:
adb root
22. 啟動Activity:
adb shell am start -n 包名/包名+類名(-n 類名,-a action,-d date,-m MIME-TYPE,-c category,-e 擴展數據,等)。
23、發布埠:
你可以設置任意的埠號,做為主機向模擬器或設備的請求埠。如:
adb forward tcp:5555 tcp:8000
24、復制文件:
你可向一個設備或從一個設備中復制文件,
復制一個文件或目錄到設備或模擬器上:
adb push
<source>
<destination></destination></source>
如:adb
push test.txt /tmp/test.txt
從設備或模擬器上復制一個文件或目錄:
adb
pull <source>
<destination></destination></source>
如:adb
pull /addroid/lib/libwebcore.so .
25、搜索模擬器/設備的實例:
取得當前運行的模擬器/設備的實例的列表及每個實例的狀態:
adb devices
26、查看bug報告:
adb bugreport
27、記錄無線通訊日誌:
一般來說,無線通訊的日誌非常多,在運行時沒必要去記錄,但我們還是可以通過命令,設置記錄:
adb shell
logcat -b radio
28、獲取設備的ID和序列號:
adb get-proct
adb get-serialno
29、訪問資料庫SQLite3
adb shell
sqlite3
#cd system/sd/data //進入系統內指定文件夾
#ls //列表顯示當前文件夾內容
#rm -r xxx //刪除名字為xxx的文件夾及其裡面的所有文件
#rm xxx //刪除文件xxx
#rmdir xxx //刪除xxx的文件夾
④ 怎樣在Ubuntu下安裝Android SDK/ADB
Ubuntu電腦安裝Android SDK/ADB
第一步,你要下載Linux版Android SDK的安裝或文件包,然後你需要從Android SDK Manager內下載Platform Tools
Package
請從Google官方獲取Android
SDK安裝或文件包,通常情況,你下載的文件名為android-sdk_rxx-linux.tgz的形式,rxx代表版本,比如,r16版,即android-sdk_r16-linux.tgz,r24版,即android-sdk_r24-linux.tgz
請放置Android SDK安裝或文件包在你的用戶主目錄
在你的Ubuntu電腦上打開終端窗口
解壓Android SDK文件:
cd ~
tar -zxvf android-sdk_r16-linux.tgz
在~/android-sdk-linux/tools字目錄,有一個叫做android的可執行文件,盡管名字是android,但它實際上是Android
SDK Manager
運行Android SDK Manager:
./~/android-sdk-linux/tools/android
選擇Android SDK
Tools與Android SDK Platform-tools項,點Install
packages安裝Platform Tools
Package工具包。包括ADB與Fastboot可執行的文件在內的工具包都會被下載,由於下載的文件較多而需要一定的時間,你能去喝點東西
你下載的Platform Tools
Package工具包文件將位於新創建的~/android-sdk-linux/platform-tools目錄
第二步,修改ADB與Fastboot可執行文件的默認PATH路徑環境。PATH環境變數可以是在~/.profile(或~/.bash_profile)或者~/.bashrc文件內修改,~/.profile文件是讀取所有互動式Shell的登錄,~/.bashrc文件讀取所有非互動式Shell的登錄(如sftp),在大多數默認情況下,~/.profile文件導入所有~/.bashrc文件的設置。PATH命令設定的改變必須包括/android-sdk-linux/tools與/android-sdk-linux/platform-tools目錄
kevdog的PATH命令設定通過Ubuntu系統內初始的默認編輯器Gedit在~/.bashrc文件底部增加了一行:
export
PATH=${PATH}:${HOME}/android-sdk-linux/tools:${HOME}/android-sdk-linux/platform-tools
第三步,我們需要為Ubuntu創建udev設備管理規則,從而讓設備在通過USB埠連接到電腦時能被正確地識別
將設備連接到電腦,然後執行命令:
lsusb
你會看到類似於下面的輸出信息:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation
2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004
Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001:
ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 063: ID 04e8:6860
Samsung Electronics Co., Ltd
由於kevdog的設備是Samsung的某款設備,因此你能看到相應的識別信息:
Bus 001 Device 063: ID
04e8:6860 Samsung Electronics Co., Ltd
我們來解釋下上面的識別信息:
Bus 001 Device
063,設備端的名稱是/dev/bus/usb/001/063,即這個信息可以幫助我們確定設備端的名稱
04e8,vendorID,即供貨商編號
6860,proctID,即產品編號
使用設備端的名稱/dev/bus/usb/001/063可以讓我們查詢設備的屬性,查詢這些屬性有時很有必要,因為udev設備管理匹配設備是基於特定標準的。為此,我們需要一個正確的udev設備匹配規則集,這個過程的第一步就是查詢能被連接或插入到我們規則集的准則,這可以通過udevadm程序來實現,並且有兩種方式現,它們生成的輸出信息為我們的設備構建udev設備管理規則:
udevadm查詢udev設備管理規則方法1:
udevadm info -q all -n <name of device
node>
根據原作者的實際情況,設備端名稱是/dev/bus/usb/001/063,因此命令是:
udevadm info -q all -n /dev/bus/usb/001/063
你會看到類似於下面的輸出信息:
$ udevadm info -q all -n /dev/bus/usb/001/063
P:
/devices/pci0000:00/0000:00:1d.7/usb1/1-8
N: bus/usb/001/063
S:
libmtp-1-8
S: GalaxyNexus
E: UDEV_LOG=3
E:
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb1/1-8
E: MAJOR=189
E:
MINOR=62
E: DEVNAME=/dev/bus/usb/001/063
E: DEVTYPE=usb_device
E:
DRIVER=usb
E: PRODUCT=4e8/6860/216
E: TYPE=0/0/0
E: BUSNUM=001
E: DEVNUM=063
E: SUBSYSTEM=usb
E: ID_MTP_DEVICE=1
E:
ID_MEDIA_PLAYER=samsung_galaxy-s2
E: ID_VENDOR=samsung
E:
ID_VENDOR_ENC=samsung
E: ID_VENDOR_ID=04e8
E: ID_MODEL=Galaxy
E:
ID_MODEL_ENC=Galaxy
E: ID_MODEL_ID=6860
E: ID_REVISION=0216
E:
ID_SERIAL=samsung_Galaxy_0146B06501005018
E:
ID_SERIAL_SHORT=0146B06501005018
E: ID_BUS=usb
E:
ID_USB_INTERFACES=:ffff00:ff4201:
E: DEVLINKS=/dev/libmtp-1-8
/dev/GalaxyNexus
E: TAGS=:udev-acl:
我們使用的規則從有E:(E=ENV=Device
Property設備屬性值)的行開始
udevadm查詢udev設備管理規則方法2:
udevadm info -a -p $(udevadm info -q path
-n <name of device node>)
根據原作者的實際情況,設備端名稱是/dev/bus/usb/001/063,因此命令是:
udevadm info -a -p
$(udevadm info -q path -n /dev/bus/usb/001/063)
你會看到類似於下面的輸出信息:
$ udevadm info -a -p $(udevadm info -q path -n /dev/bus/usb/001/063)
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found,
all possible attributes in the udev rules key format.
A rule to match, can
be composed by the attributes of the device
and the attributes from one
single parent device.
looking at device
'/devices/pci0000:00/0000:00:1d.7/usb1/1-8':
KERNEL=="1-8"
SUBSYSTEM=="usb"
DRIVER=="usb"
ATTR{configuration}==""
ATTR{bNumInterfaces}==" 2"
ATTR{bConfigurationValue}=="1"
ATTR{bmAttributes}=="80"
ATTR{bMaxPower}=="500mA"
ATTR{urbnum}=="29"
ATTR{idVendor}=="04e8"
ATTR{idProct}=="6860"
ATTR{bcdDevice}=="0216"
ATTR{bDeviceClass}=="00"
ATTR{bDeviceSubClass}=="00"
ATTR{bDeviceProtocol}=="00"
ATTR{bNumConfigurations}=="1"
ATTR{bMaxPacketSize0}=="64"
ATTR{speed}=="480"
ATTR{busnum}=="1"
ATTR{devnum}=="63"
ATTR{devpath}=="8"
ATTR{version}==" 2.00"
ATTR{maxchild}=="0"
ATTR{quirks}=="0x0"
ATTR{avoid_reset_quirk}=="0"
ATTR{authorized}=="1"
ATTR{manufacturer}=="samsung"
ATTR{proct}=="Galaxy"
ATTR{serial}=="0146B06501005018"
looking at parent device '/devices/pci0000:00/0000:00:1d.7/usb1':
KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{configuration}==""
ATTRS{bNumInterfaces}==" 1"
ATTRS{bConfigurationValue}=="1"
ATTRS{bmAttributes}=="e0"
ATTRS{bMaxPower}==" 0mA"
ATTRS{urbnum}=="1403"
ATTRS{idVendor}=="1d6b"
ATTRS{idProct}=="0002"
ATTRS{bcdDevice}=="0300"
ATTRS{bDeviceClass}=="09"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bNumConfigurations}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{speed}=="480"
ATTRS{busnum}=="1"
ATTRS{devnum}=="1"
ATTRS{devpath}=="0"
ATTRS{version}==" 2.00"
ATTRS{maxchild}=="8"
ATTRS{quirks}=="0x0"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{authorized}=="1"
ATTRS{manufacturer}=="Linux 3.0.0-14-generic
ehci_hcd"
ATTRS{proct}=="EHCI Host Controller"
ATTRS{serial}=="0000:00:1d.7"
ATTRS{authorized_default}=="1"
looking at parent device '/devices/pci0000:00/0000:00:1d.7':
KERNELS=="0000:00:1d.7"
SUBSYSTEMS=="pci"
DRIVERS=="ehci_hcd"
ATTRS{vendor}=="0x8086"
ATTRS{device}=="0x27cc"
ATTRS{subsystem_vendor}=="0x103c"
ATTRS{subsystem_device}=="0x3010"
ATTRS{class}=="0x0c0320"
ATTRS{irq}=="20"
ATTRS{local_cpus}=="ff"
ATTRS{local_cpulist}=="0-7"
ATTRS{dma_mask_bits}=="32"
ATTRS{consistent_dma_mask_bits}=="32"
ATTRS{broken_parity_status}=="0"
ATTRS{msi_bus}==""
ATTRS{companion}==""
looking at
parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
我們使用的規則從有ATTRS(ATTRS=Device
Attributes設備屬性)的行開始
不管是ENV,還是ATTRS,我們可以構建一個udev設備管理規則集。規則集的名稱可以隨意,根據原作者的意圖,我們叫做51-android.rules:
你能這樣建立規則集文件:
gksu gedit /etc/udev/rules.d/51-android.rules
之後,請在規則集文件中加入相關的規則,以原作者的規則來看,注意是一行一個:
SUBSYSTEM=="usb",
ENV{ID_VENDOR_ID}=="04e8", ENV{ID_MODEL}=="Galaxy", MODE="0666",
SYMLINK+="GalaxyNexus"
SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="04e8",
ENV{ID_MODEL_ID}=="6860", MODE="0666", SYMLINK+="GalaxyNexus"
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProct}=="6860",
ATTR{proct}=="Galaxy" MODE="0666", SYMLINK+="GalaxyNexus"
如上面所加的規則,這些規則匹配准則是SUBSYSTEM,
ENV,ATTR,它只會修改設備的模式MODE(0666=rw-rw-rw-)與創建鏈接於/dev/GalaxyNexus的GalaxyNexus標識。當然,更多的指令可以分配給設備,如插入或移除設備時的執行命令,你能這樣指定指令:
ACTION=="add", RUN+="<name of action>"
ACTION==」remove」,
RUN+="<name of action>"
例如,我們要設定設備在插入或彈出時播放一個聲音或MP3文件,可以如下指令設定:
ACTION=="add", RUN+="/usr/local/bin/NexusMount.sh"
ACTION==」remove」, RUN+="/usr/local/bin/NexusUnmount.sh"
需要注意的是,每個ACTION指令設定必須在它自己的命令行;目錄必須正確;指令可以是多重設定
一旦規則構建完成,我們需要保存/etc/udev/rules.d/51-android.rules規則文件
在你執行規則集前,測試一下通常是一個好主意,因為那樣你能很容易地找出編寫規則集的錯誤:
你能使用udevadm工具簡單地完成規則集的測試:
udevadm info -q path -n d=<device
name>
根據原作者的設備端名/dev/bus/usb/001/063,測試行為:
udevadm test --action="SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="04e8",
ENV{ID_MODEL}=="Galaxy" MODE="0666", SYMLINK+="GalaxyNexus"" $(udevadm info -q
path -n /dev/bus/usb/001/063)
雖然測試輸出行相當長,兩行輸出信息正確地識別規則集的指令設定:
udev_rules_apply_to_event: MODE 0666
/etc/udev/rules.d/51-android.rules:1
udev_rules_apply_to_event: LINK
'GalaxyNexus' /etc/udev/rules.d/51-android.rules:1
一旦你確認了規則集正確,請重啟udev設備管理服務:
sudo service udev restart
第四步,退出電腦的登錄,然後重新登錄回
在設備插入的情況下,執行ADB命令,如確認設備連接:
$ adb devices
你會看到設備識別號信息,根據原作者的設備,它是
0146B06501005018 device
如果你的設備已啟動在Fastboot模式,許多設備不啟動可能也行,你能執行Fastboot命令,如標準的Fastboot設備:
$
fastboot devices
⑤ 「ADB」怎樣安裝使用
adb的全稱為Android Debug Bridge,就是起到調試橋的作用。
藉助adb工具,我們可以管理設備或手機模擬器的狀態。還可以進行很多手機操作,如安裝軟體、系統升級、運行shell命令等等。其實簡而言說,adb就是連接Android手機與PC端的橋梁,可以讓用戶在電腦上對手機進行全面的操作。
實際上adb工具確實很有用,很多Root方法等等的都需要用到adb,只是很多時候我們沒有擦覺到而已!
但是在我們日常使用Android手機的時候,adb工具能幫我們提供些什麼方便呢??
那究竟adb能幫我們些什麼呢?
我覺得最重要的是,在我們由於修改了系統文件,而導致手機無限重啟,或者誤刪桌面軟體,而導致桌面全黑,又或者開機馬上fc等情況的時候,adb就能發揮其重要作用了!!
出現這些情況,如果我們沒有adb工具都不好搞,說不定就要刷機咯!!
當然,日常的軟體安裝卸載,系統文件的替換都讓adb工具來幫我們
好!下面就教大家如何使用adb
首先,當然是下載adb工具[attach]581213[/attach],下載後,建議放到
個人放在當前用戶的工作目錄下,如我自己的是"C:UsersAdministrator",放這里,往後的操作會比較方便
放好後,我們進入「開始菜單--所有程序--附件--命令提示符」,或者可以用快捷鍵"Win+R",然後輸入CMD,同樣可以進入
手機開啟「USB調試模式」(如果你是開不了機的話,那就沒辦法咯,調試模式我是長開的),窗口中輸入
adb devices 復制上面的
回車後,如果成功連接會出現入下圖紅框部分(如果開不了機,又連接不上adb的話,可以到Recovery里試試)
成功連接以後,我們就可以通過在這里輸入命令來進行各種操作了!
如果想知道所有的adb命令,可以在窗口中輸入adb,然後回車就會有提示了,當然,那是英文的!
後面還有很多,就不全部貼上來了!
給出常用幾個的說明:
1. 查看設備
adb devices
這個命令是查看當前連接的設備, 連接到計算機的android設備或者模擬器將會列出顯示
Android系列教程(六) adb操作命令詳解
2.安裝軟體
adb install
adb install :這個命令將指定的apk文件安裝到設備上
Android系列教程(六) adb操作命令詳解
3. 卸載軟體
adb uninstall <軟體名>
adb uninstall -k <軟體名>
如果加 -k 參數,為卸載軟體但是保留配置和緩存文件.
4. 進入設備或模擬器的shell:
adb shell
通過上面的命令,就可以進入設備或模擬器的shell環境中,在這個Linux Shell中,你可以執行各種Linux的命令,另外如果只想執行一條shell命令,可以採用以下的方式:
adb shell [command]
如:adb shell dmesg會列印出內核的調試信息。
5. 發布埠
可以設置任意的埠號,做為主機向模擬器或設備的請求埠。如:
adb forward tcp:5555 tcp:8000
6. 從電腦上發送文件到設備
adb push <本地路徑> <遠程路徑>
用push命令可以把本機電腦上的文件或者文件夾復制到設備(手機)
7. 從設備上下載文件到電腦
adb pull <遠程路徑> <本地路徑>
用pull命令可以把設備(手機)上的文件或者文件夾復制到本機電腦
8、查看bug報告
adb bugreport
9、記錄無線通訊日誌
一般來說,無線通訊的日誌非常多,在運行時沒必要去記錄,但我們還是可以通過命令,設置記錄:
adb shell
logcat -b radio
10、獲取設備的ID和序列號
adb get-proct
adb get-serialno
adb shell
舉一個最常用的例子:提取,並推送framework-res.apk。
提取系統上的framework-res.apk
進入「命令提示符」後,我們先執行一次"adb devices",確認是否已經連上
然後,再執行"adb remount"
接著,我們就可以提取了,按照上面第七點的格式輸入執行"adb pull /system/framework/framework-res.apk D:"
當然後面的路徑,D:是隨你自己喜歡的,但是要注意空格
adb devices adb remount adb pull /system/framework/framework-res.apk D: 復制代碼即可
這樣D:上就會多了framework-res.apk這文件了
從新推送"framework-res.apk"
我們用到推送的指令,仿照上面第六點輸入執行 "adb push D:framework-res.apk /system/framework"
這里我們不要忘了還要修改許可權,執行"adb shell chmod 644 /system/framework/framework-res.apk"
當然,我們還需要重啟一下,執行"adb reboot"
adb devices adb remount adb adb push D:framework-res.apk /system/framework adb shell chmod 644 /system/framework/framework-res.apk 復制代碼即可