私は小さなアプリを持っています。最初の画面はログイン アクティビティです。最初のアクティビティの読み込みは比較的問題ありません (エミュレータで 2 秒)。
ログイン ボタンを押すと、System.Net.HttpWebRequest を使用してログイン ユーザー名/パスワードを検証します。これには約 12 秒かかります。デスクトップで同じ URL を 0.1 秒で呼び出します。さらに悪いことに、URL から返されるデータは json であり、デシリアライズする必要があり、さらに 10 秒かかります。
私はここでグーグルで検索し、System.Net.HttpWebRequest.Proxy の落とし穴 (検出に 7 秒) を排除しました。
デバッグを行ったところ、デバッグ ウィンドウに次のような興味深い結果が表示されました。基本的に、実行時にかなりの数のアセンブリが読み込まれていることに気付きました。
08-14 15:06:12.713 I/dalvikvm( 9180): Wrote stack traces to '/data/anr/traces.txt'
Loaded assembly: MonoDroidConstructors [External]
08-14 15:06:17.823 D/dalvikvm( 9180): GC_CONCURRENT freed 50K, 4% free 7313K/7559K, paused 11ms+3ms
Thread started: <Thread Pool> #2
Thread started: <Thread Pool> #3
**Loaded assembly**: System.dll [External]
[0:]
[0:]
[0:]
start login,8/14/2013 3:06:22 PM
08-14 15:06:23.723 I/mono-stdout( 9180):
start login,8/14/2013 3:06:22 PM
[0:]
start login,8/14/2013 3:06:22 PM
Thread started: <Thread Pool> #4
**Loaded assembly**: Mono.Security.dll [External]
Thread started: <Thread Pool> #5
Thread started: <Thread Pool> #6
[0:]
end login,8/14/2013 3:06:29 PM
08-14 15:06:29.933 I/mono-stdout( 9180):
end login,8/14/2013 3:06:29 PM
[0:]
end login,8/14/2013 3:06:29 PM
[0:]
[0:]
**Loaded assembly**: System.Runtime.Serialization.dll [External]
[0:]
08-14 15:06:38.893 I/dalvikvm( 9180): threadid=3: reacting to signal 3