問題タブ [android-memory]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
11258 参照

android - AndroidでByteArrayOutputStreamの書き込み中にメモリ不足エラーが発生しました

私は大きな問題を抱えています。Sdcardにあるビデオファイルから2^21バイトを読み取っていますが、同じものをByteArrayOutputStreamに書き込むと、メモリ不足として例外がスローされます。どうしてか分かりません?同じための正しい解決策を提案してください。

これがスタックトレースです。

エラースタック:

コード:

0 投票する
2 に答える
1379 参照

android - 大量の RAM を使用する Android アプリケーション

私の Android アプリケーションのサイズはデバイス上でわずか 5MB ですが、アプリケーションを実行すると、約 12 ~ 18 MB (および ics デバイスではそれ以上) の RAM を大量に使用します。アプリケーションが大量の RAM を使用している理由について、これについての説明を見つけようとしています。解析からのプッシュ サービスも使用しています。私のアプリケーションは画像を多用します。これが理由として考えられます。アプリケーションの RAM 消費を減らすにはどうすればよいですか。

0 投票する
1 に答える
1965 参照

android - レイアウトメモリリーク?

私はジュニアAndroid開発者です。アンドロイドUIデザインの場合、ほとんどのアンドロイド開発者はレイアウトデザインにXMLを使用すると思います。今日、私の上級開発者は、レイアウト設計にXMLを使用しないと言いました。すべてのUIデザインは、コードを使用して生成します。彼が言った理由は、レイアウトリソースがAndroidによって自動的に解放されないためです。JNIを使​​用してレイアウトリソースを解放します。彼は私がとても後輩だと思っているので、彼はあなたに詳細を話しません。

彼が本当かどうか聞きたい。彼の見方がわからない。しかし、私は彼のコードが再利用できないことを確認します。また、Androidがライフサイクルでレイアウトリソースをリリースする方法。

ありがとう。

0 投票する
1 に答える
196 参照

android - イメージの循環 - ビットマップ サイズが VM の予算を超えています

単一の ImageView を持つアクティビティがありますが、リソースを何度も交換し、いくつかの異なる高解像度画像を循環させます。

「ビットマップ サイズが VM 予算を超えています」というエラーで問題が発生しています。onDestroy メソッドで手動でクリーンアップすることについての記事をここで見たことがありますが、アクティビティが常にそこまで進んでいるとは限りません。

メモリ不足にならずに大量の大きな画像を循環するにはどうすればよいですか?

0 投票する
1 に答える
2781 参照

android - Android アプリを作成する際に注意すべきメモリ管理のヒントはありますか?

最近、Android に関するインタビューでいくつかの質問を受けました。それらのいくつかを検索しましたが、適切なリソースと回答が見つかりませんでした。そこで、ここであなたと共有したいと思いました。

  1. Android で使用するのに適したレイアウトは何ですか (より良いメモリ消費などのため)? それに対する答えはありませんでしたが、インタビュアーは相対的なレイアウトだと言いました。これは本当ですか ?そのための説明はありますか?

  2. メモリ消費を改善するために行っているいくつかのプラクティスを教えてください。こちらで調べましたが、他にもあるようです。インタビュアーが静的変数に関連するいくつかのことはより優れていると述べたからです。

  3. Android がメモリを必要とする場合、サービスまたはアクティビティを強制終了しますか? 優先順位の問題。また、これについて話し合っている人もいませんでした。インタビュアーは、サービスに関するいくつかのことがアクティビティよりも優先度が高い (??) ため、アクティビティが強制終了されるコンポーネントであると述べました。これは本当ですか ?さらなるリソースや説明はありますか?

この問題について知っている知識やリソースを教えてください。

0 投票する
1 に答える
1718 参照

android - 画像リソースはどのようにリサイクルされますか?

通常、手動でリソースを解放する必要がないため、常にDrawableリソースを使用します。Imageviews

しかし、場合によっては、ビットマップを動的に作成する必要があり、手動recycle()でそれらを呼び出す必要がありonDestroy()ます。それは、他の StackOverflow questionによると、私が見つけた最良の解決策です。

DrawableAndroid がリソースを管理する方法と、それらを手動でリサイクルする必要がない理由を理解したいです。そして、理解したら、手動で作成されたビットマップに同様のロジックを適用できるかどうかを確認してください。

0 投票する
2 に答える
527 参照

android - メモリリーク、ビットマップ、フラグメント

Galleryを含むフラグメントをホストするアクティビティがあります。別のアクティビティを開始するときは、基本的に、ギャラリービットマップで満たされたメモリを解放したいと思います。

私のフラグメントは次のように動的に挿入されます:

アクティビティのonPauseで_promoFragment.onDestroyViewを呼び出すこともできますが、MATは、ビットマップへの参照を保持するGalleryオブジェクトがあることを示しています。

あなたは何を提案できますか?

psより明確であれば、MATレポートを投稿できます。

0 投票する
1 に答える
87 参照

java - Android アクティビティは毎回 2 MB を追加します

Android アプリを終了して再起動するたびに、2 Mb 余分に消費します。たとえば、アプリを 3 回再起動すると、6 Mb 以上消費します。戻るボタンを使用して終了し、OnDestroy() 内のすべての参照を消去します。

Android のメモリ管理とメモリ リークに関連するスタック オーバーフローのすべての投稿を確認しました。また、MAT も実行しましたが、アクティビティがメモリをリークしている方法はありません (保持参照)。

他のアプリケーションでも同じことを試しましたが、一定のメモリ使用量を +/- 0.75 Mb に維持しています。

Android のメモリ管理について混乱しています。

0 投票する
2 に答える
3168 参照

android - ドローアブル onPause() のバインドを解除すると、戻るナビゲーションが応答しなくなり、このステップをスキップするとメモリ オーバーフローが発生する

すべてのアクティビティの背景として設定する画像を使用していますが、メモリ オーバーフローの問題が発生し、アプリがクラッシュしていました。現在、アクティビティのpause()およびDestroy()でドローアブルのバインドを解除していますが、戻るボタンを押すと空白の画面が表示されます。では、余分なメモリを使用せずにこれを回避するにはどうすればよいでしょうか。

最初は android:background="@drawable/" を使用してレイアウトを膨らませていましたが、これは常にメモリ オーバーフロー エラーを引き起こし、VM では 10MB を割り当てることができないというメッセージを表示していました (アプリ)。 VM は、unbindDrawables(..) を使用せずに 5MB (app.) を割り当てることはできません。表示される背景画像の品質は明らかに低下しましたが、 png ファイルが 13KB の場合、JVM はリクエストを処理するために 5 MB または 10 MB のスペースをどのように必要としますか?

レイアウトステートメントを onCreate() から onResume() メソッドにシフトしましたが、アプリケーションは戻るボタンを押すと再びメモリ不足になります。

0 投票する
1 に答える
318 参照

android - 動的レイアウト データを使用した ListView でのメモリ使用量

行ごとにネストされたデータを持つカスタム ListView に取り組んでいます。行ごとにチェックボックスを使用して人の名前を表示し、その人に関連付けられた 1 対多の電話番号の ListView にサブ行を動的に追加したいと考えています。

それは現在働いています。ただし、大規模なデータセットでは、メモリ使用量が多いため、速度が低下したりクラッシュしたりします。私がやろうとしていることを達成するためのより良い方法はありますか?

これが私が見たいものの例です:

ArrayAdapter の getView() 関数で現在使用しているコードを次に示します。いくつかクリーンアップしようとしたので、コンパイル エラーがある場合は、クリーンアップによるタイプミスである可能性があります。

}