編輯:關於Android編程
如果想分析Android下 某個APP的網絡數據交互,需要在Android手機上抓包,最常用的抓包工具非tcpdump莫屬,用tcpdump生成Wireshark識別的 pcap文件,然後將pcap文件下載到電腦上,用電腦上的Wireshark加載pcap文件,通過Wireshark分析tcpdump抓取的數據。
一、安裝tcpdump
為Android手機安裝tcpdump,首先必須將Android手機root,現在市面上常用的root工具都很傻瓜很強大,推薦使用root精靈,將手機root以後,我們就可以為手機安裝tcpdump了。
先下載tcpdump文件, 下載地址:http://xiazai.jb51.net/201502/other/tcpdump.rar
復制代碼 代碼如下:
adb push tcpdump /sdcard/
adb Shell
su
cat /sdcard/tcpdump > /system/bin/tcpdump
上一條命令如果提示沒有權限,接著執行如下命令嘗試給 /system 目錄增加寫權限
復制代碼 代碼如下:
su
mount
在mount結果中找到包含/system的一行,類似如下:
復制代碼 代碼如下:
/dev/block/platform/msm_sdcc.1/by-name/system /system ext4 ro,seclabel,relatime,data=ordered 0 0
去處/system前半行,即/dev/block/platform/msm_sdcc.1/by-name/system,執行如下命令:
復制代碼 代碼如下:
mount -o remount /dev/block/platform/msm_sdcc.1/by-name/system /system
這個時候/system就擁有寫權限了,繼續執行:
復制代碼 代碼如下:
cat /sdcard/tcpdump > /system/bin/tcpdump
chmod 777 /system/bin/tcpdump
到此為止,tcpdump就成功安裝到了/system/bin/目錄下,接著用如下命令還是抓包
二、使用tcpdump抓包
復制代碼 代碼如下:
tcpdump -i wlan0 -s 0 -w /sdcard/1.pcap
可以結束時使用Ctrl+c快捷鍵讓tcpdump結束抓包,抓到數據會存到/sdcard/1.pcap文件內
重新打開一個終端(Terminal),執行如下命令
復制代碼 代碼如下:
adb pull /sdcard/1.pcap .
1.pcap文件被下載到了終端上的當前目錄下
三、安裝Wireshark並分析pcap文件
從Wireshark官網https://www.wireshark.org/下 載適合你系統的Wireshark,然後點擊你下載後的Wireshark安裝包安裝好Wireshark,找到剛剛下載好的1.pcap文件,雙擊 1.pcap文件,1.pcap文件會自動被Wireshark打開。在Wireshark的Filter內輸入如下一些過濾條件,可以更加方便地分析數 據來源。
復制代碼 代碼如下:
tcp.port == 80 //過濾來自80端口的TCP數據
udp.port == 12345 //過濾來自12345端口的UDP數據
ip.src == 192.168.0.1 //過濾源IP為192.168.0.1的數據
ip.dst == 192.168.0.1 //過目的IP為192.168.0.1的數據
以上過濾條件可以用and跟or相互組合,例如
復制代碼 代碼如下:
tcp.port == 80 and ip.src == 192.168.0.1 //過濾來自80端口,源IP為192.168.0.1的TCP數
udp.port == 12345 or ip.dst == 192.168.0.1 //過濾來自12345端口的UDP數據,或者目的IP為192.168.0.1的數據
自定義View控件, 算是常見的用法. 剛接觸安卓開發的時候, 很多人習慣在不同的XML布局文件裡面Copy一大段代碼, 達到相同View不斷被使用的效果,但如果以後要改
Android性能優化-布局優化今天,繼續Android性能優化 一 編碼細節優化。編碼細節,對於程序的運行效率也是有很多的影響的。今天這篇主題由於技術能力有限
既然本節是學習如何使用多線程下載,那我們先要明白什麼是多線程下載,在搞明白什麼是多線程下載之前,需要先知道什麼是單線程下載。上圖就是說明了單線程下載的原來,因此單線程下載
來自:https://developer.android.com/training/basics/intents/index.html 前言:我們都知道在APP