14

Android プロジェクトを開始したとき、アプリケーションに表示されるすべての画面が新しいアクティビティでなければならないという誤解がありました。これでプロジェクトが終了しました。エミュレーターといくつかのAndroidフォンで確認しました。これまでのところ、私は問題を目撃していませんが、最近、アプリケーションでのアクティビティが多すぎるのはかなり悪い考えだとどこかで読みました。

現在、私のアプリケーションには約 15 ~ 20 のアクティビティがあります。理想的には、約 5 ~ 6 であると聞きました。コードを再構築する必要がありますか、それともすべてのアクティビティを完了した後にすべてのアクティビティを終了するだけで十分ですか?

4

6 に答える 6

38

複雑なアプリケーションを作成する際には、多くのアクティビティを作成する必要があります。したがって、必要なアクティビティの数はアプリケーションによって異なります。プロジェクト内のアクティビティは、パフォーマンスに影響しません。

この効果は、Android のスタック内のアクティビティの数によって生成されます。そのため、スタックに 5 ~ 6 個のアクティビティを保持することをお勧めします (アクティビティが不要になったら終了します)。

そのため、アプリケーションが要求する数のアクティビティを作成しますが、一度に開くアクティビティの数は少なくしてください。

于 2012-04-06T15:36:18.950 に答える
8

プロジェクトに多くのアクティビティがあり、重要でないアクティビティがある場合は、別のアクティビティが開始された後は、そのアクティビティは必要ないことを意味します。

マニフェスト ファイル セット内:android:noHistory="true"

例:

Activity1 -> Activity2 -> Activity3 -> Activity4..................-> Activity20

マニフェスト ファイル内:

  activity android:name=".Activity1" android:label="@string/app_name" android:noHistory="true"

startActivity() の前に finish() を設定するよりも Intent を使用して Activity1 を再度呼び出す場合

私はこれがあなたを助けることができると思います

于 2012-04-06T17:10:39.493 に答える
4

Android システムはアプリケーション プロセスをできるだけ長く維持しようとしますが、最終的には古いプロセスを削除して、新しいプロセスやより重要なプロセスのためにメモリを再利用する必要があります。これはActivity、バックグラウンドで実行されている に適用されます...古いActivityは管理され、システムが新しいプロセスのためにメモリを再利用する必要があるときに破棄されます。

そうは言っても、考慮すべき点は次の2つだと思います。

  1. ユーザー エクスペリエンス。あなたのアプリは本当に 15 ~ 20Activity秒必要ですか? どうにかして画面数を減らせませんか?Activityユーザーがアプリケーションをナビゲートするときに必要な対話が少ないため、通常は s が少ないほど良いです。

  2. コード設計。それぞれActivityに独自の個別のクラスがありますが、これは、アプリケーションを実装するときにスマートな設計上の決定を行うことを制限するものではありません。たとえば、類似Activityした をグループ化して、abstract class. Android プロジェクトのサイズが大きくなるにつれて、管理が難しくなります。この方法で同様のクラス間でコードを共有すると、アプリケーションのコアに簡単な変更を加えることができます。

于 2012-04-06T15:33:19.730 に答える
3

[編集] - Google IO 2018 の時点で、Google は多くのフラグメントで単一のアクティビティを使用することを推奨しています。考慮すべきこと。

それは最終的にあなたが何をしているかに依存します。違いを生むのに十分なほどビューを変更できない場合があります。理想的には、5 ~ 6 回のアクティビティが最適ですが、実行できない場合もあります。約 40 の異なるクラスと約 18 のアクティビティを含むモバイル アプリを作成しました。アプリがユーザーと対話する方法に基づいて、そのようにする必要がありました。2 つまたは 3 つのアクティビティを 1 つにまとめることができれば、それはすばらしいことです。ファイルサイズと最適化にも役立ちますが、それができない場合は、あまり心配しないでください.

于 2012-04-06T15:26:18.640 に答える
1

15の異なる画面=15の異なるアクティビティと言います。活動の数を減らすことができる理由の1つは、フラグメントの導入によるものだと思います。個々のアクティビティが機能する場合、なぜフラグメントを使用するのかについて議論するでしょうが。開発者の好みによると思います。

于 2012-04-06T15:29:18.750 に答える