電話アプリケーションのホットスタートユーザーエクスペリエンスの最適化

1636 ワード

電話アプリケーションのホットスタートユーザーエクスペリエンスの最適化


ホットスタート定義:最下層Activityで、戻るボタンをクリックします.Activityが消えたら、デスクトップアイコンをクリックするか、最近のタスクから開くか、MainActivityを適用して再起動します.今回の起動はホット起動です.
戻るボタンをクリックすると、Activityのfinish操作がデフォルトでトリガーされますが、プロセスは殺されません.したがって,ホットスタート時間を適用することは,最初のActivityを作成する時間と考えられる.MainActivityの作成と表示を高速化することが、ホットスタート最適化の核心です.

1.他社の試作品とサードパーティのAppを比較する

  • 他のサンプル、例えば小米、魅族は、電話アプリケーションの最下層Activityで、戻るボタンをクリックして、Activityのfinishをトリガーしませんでした.
  • サードパーティのApp、例えば微信、QQは、アプリケーションの最初のActivityで、戻るボタンをクリックしても、Activityのfinishをトリガーしません.
  • は、上記のアプリケーションは、いずれもBackキーの論理を書き換えており、BackキーとHomeを押す論理の差は少なく、アプリケーションをバックグラウンドに切り替えるだけでActivityを破棄することはないと推測できる.

  • 2.電話応用上記方法を用いて熱起動前後の比較を最適化する


    電話の一番下のActivityの戻りボタンロジックを、ホームと同じように変更したときのメモリの変化は以下の通りです.
    1)修正前
    Backを押してアプリケーションを終了
    デスクトップアイコンをクリックしてアプリケーションを起動
    2)修正後
    Backを押してアプリケーションを終了
    デスクトップアイコンをクリックしてアプリケーションを起動
    上記の現象から,電話のメインインタフェースActivityロックが占めるメモリは大きくなく,1~2 M程度であることが分かる.修正後、backをクリックして再開し、安定したメモリを適用してもほとんど変化しません.したがって,ユーザがBackボタンをクリックすると,このActivityを完全に保持し,高速熱起動の目的を達成することができる.

    3.具体的な実現

    0.コードは以下のように実現される.
    @Override
    public void onBackPressed() {
      if (!moveTaskToBack(true)) {
          super.onBackPressed();
      }
    }
    
    1. Android自体の設計は、AppがBackの動作をカスタマイズすることを許可するので、理論的にはすべてのタイプのAppがこのスキームを採用して最適化することができます.2.メインインタフェースがメモリを占有する比較的少ないアプリケーションは直接コード対応コードを追加すればよい.3.ヘッダインタフェースでメモリリソースを多く消費するアプリケーションでは、ActivityおよびFragmentのdestroyメソッドを確認し、リソースを解放する操作をpauseまたはstopに移動し、createメソッドを確認し、リソースをロードする操作をresumeまたはstartに移動する必要があります.