Android P は、アプリが応答しない場合に通知するのではなく、アプリをクラッシュさせるようになりました。

click fraud protection

Android P では、アプリが応答していないことを通知する代わりに、アプリがクラッシュするようになります (アプリの応答なしまたは ANR ダイアログと呼ばれます)。 これは、出来の悪いアプリの開発者を攻撃するために使用されている戦術であり、うまくいく可能性があります。

すべての中で、 新しい追加 Android P を含む 新しいナビゲーションジェスチャ, スライス API、および 新しい生体認証 API、より微妙な方法で影響を与える可能性のある他の変更もいくつかあります。 その 1 つは、フォアグラウンド アプリの [アプリが応答していません (ANR)] ダイアログ ボックスの削除です。 ANR ダイアログは、何らかの原因でメイン UI スレッドの応答が妨げられている場合に表示されます。 Android Oreo 以前でこれが発生した場合、ANR ダイアログがユーザーに表示され、ユーザーに通知されます。 現在、Android P では、アプリケーションはユーザーに何の通知も行われずにクラッシュします。

実際に何が起こったのかをユーザーに伝えずにアプリケーションをクラッシュさせるのはなぜでしょうか? これは必ずしもユーザーにとってメリットがあるわけではありませんが、開発者は特定の問題に特に注意を払い、その問題を確実に回避する必要があります。 開発者は、フォアグラウンド スレッドでは何も実行しないことをお勧めします。 以下にリンクされているソースビデオでは、Google がこの問題を回避するための潜在的な解決策について説明しています。 非同期タスク API. Android の最近のバックグラウンド サービスには制限があるため、ここでのサービスへの移行はおそらく良いアイデアではありません。 この問題への取り組みについて詳しく知りたい場合は、以下の講演を聞くことをお勧めします。

Google のアプローチは理にかなっていますが、やりすぎではないでしょうか。 Android アプリがクラッシュする頻度が減ったように見えるかもしれませんが、通知がユーザーに見えにくい場合は、 その場合、開発者はユーザーに直接ではなく、Firebase クラッシュ レポートなどのクラッシュ ツールに注意を払う必要があります。 フィードバック。 最新の P ベータ リリースの開発者は、開発者向けオプションの設定を有効にすることで、これらのクラッシュ ダイアログを元に戻すことができます。

Android P でのバックグラウンドでのアプリの動作の可視性に関する変更はこれだけではありません。 Android Oreo では、次の場合に永続的な通知が導入されました。 特定のアプリがバックグラウンドで実行されていた そのアプリに十分な優先度の高い通知がなかった場合でも、Android P ではその通知が完全に削除されるようになりました。 唯一の違いは、ANR ダイアログ ボックスが永続的な通知を配置するほど煩わしくないことです。


経由: /r/AndroidDev