編輯:關於Android編程
Android應用很多時候都會涉及到網絡,在請求網絡出錯時,我們可以通過抓包來分析網絡請求,返回的數據等,通常我們是用tcpdump這個工具來抓包,再通過wireshark工具來分析生成的文件,關於tcpdump的使,可以從網上查一下,有很多介紹,比如:http://www.cnblogs.com/likwo/archive/2012/09/06/2673944.html。關於如何用wireshark來分析文件,本文不作介紹。
使用adb的命令來操作,還是比較麻煩,所以我寫了一個應用,把這些命令封裝了起來。實現的最根本的原理是通過Runtime.exec來執行linux命令。
、
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView textView = (TextView) findViewById(R.id.textView1);
String oldText = textView.getText().toString();
textView.setText(oldText + "\n\n" + "目標文件: " + CommandsHelper.DEST_FILE);
findViewById(R.id.start_capture).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setEnabled(false);
new Thread(new Runnable() {
@Override
public void run() {
final boolean retVal = CommandsHelper.startCapture(MainActivity.this);
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "startCapture result = " + retVal, Toast.LENGTH_SHORT).show();
}
});
}
}).start();
}
});
findViewById(R.id.stop_capture).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CommandsHelper.stopCapture(MainActivity.this);
findViewById(R.id.start_capture).setEnabled(true);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
[Android 之美] 那些你不知道的APK 瘦身,讓你的APK更小
讓你的apk文件盡可能小,應該使移除未使用的代碼和資源文件。那麼本章節介紹了如何做到讓APK更小,性能更好,下載轉化率會更高,以及如何指定在構建APK過程中保留或移除的代
自定義控件三部曲之繪圖篇(十二)——Paint之setXfermode(三)
一篇給大家講解了有關setXfermode的幾種模式,還剩最後一系列DST模式沒講,這篇文章就給大家講講這個模式的用法及實戰一、DST相關模式在講完了SRC相關的模式以後
Android使用Notification實現寬視圖通知欄(二)
Notification是在你的應用常規界面之外展示的消息。當app讓系統發送一個消息的時候,消息首先以圖表的形式顯示在通知欄。要查看消息的詳情需要進入通知抽屜(noti
用android的GCM 網絡管理來優化電池使用時間
?GCM網絡管理器能讓app注冊能執行面向網絡的服務,每個任務只是完成一個工作。它的API能處理這些任務,允許Google Play Services通過系統集中處理這些