1. ホーム
  2. android

[解決済み] largeHeapをtrueに設定する利点は何ですか?

2022-02-09 20:08:21

質問

多数のクラス&アンプ、多数のライブラリが含まれるアプリケーションがあります。 android:largeHeap="true" 私のマニフェストファイルのコードを添付します。

<application
        android:name=".MyApplication"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="My Huge Application"
        android:largeHeap="true"
        android:logo="@drawable/logo"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme" >
</application>

私は、これは良い方法なのか、と聞かなければなりませんでした。 親切に、それを使用するメリットとデメリット(長所と短所)を提案してください。

どのように解決するのですか?

このパーティーには遅すぎましたが、とにかく私の0.02ドルを提供させてください。
を使用するのは android:largeHeap="true" ここにgoogleからの抜粋が説明されています。

<ブロッククオート

しかし、大きなヒープを要求する機能は、特定のヒープにのみ適用されます。 より多くのRAMを消費する必要があることを正当化できる一部のアプリ(たとえば 大規模な写真編集アプリのような) 大きなヒープを要求するのは メモリが足りなくなったので、すぐに解決したいからです。 を使用するのは、すべてのメモリがどこに置かれているかを正確に知っている場合だけです。 を割り当て、それを保持しなければならない理由を説明します。しかし、たとえ自信があっても アプリが大きなヒープを正当化できるのであれば、ヒープを要求するのは避けるべきでしょう。 可能な限り。余分なメモリを使用すると、ますます ので、全体的なユーザーエクスペリエンスを損ないます。 を行う場合、収集に時間がかかり、システムのパフォーマンスが低下する可能性があります。 タスクスイッチやその他の一般的な操作を行う

ドキュメントの完全なリンクはこちらです。 https://developer.android.com/training/articles/memory.html

<ブロッククオート

アップデイト

を執拗にやり続けた結果 out of memory errors oom の問題を回避するためにマニフェストにこれを追加することは、罪にはならないと思います。

<ブロッククオート

アップデイト2

以下はその一部です。 対処するためのヒント out of memory errors

1) androidが提供する以下のコールバックを使用する。 onLowMemory , onTrimMemory(int) といった画像のキャッシュをクリアすることで(ピカソ、グライド、フレスコ...)、詳細を読むことができます。 こちら こちら
2) ファイル(画像、PDF)の圧縮
3) ビットマップをより効率的に扱う方法について読む こちら
4) 本番環境に移行する前に定期的に lint を使用し、コードが滑らかであることを確認する。 かさばらない