Android P DeveloperPreview1

Androidの次期バージョンとなるAndroid Pの開発者向けプレビュー(DP1)が公開されたので抄訳です。(逐次、更新していきます。)

# 新機能
## Wi-Fi RTTによる屋内測位
* Wi-Fi RTT(Round-Trip-Time)を追加し、屋内測位を利用できるようになった。
* ハードウェアサポートや場所の権限などが有効になっているAndroid Pのデバイスで、RTT APIを使用して近くにあるWi-Fiのアクセスポイントまでの距離を測定できる。
* RTTを使用するためにアクセスポイントに接続する必要はなく、プライバシを維持するために、デバイスがアクセスポイントではなく、距離を判断することができる。
* 3点以上のアクセスポイントとの距離がわかれば、1~2mの精度で一計測ができる。

## Diplay cutoutのサポート
* AppleのiPhoneXの特徴である切り欠け(ノッチ)をAndroidもサポートするようになった。
* DisplayCutoutクラスを使用すると、コンテンツが表示されるべきでない非機能領域の位置と形状を見つけることができ、これらの切り欠け領域の有無と配置を判断するには、getDisplayCutout（）メソッドを使用する。
* layoutInDisplayCutoutModeによって、アプリはデバイスの切り欠けに沿ってコンテンツをレイアウトできる。この属性は、次のいずれかの値に設定できる。
    * LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
    * LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS
    * LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER

## メッセージ通知の改善
Android Pは次の機能が追加された。

* 画像のサポート
* 返信を下書きとして保存
* 会話がグループ会話なのかの特定
* SmartReply

Android Oreoから追加された通知チャンネルにも変更があった。

* チャンネルグループのブロック
    * アプリの通知設定内でチャンネルのグループ全体をブロックできるようになった
* 新しいBroadcastIntentタイプ
    * 通知チャネルとチャネルグループのブロッキング状態が変更されたときにブロードキャストインテントを送信するようになった。
* 新しい拒否優先度カテゴリ
    * NotificationManager.Policyに２つの新しい定数が追加された。
        * PRIORITY_CATEGORY_ALARMS：アラームが優先
        * PRIORITY_CATEGORY_MEDIA_SYSTEM_OTHER：メディア、システム、およびゲームサウンドが優先
        
## Multi-camera API
* Android Pを搭載したデバイス上の2台以上の物理カメラからストリームに同時にアクセスできるようになった。
* デュアルフロントカメラまたはデュアルバックカメラを搭載したデバイスでは、シームレスズーム、ボケなどの単一のカメラでは不可能な革新的な機能を作成できる。

## BitmapとDrawableのためのImageDecoder
* ImageDecoderが導入され、BitmapFactory APIとBitmapFactory.Options APIではなく、ImageDecoderを使用して画像をデコードする必要がある。
* ImageDecoderを使用すると、バイトバッファ、ファイル、またはURIからDrawableまたはBitmapを作成できる。

## Animation
* GIFおよびWebPアニメーションイメージを描画および表示するための新しいAnimatedImageDrawableクラスが導入された。
* AnimagedImageDrawableは新しいImageDecoderでデコードできる。

## HDR VP9 Video, HEIF イメージ圧縮, Media APIs
* Android Pには、HDR（High Dynamic Range） VP9 Profile2の組み込みサポートが追加されているため、YouTube、Playムービー、HDR対応デバイスのその他のソースからHDR対応のムービーをユーザーに配信できるようになった。
* MediaPlayer2も導入され、DataSourceDescを使用して作成されたプレイリストをサポートする。

## JobSchedulerにおけるデータコストの感度
* JobSchedulerが改善され、ユーザのネットワーク関連のジョブをより適切に処理できるようになった。

## Neural Networks API 1.1
* Neural Networks　APIはAndroid 8.1（APIレベル27）に導入され、Androidでのオンデバイスの機械学習を加速するAndroid PはAPIを拡張して改良し、Pad、BatchToSpaceND、SpaceToBatchND、Transpose、Strided Slice、Mean、Div、Sub、およびSqueezeの9つの新しい操作のサポートを追加した。

## Autofillの改善
* 実装できる複数の改善点が導入され、フォームに記入する際のユーザーエクスペリエンスがさらに向上する。

#Androidの基盤強化
## アプリのセキュリティ

* アプリとデバイス間でより一貫性のある指紋認証UIに移行
* ユーザーに指紋センサーに触れ、デバイスに適したテキストと配置を管理するように促す標準のシステムダイアログを提供
* アプリケーションは、新しいFingerprintDialog APIを使用してシステムの指紋ダイアログをトリガすることができる

## プライバシー
* アイドル状態のアプリからマイク、カメラ、およびすべてのSensorManagerセンサーへのアクセスを制限
* アプリのUIDがアイドル状態の間、マイクは空のオーディオを報告し、センサーは報告イベントを停止する。
* カメラは切断され、アプリケーションがそれらを使用しようとするとエラーが発生する。
* ほとんどの場合、これらの制限によって既存のアプリに新しい問題が導入されることはありませんが、アプリからこれらのリクエストを削除することをおすすめする。


## ARTのパフォーマンス改善
* ARTの実行プロファイルの使用を拡張してアプリケーションを最適化し、コンパイルされたアプリケーションコードのインメモリフットプリントを削減
* ARTは現在、DEXファイルのオンデバイス書き換えにプロファイル情報を使用しており、一般的なアプリケーションの範囲で最大11％の削減が可能

## 電力効率
バッテリ寿命をさらに向上させるためにDoze、App Standby、およびBackground Limitsを引き続き改良している。

## 最新のAndroidをターゲット
Google Playでは、2018年11月までにAndroid Oreo（targetSdkVersion 26以降）を対象とするすべてのアプリのアップデートが必要になり、2019年の64ビットハードウェアのサポートが必要になります。
https://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html

## その他
* 開発やテストにはPixelデバイスをサポートする必要はなく、AVDに設定することを推奨している。
* Google純正のスマートフォンであるNexus 5X/6PおよびPixel Cが、Android Pをサポートしない
* Android PでビルドするにはAndroid3.2canaryバージョンを使用するか、Android Studio 3.1にP Developer Preview SDKとツールをダウンロードすることでできる。

## 今後
Google I/Oでさらに情報が出てくる予定らしいので乞うご期待

# 参考
https://android-developers.googleblog.com/2018/03/previewing-android-p.html
https://developer.android.com/preview/download.html