2016-08-02 9 views
-1

私はしばらくの間、アプリケーションを使っていますが、初めてデバイスで起動するようです(最初は、それは遅れています)。しかし、2回目はバターのように滑らかです。私はこれがシステムが最初のセッションの後にRAMの割り当てを適応させるためだと思うし、私は自分のアプリケーションに割り当てるRAMの量を決定する責任を何に置き換えることができるのだろうか?かなりイライラしていて、それが悪化しているようです。これを行う方法がない場合は、アプリケーションを初めて起動するときにRAMの大量のタスクを開始できますか?スプラッシュスクリーンのようなもののように。ありがとう。アンドロイドデバイスがアプリケーションに割り当てるRAMを増やすことはできますか?

答えて

1

私は、システムがあなたの最初のセッションの後にRAMの割り当てを適応させるため、これはAndroidが私の知る限り、これを実行しません

である疑いがあります。すべてのアプリプロセスは、同じ状態で開始します:接合子プロセスのフォークとして。

私は自分のアプリに割り当てるRAMの量を決定するのは何でもできますか?

何らかの理由で心配しているような初期割り当ての点ではありません。

私は初めてアプリケーションを起動するときに何かRAMの重いタスクがありますか?

一般的ではありません。存在するものは、あなたのアプリに固有のものです。

あなたは正確あなたのどこに問題があると判断するならばそれは役立つだろう:

  • をあなたはStrictModeを有効にして、不適切なものを行うときに叫ぶように構成され、ディスクI/Oのようにしていることを確認します遅れが

  • loggiことを考えると、あなたのコード内で発生した場合、メインアプリケーションスレッドで

  • 使用ロギングは、絞り込んしますなど、あなたがその仕事を削減することを試みることができるように、コードの行は、遅い何であるかを具体的に決定し、バックグラウンドスレッドに移動するトレースNG、使用方法、まれ

RAM上

  • そしてそう物事を遅らせる。何かがあれば、RAMは高速化します(キャッシングなど)。 RAMに関する私たちの問題は、RAMが不足してクラッシュすることに起因します。

  • +0

    ああ、大丈夫です。私の疑惑の原因は、Android StudioのRAMグラフが限界に達し、ラムの割り当てを増やしたり、ガベージコレクションを行ったりすることだった。 2回目はグラフが常に限界を下回っていたので、私はシステムが適応していると思った。なぜこれが起こっているのかあなたは考えていますか? –

    +0

    @SimonBergmark:恐らくあなたのプロセスはすでに実行されていました。 Androidは必要に応じてより多くのシステムRAMを割り当てますが、アイドル時にはシステムに戻される未使用のヒープスペースを解放し、その後はほとんどがAndroid 5.0以上になります。ユーザーがアプリを離れると、Androidはプロセスをすぐに終了しません。 Androidスタジオ(メインツールバーの赤い四角)からプロセスを手動で終了し、表示されている内容を確認することができます。 – CommonsWare

    0

    コードにいくつかの欠陥が、私はこのメモリリークが発生した場所、またhttps://developer.android.com/studio/write/lint.html(アンドロイドスタジオに統合)を使用し、それはあなたが表示されます、あなたが検出し、https://developer.android.com/studio/profile/am-memory.html(アンドロイドスタジオに統合)を使用するようにお勧めウォルドので、ほとんどの場合、これはありますあなたのコードで最も一般的なエラー(存在する場合)。

    関連する問題