2013-11-28 9 views
16

私はいくつかのPhonegapプロジェクトに取り組んでいます。それらのいくつかでは、私はカメラ機能を使用しています。とPhonegap camera android Kills cordova

Androidは キャプチャ画像にデバイス上のカメラのアクティビティを起動するインテントを使用しています

、および電話で

のAndroidに関する注意点:私は(PhoneGapのドキュメントから)この問題に困惑してい

コルドバの活動 が殺される可能性があります。このシナリオでは、 コードバーの活動が復元されるとき、イメージが表示されないことがあります。

私のテストデバイスの1つ(HTC One X)でこの問題が発生しています。それは非常に満員なので、これをテストするのは良いです。

この問題の代替プラグインがあるとわかりました:https://code.google.com/p/foreground-camera-plugin/しかし、私は可能な限り多くのプラグインを避けようとしています...(他のプラットフォームに移植しやすいように)。 それはPhonegap 2.4.0まで利用可能です。私はPhonegap 2.9.0で作業しています

私はすでにファイルのURIを使用しています(メモリの問題を避けるため)。

私の質問は、Androidが他のアクティビティ(Phonegapに必要なCordovaなど)を殺すことを決定したときに誰かが知っていることです。空きメモリのレベルは? (パーセンテージ、MB)。だから私はこれを事前に確認してユーザーに警告することができた。もちろん

私は解決するつもりはない

編集最初の発言

後....私は、この問題は解決さを願って...しかし、すぐに解決されていないようです本当の問題ですが、私はそれが本当に可能ではないことを発見しました。それはAndroidとPhonegapの間のものです。私は、これが起こることをユーザーに警告することが可能かどうかを知る必要があります。だから、ユーザーは続行する前にいくつかの他のアプリを殺すことができる...だからいつこれが起こるのだろうか?アンドロイドは、いつこのことが起こるのに十分な記憶がないと思いますか?それは私の質問です。そのためAustinAlloverによって与えられたリンクの編集2013年11月29日

、私は今、これはただのPhoneGapの問題ではありません知っている... Androidのカメラが少なすぎる場合には、すべてのJavaアプリケーションを殺すように見えますメモリ...ので、質問はPhonegap/Cordovaより一般的です...

+0

@AustinAllover:私はあなたの質問、またはあなたの問題を理解するとは思わない。 cordova(phonegap)アプリはアンドロイドによって(メモリの問題のため)殺されます。この場合、コールバックはありません。写真が撮影された後、phonegapアプリはゼロから再開されます...これの前に何も起こっていないという知識はありません.... –

+1

この質問にはいくつかの興味深い回答があります... http://stackoverflow.com/questions/8368091/phonegap -camera-restarts-the-application – AustinAllover

+0

ありがとう、かなり有益です...最高の評価は、私の質問(phonegap 2.4.0までサポートしています)に記載されているプラ​​グインにありますが、このオプションは役に立ちます。開発者:「開発者オプション」は「アクティビティを保存しない」と呼ばれます。 –

答えて

1

あなたの質問には良い答えが存在するかどうかは確かですが、私は試してみます。

アプリがメモリを解放するまでにはかなりの要素があります。まず第一の要因は、カメラの動作をどのくらい実行する必要があるかです。 カメラアプリ自体は、ほとんどのデバイスにあります(ただし、さまざまですが)。約10MBです。これはメモリ内のアプリケーションのサイズであり、アクティビティを実行するときのサイズではなく、論理的には少し大きめです。また、カメラ自体と実際の写真を保存するのに必要なメモリ量によって異なります。保存すると約4MB、残りの容量は20MBです。これは、アプリの実行のためのおおよその上限を30MBとしていますが、推測ですが、後でこれを確認して編集します。

あなたはいつものアプリを実行するために利用できる500メガバイト以上のメモリを持っているために、ここでhttps://01.org/android-ia/user-guides/android-memory-tuning-android-5.0-and-5.1 彼らの助言を見つけることができますAndroidに関連するメモリについての良い参照、これは、1つの特定のアプリを実行しているとされていないすべてのアプリケーション用にはもちろんです。

GCがメモリからアプリケーションを削除し始めるよりも、実際にメモリの実際の範囲に近い状態になります.5%未満がまだ空いている場合、この値は自分の実験ではempericalです。最初はまだキャッシュに入っているが、もはや必要ではないアプリを殺す。最後の手段として、それはアクティブなアプリも殺す。

ここでは、多くの仮定があることを強調しなくてはいけませんが、あなたのアプリが約50MBのメモリを無料で使用できなくなることが想定されています。カメラとAndroidの各バージョン。

希望すると、恐れるのではないでしょうか。

+0

あなたの答えをありがとう。本当の解決策はおそらくアンドロイドの開発者から来なければならないでしょう...彼らは単にmemievを無料で殺す前にカメラを起動したプロセスをチェックすればいいです...本当の答え。しかし、あなたは金額に関するいくつかの良い兆候を示します。 –

1

システムカメラアプリを起動しないプラグインを見つけようとしてください。代わりに、限られた機能しか持たないカスタムカメラアクティビティを使用して、メモリ使用量を減らしてください。

関連する問題