少し前に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で影響しそうな点をピックアップしてみました。
※あくまでも抜粋です、他にも変更点はあるので、正確な情報は公式サイトを確認してくださいね。