0

バックグラウンド サービスを使用する Android アプリケーションを開発しています。私は Android アプリケーション開発の経験があまりなく、これが初めてのアプリケーションです。私は数多くのアルファ版を作成してきましたが、最近コードを大幅に変更し、アプリケーションをアンインストールしようとするとフリーズする問題が発生しました。この問題は以前のバージョンでは発生しなかったため、何か変更したことが原因であると思われます。バージョンの変更後、sqlite データベースを使用してデータの一部を保存しています。テーブルはそれほど大きくなく、最大で約 5 行しかありませんが、約 5 または 6 列あります。同じサイズの 2 つのデータベースを使用しています。以前のバージョンと現在のバージョンの両方で

私は 3 つの異なる電話でテストしました。Nexus S、Samsung Galaxy S II (I9100)、Samsung Galaxy Mini (S5570)。すべての電話で問題なく動作しますが、Galaxy Mini でアプリケーションをアンインストールしようとすると、電話にプログレス バーのあるアンインストール画面が表示され、フリーズします。画面がオフになり、どのボタンにも反応しません。しばらく待つと、再起動しているように Samsung のロゴが表示されますが、実際には再起動しません。その画面から抜け出す唯一の方法は、電源ボタンを長押しして強制的に電源を切るか、バッテリーを取り外して電話を再起動することです。

この問題は他の電話では発生しないため、メモリまたは CPU の問題であると思われます。logcat を観察してこの問題を診断しようとしましたが、致命的なエラー メッセージは表示されません。サイズが大きい他の有名なアプリケーションを市場にインストールして問題を再現しようとしましたが、フリーズせずにアンインストールされるため、フリーズを引き起こしているのは私のアプリケーションであると確信しています。

これに関するヘルプや情報をいただければ幸いです。アプリケーションにいくつかのメモリ リークがあることを確認し、それを削除しようとしていますが、アンインストール中にフリーズが発生する原因がわかりません。電話のメモリを確認すると、内部メモリに 120MB 以上の空き容量があり、外部メモリは使用していません。私が気づいたのは、CPU使用率です。SystemPanel アプリケーションを使用して CPU クロックとメモリを監視したところ、Galaxy mini の CPU クロックの割合が非常に高いことがわかりました。

私のとりとめのない話を要約すると、

問題:アプリケーションをアンインストールしようとすると、Galaxy Mini フォンがフリーズします。この問題は、Galaxy Mini (3 台の電話のうち) でのみ発生し、私のアプリケーションでのみ発生します。

原因の私の推測:

  • バックグラウンド サービスがまだ実行されていて、アンインストールと衝突します (可能性が高いように聞こえますが、これは以前のバージョンでは発生しませんでした)。

  • アプリケーション ファイルの削除には時間がかかり、Galaxy Mini CPU には負担がかかりすぎます (アプリの最大サイズが 5MB 未満であるため、可能性は低いと思われます。サイズが約 25MB 以上の Angry Birds をアンインストールしようとしました)。

  • 私のアプリケーションはメモリ リークが多すぎて、すべてのヒープ メモリを使い果たし、常に GC をトリガーします。また、Galaxy Mini は Froyo であるため、電話全体がフリーズし、どこかで動かなくなってしまいます (可能性が高いように聞こえますが、アプリケーションは実際に実行されています)

  • 私が持っている電話は安っぽく、私のアプリケーションを嫌っています (可能性は低いですが可能です)。

かなり長い投稿をお読みいただきありがとうございます。この問題の考えられる原因、または考えられる解決策について、ご意見やご提案をいただければ幸いです。

4

1 に答える 1

1

アプリケーションが Galaxy Mini で一般的に正常に動作すると仮定すると (たとえば、CPU の問題はアンインストール中にのみ発生する)、Galaxy Mini のファームウェアのバグにつまずいていることになります。アンインストール時には制御できないため、その時点で何かを行う責任はありません。Samsung がアプリのアンインストールに問題がある場合、それは Samsung の責任であり、あなたの責任ではありません。

ここで、Galaxy Mini でアプリがより一般的に誤動作している場合 (たとえば、アプリが動作しているときにデバイスの動作が全体的に遅くなるなど)、それはアプリの障害を示している可能性があり、アンインストール プロセスによって一般的に悪化しています。

于 2012-04-23T23:56:36.937 に答える