android冷却起動性能最適化
3887 ワード
コールドスタートとは?
アプリケーションを開いたことがありません.バックグラウンドにアプリケーションプロセスが存在しない場合.このとき、アプリケーションアイコンiconをクリックしてアプリケーションを起動することをコールド起動と呼びます.
ホットスタートとは?
すでに起動しており、戻るキーまたはHOMEキーをクリックしてデスクトップに戻り、バックグラウンドにはアプリケーションのプロセスも存在します.デスクトップに戻っていくつかの列の操作を行った後、再びアイコンの起動をクリックして、ホット起動になります.この中の冷熱起動の主な区分は,バックグラウンドにまだこの応用プロセスが存在するかどうかを見ることによって区分される.
冷たい起動時:アプリケーションを歩くに違いありません.私たちの最適化は主に彼にとってです.一連の初期化操作をThreadの中に置いて、例えば各種第三者のsdkの起動でしょう. は一連の初期化操作をInentServiceに置き、バックグラウンドに置いて実行する.InentServiceが起動すると、内部にスレッドが開き、タスクの実行が完了すると、InentServiceは手動で制御する必要がなく自動的に停止します.原理と第1条の差は多くない.
次にアプリケーションのonCreateメソッドでこのサービスを使用します.インタフェースプリロード.起動したActivityが起動する前に、起動画像や何かを与えることで、ユーザーの体験を強化することができます.
drawableディレクトリの下でstart_を新規作成window.xml、1つの画像を運ぶために使用されます
スタイルファイルにスタイルを作成するには:
そしてAndroidManifestでxmlファイルでの構成:
最後にMainActivityで:
OK、これでいいです.
アプリケーションを開いたことがありません.バックグラウンドにアプリケーションプロセスが存在しない場合.このとき、アプリケーションアイコンiconをクリックしてアプリケーションを起動することをコールド起動と呼びます.
ホットスタートとは?
すでに起動しており、戻るキーまたはHOMEキーをクリックしてデスクトップに戻り、バックグラウンドにはアプリケーションのプロセスも存在します.デスクトップに戻っていくつかの列の操作を行った後、再びアイコンの起動をクリックして、ホット起動になります.この中の冷熱起動の主な区分は,バックグラウンドにまだこの応用プロセスが存在するかどうかを見ることによって区分される.
冷たい起動時:アプリケーションを歩くに違いありません.私たちの最適化は主に彼にとってです.
new Thread(new Runnable() {
@Override
public void run() {
//doInitAction
}
}
).start();
import android.app.IntentService;
import android.content.Context;
import android.content.Intent;
public class InitializeService extends IntentService{
private static final String ACTION_INIT_WHEN_APP_CREATE = "com.sanxin.ttreader";
public InitializeService() {
super("InitializeService");
}
public static void init(Context context) {
Intent intent = new Intent(context, InitializeService.class);
intent.setAction(ACTION_INIT_WHEN_APP_CREATE);
context.startService(intent);
}
@Override
protected void onHandleIntent(Intent intent) {
if (intent != null) {
final String action = intent.getAction();
if (ACTION_INIT_WHEN_APP_CREATE.equals(action)) {
performInit();
}
}
}
/**.
* do you init action here
*/
private void performInit() {
//do somthing youself here
}
}
次にアプリケーションのonCreateメソッドでこのサービスを使用します.
InitializeService.init(getApplicationContext());
drawableディレクトリの下でstart_を新規作成window.xml、1つの画像を運ぶために使用されます
-
-
スタイルファイルにスタイルを作成するには:
そしてAndroidManifestでxmlファイルでの構成:
最後にMainActivityで:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
InitializeService.init(getApplicationContext());
}
}
OK、これでいいです.