私はフラグメントとしてGoogleマップ(api v2)を表示するアプリを開発中です。アプリが読み込まれると、数秒間白い空白の画面が表示されてから地図が表示されます。私はログステートメントを使用して遅延がどこにあるかを見ていますが、なぜそれが遅いのか分かりません。setContentView()は地図フラグメントでゆっくりです
は、ここに私のonCreateです:
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(TAG, "onCreate Start -------------------------------");
super.onCreate(savedInstanceState);
Log.i(TAG, "onCreate 1 -------------------------------");
setContentView(R.layout.activity_main);
Log.i(TAG, "onCreate 2 -------------------------------");
do_async_setup();
Log.i(TAG, "onCreate 3 -------------------------------");
prefs = getSharedPreferences(PREFS_NAME, 0);
prefs_editor = prefs.edit();
Log.i(TAG, "onCreate Finish -------------------------------");
そして、ここで出力されます。
01-20 10:05:28.802: I/HeadsUp(19544): onCreate Start -------------------------------
01-20 10:05:28.802: I/HeadsUp(19544): onCreate 1 -------------------------------
01-20 10:05:30.396: I/HeadsUp(19544): onCreate 2 -------------------------------
01-20 10:05:30.396: I/HeadsUp(19544): onCreate 3 -------------------------------
01-20 10:05:30.403: I/HeadsUp(19544): onCreate Finish -------------------------------
setContentViewの遅延時間は1.5秒です。ここに私のレイアウトです。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment"/>
</RelativeLayout>
読み込み時にアプリが凍っているような気がします。これをスピードアップするか、遅延を隠すにはどうすればいいですか?
おかげで、
Traceviewを使用して、問題がどこにあるかを具体的に把握します。 – CommonsWare
@ CommonSWare、もし私がそれを読んでいるのであれば、それはログが私に言ったことを教えてくれる。 setContentViewは、onCreateメソッドの「時間」の約44%を使用しています。私が想定している3211.060はReal timeにミリ秒と書かれていますか?また、それはActionBarSherlockNative.setContentView()の理由は、それは非常にXMLなどの読み込みが遅いかもしれない?私がLayoutInflater.createViewFromTagに移動し、さらにいくつかのステップSupportMapFragment.onCreateView()をまだ98msにしてから、いくつかのGoogleのgmsコードに移動します。だからそれはGoogleマップの断片のように見えます。それは正しいようですか? – Rob
さて、最も可能性の高い原因はマップなので、驚くことではないと思います。それは言われている、それはまたあなたがおそらくちょうど立ち往生していることを示唆している。あなたはこれをどのような種類のハードウェアで実行していますか? – CommonsWare