私自身のアプリでは、何らかの形でネットワーク呼び出し(HTTPリクエスト)を行うさまざまなサードパーティSDKを使用しています。このコードを編集せずに、すべてのGETおよびPOSTアプリが作成しているリクエストをインターセプトするために、アプリケーション内でコードを個別に作成できますか?
これらのHTTP呼び出しをアプリに記録したい
Fiddler および Charles proxy tools を使用することは承知していますが、これはアプリの外部ですが、これらのHTTP呼び出しをアプリに記録できないため、これは機能しません。
それを行う方法はありますか?
編集:コードでGoogle Analytics SDKとFacebook SDKを使用しています。これらのSDKがアプリから作成しているすべてのネットワーク呼び出しを監視したい
ルート化されていない電話では、Android OSプロキシおよびリダイレクトトラフィックを使用できます。ただし、一部のアプリはそれを尊重しません。直接接続を行います。 SandroProxyへのトラフィック。SandroProxyでトラフィックをキャプチャした後のビデオ SandroProxy with Chrome devtools SandroProxyはpcapfilesもキャプチャできます。pcapフローでssl mitmを作成することもできます。サポート
Charlesプロキシは良い方法です。
その他には、アプリがシングルトンネットワーククラスを使用している場合(理想的です)、getとpostに1つの関数を作成します。クラスからこれらの関数を呼び出し、log.dを使用してコンソールにデータを出力します。要求の応答または所要時間を追跡できます。
HTTP呼び出しを記録できるアプリを探している場合。 Android Snooper ライブラリは、あなたが探しているソリューションです。
https://github.com/jgilfelt/chuck/
ネットワーク要求が行われるたびに通知を送信する新しいアプリが追加され、要求の詳細を確認できます。
https://github.com/facebook/stetho
chrome devツールを使用して、Androidアプリから作成されたリクエストを監視できます。他のクールな機能の中でも)
デバイスをルート化するか、デバッグ(adb)で実行する場合、おそらくこれが役立つでしょう: http://code.tutsplus.com/tutorials/analyzing-Android-network-traffic--mobile-1066
そうでなければ、あなたがやりたいことをすることができるとは思いません。ただし、次のような一般的なネットワークを監視できます。
すべてのトラフィック統計については、以下を参照してください。
https://developer.Android.com/reference/Android/net/TrafficStats.html (アプリのユーザーIDを渡すだけです)
ネットワークステータスを監視する場合:
https://developer.Android.com/reference/Android/net/ConnectivityManager.html