私のアプリケーションの1つは、Kitkat Samsung
デバイスで重大なアクティビティレクレーションの問題があります。写真を撮るときに問題がより頻繁に現れ、RAMの半分の汚れているJellybean Samsung
には見られません。ログにはメモリが不足していますが、OutOfMemoryException
はスローされません。 Kitkat
にもっと積極的な活動閉鎖政策があると思います(そうしないと、デフォルトのカメラアプリが漏れている)。カメラを別のプロセスで開く
私のアプリのメモリが高いときにOSが自分のアクティビティを終了するのか、それともすべてのアプリケーションで使用されるメモリの合計が高いときにOSを閉じてしまうのだろうと思っていました。 OSにプロセスごとのしきい値がある場合、別のプロセスでカメラを開くと役立つかもしれません。
マニフェストのprocess
属性を使用して、独自のプロセスでサービスを開始することができます。 Activities
に相当する属性がないと仮定して、独自のプロセスでプロキシサービスを開始し、このサービスからアクティビティを開始した場合、このプロセスでアクティビティも実行されますか?
@オニクこれらの段落はバックグラウンドです。おそらくそこに誰かがOSのメモリ管理を深く知っていて、何が起こっているのか理解する助けになるかもしれない。私はLollipopのメモリリークの問題とwebviewのリークについて知っていますが、AFAIKはKitkatsに更新されたwebviewを適用しません。 –
アクティビティも独自のプロセスで起動できますhttp://developer.android.com/guide/topics/manifest/activity-element.html#proc – nandeesh
Intentを使用してカメラを使用する場合は、すでに別のプロセスでカメラを使用しています。起動されたカメラアプリはユーザーによって選択される可能性があり、プロセスがメモリから外れて膨大になる可能性があります。あなたのアプリはAndroidシステムの良い市民になるように準備され、終了時に状態を維持し、意図の結果が返されたときに復元する必要があります。しかし、この破壊があなたのユースケースでは受け入れられない場合、あなたのアプリの中に「カスタムカメラ」を実装する必要があります。このようなカメラを操作することは、本質的にメモリを消費する作業ではありません。 –