既存のAndroidアプリをAndroid Oで実行した時の挙動差異

少し前にAndroid O Developer Previewが発表され、新機能などについて公式サイトでも説明が出てきています。

PIPとかフォントとかadaptive iconとか、面白そうと思う部分は色々あるのですが、既に公開されているアプリに何か影響がないかも気になりますね。

Android Oでの挙動の違いは以下にまとめられています:

・Android O Behavior Changes
https://developer.android.com/preview/behavior-changes.html

この中から個人的に気になった変更点をピックアップします。

※超独断と偏見で選んでます!

Background execution limits

バックグラウンドにいるアプリ(プロセス)が「cached」状態に入るとWakeLockが開放されます。

Android background location limits

バックグラウンドにいるアプリは、位置情報の受信頻度が下がります。
「foreground service」の起動方法が変わります。従来のメソッドは動かなくなります。
サービスが制限を受けている状態でstartService()を実行するとIllegalStateExceptionが発生します。

Security

SSLv3がサポートされなくなりました。また、古いTLSバージョンでの接続再試行(フォールバック)も行われません。
全てのアプリにSecure Computing (SECCOMP)が適用されます。使えなくなるシステムコールがあるかもしれませんね。
WebViewはアプリとは別プロセスで起動します。

Privacy

Android IDが「アプリ単位、且つ、ユーザ単位」になりました。同じ端末上の2つのアプリは別のAndroid IDを取得するようになります。
アプリ削除・再インストール後もAndroid IDは変わりません。

Collection handling

AbstractCollection.removeAll()AbstractCollection.retainAll()実行時にNullPointerExceptionが発生する可能性があります。
これまではリストが空でもNullPointerExceptionは発生しませんでした。
これはつまり、このクラスを継承しているArrayListやHashSetなども影響を受けることですね…

App shortcuts

ホーム画面にショートカットを作成する際に、アプリからOSに発行していたINSTALL_SHORTCUTブロードキャストが利用できなくなりました。
代わりにShortcutManager#requestPinShortcut()を使います。

というわけで、Android Oで影響しそうな点をピックアップしてみました。

※あくまでも抜粋です、他にも変更点はあるので、正確な情報は公式サイトを確認してくださいね。

カテゴリー: Android タグ: , , , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です