netcfgandroid
1. Android模擬器太慢怎麼辦
用virtualbox新建虛擬機的時候,我一開始選擇的是other,安裝過程正常,啟動沒成功;於是重新建立虛擬機,選擇linux和linux2.6,正常;
一開始想給虛擬機分配1G內存,但是virtualBox警告說會使PC變慢,於是我分了700多M;
網上說網路設置要選擇bridged adapter,可是我的模擬器還是無法使用網路,比如用瀏覽器上網失敗,不知為何?
安裝完android之後,有時候虛擬機無法正常啟動,有時候桌面上有一塊黑的,重啟一下就可以了;
一開始滑鼠點不中android桌面,選擇虛擬機窗口的設置:控制->禁止自動獨占滑鼠;滑鼠從模擬器移除來的時候,按一下右邊的Ctrl即可;
此時eclipse還找不到虛擬機,先查看android的ip地址,在android界面下按Alt+F1,很奇怪我的機器是Alt+F2,進入命令行,敲:netcfg,我的android地址是176.168.1.106,然後設置eclipse:window->preference->Android-> DDMS->Use ADBHOST打勾,value設置為剛才看到的ip地址;然後打開eclipse的DDMS界面,在左邊device標簽找到一個向下按鈕,點擊打開菜單,找到reset adb,點擊,eclipse就找到虛擬機了;
選擇我的android工程,點擊run,程序在android模擬器中啟動了,速度比android官方模擬器要快,佔用電腦內存也少很多,很好;
一段時間不動,android進入鎖屏,當我想開鎖的時候,點不中,此時按一下Esc就可以了;
2. 超實用的adb與adb shell常用命令匯總
adb(Android Debug Bridge),SDK自帶的工具,可實現橋接功能,實現PC和android設備的交互
adb shell:基於Android linux系統操作,放在安卓設備的system/bin目錄下,手機端的命令
一:adb常用命令
1. PC連接android設備
(PC與android設備連接同一個wifi,或處於同一個區域網)
連接:adb connect ip:5555
斷開連接:adb disconnect ip
查看連接設備的信息:adb devices
獲取設備的狀態:adb get-state
2. 重啟adb server
打開adb服務:adb start-service
關閉adb服務:adb kill-service
3. 安裝卸載軟體
安裝:adb install apkpath(某個apk)
adb install -r :強制安裝
卸載: adb uninstall package(可用adb shell pm list packages查看包名)
4. 列印日誌
列印android系統日誌:adb logcat
將日誌列印並保存指定文件夾:adb logcat > /Users/apple/Desktop/log.txt
終止進程:control+C
列印mpsys,mpstate,logcat的輸出,用於分析錯誤:adb bugreport
5. PC與android設備上文件復制
android設備上文件復制到PC上:adb pull
PC上文件推至android設備:adb push
6.重新掛載system分區為可寫,需要root許可權./system分區默認掛載為只讀,但有些操作比如給android系統添加命令,刪除自帶應用等需對系統進行寫操作,得重新掛載為可寫
adb shell
su
或:adb root
adb remount 重新掛載文件系統,獲得可寫的許可權(默認情況是只有可讀許可權的),使用adb remount 的前提是要有root許可權
7. 刪除系統應用
adb root
adb remount
adb shell
cd system/app
rm *apk
二:adb shell命令
adb shell 進入系統子目錄,exit 退出
1. pm命令
列出系統應用的所有包名:adb shell pm list packages 可用grep來過濾:adb shell pm list packages | grep 關鍵字
清除應用數據與緩存:adb shell pm clear <packagename>
2. am命令
啟動應用:adb shell am start -n com.xxx.xxxxxxx|xxx.Activity(可通過adb shell mpsys activity activities | grep mFocusedActivity查看
強制停止應用:adb shell am force-stop <packagename>
3. input命令
模擬點擊事件,點擊坐標點(x,y):adb shell input tap x y
模擬滑動事件,從(x1,y1)到(x2,y2):adb shell input swipe x1 y1 x2 y2
發送文本內容:adb shell input text
模擬按下home:adb shell input keyevent KRYCODE_HOME
4. screencap命令
截屏:adb shell screencap
5. 查看網路狀態命令
查看當前網路狀態:adb shell netstat
通過配置文件配置和管理網路連接:adb shell netcfg
查看網路信息:ifconfig
測試網路聯網狀態:ping
5.其它相關命令
查看當前終端中進程:adb shell ps
獲取cpu信息:adb shell cat /proc/cpuinfo
查看內存信息:adb shell cat /proc/meminfo
查看屏幕解析度:adb shell wm size
查看設備ip地址:adb shell ifconfig | grep Mask
查看實時資源佔用情況:adb shell top
3. ADB通過WIFI連接Android設備
ADB支持USB連接模式和TCPIP鏈接模式。我們可以用TCPIP模式通過WIFI無線連接ADB。設置非常簡單。
第一步
確保電腦和Android設備連接在同一個WIFI網路環境。
第二部
用USB線連接Android設備。連接上之後你的電腦就會檢查到設備並且ADB將會以USB模式啟動。可以通過adb devices命令檢查連接上的設備,用adb usb命令確認adb是運行在usb模式下面。
$ adb devices
List of devices attached
34342343gdf device
$ adb usb
restarting in USB mode
第三部
用adb tcpip模式重啟adb
$ adb tcpip 1111
restarting in TCP mode port: 1111
第四步
查看Android設備的IP地址,這里有三種方式查看Android設備IP。
設置-關於手機-狀態信息-ip地址中查看
設置-WLAN-點擊當前鏈接上的Wi-Fi查看IP
通過ADB命令查看設備IP地址:adb shell netcfg
第五步
知道設備IP地址之後,就可以用adb connect命令通過IP和埠號連接ADB了。
$ adb connect 192.168.1.3:1111
connected to 192.168.1.3:1111
#查看一下連接上的設備,usb連接和wifi連接都存在
adb devices
List of devices attached
34342343gdf device
192.168.1.3:1111 device
拔掉USB線,你會發現設備仍然是連接上的,如果沒有連接上,用剛才的命令重現嘗試一下。
總結
採用wifi連接ADB和uiautomotor結合起來可以用來在usb線的狀態下跑測試腳本,對於測試人員來說也是非常有幫助的。
4. adb命令,不用usb線,遠程操作手機
方法如下:
1. 使用USB數據線連接設備。
2. 在命令行輸入adb tcpip 5555 ( 5555為埠號,可以自由指定)。
3. 斷開 USB數據,此時可以連接你需要連接的|USB設備。
4. 在從cmd命令行中輸入 adb connect <設備的IP地址>:5555(埠號)
後面不通過連接數據線就可以使用ADB,DDMS 來調試Android應用或顯示Logcat 消息。
5. 如果需要恢復到USB數據線,可以在命令行輸入adb usb,也可以adb disconnect <設備的IP地址>:5555(埠號)
6、查看IP地址方法:
1>Android設備的IP地址可以在Settings->About Phone->Status 查到
2>adb shell
>>>ifconfig
3>adb shell
>>>netcfg
7、舉個栗子:
adb tcpip 5555
adb connect 192.168.34.21:5556
adb disconnect 192.168.34.21:5556