| ファイルタイプ | APK |
|---|---|
| バージョン | Preview |
| 出版社 | |
| 発売日 | 2017/10/25 |
| 追加された日付 | 2017/10/25 |
| OSの要件 | Android |
| 要件 | Only compatible with the Nexus 5X, Nexus 6P, Pixel C, Pixel, Pixel XL, Pixel 2, and Pixel 2 XL. |
| 総ダウンロード数 | 1,002 |
| 週あたりのダウンロード | 8 |
| 価格 | Free |
説明
Android O では、ユーザーと開発者向けにさまざまな新機能が導入されています。このドキュメントでは、開発者向けの新機能について説明します。
Android O Behavior Changes を確認して、プラットフォームの変更がアプリに影響を与える可能性のある領域について確認してください。
ニューラル ネットワーク API
Neural Networks API (NNAPI) は、デバイス上の機械学習操作のためのハードウェア アクセラレーションをアプリに提供します。 API は、デバイス上でのモデルの作成、コンパイル、および実行をサポートします。通常、アプリは NNAPI を直接使用しません。代わりに、NNAPI は、開発者がモデルをトレーニングして Android デバイスにデプロイできるようにする機械学習ライブラリ、フレームワーク、およびツールによって呼び出されることを意図しています。
Neural Networks API の詳細については、Neural Networks API リファレンス ドキュメントと Neural Networks API デベロッパー ガイドをご覧ください。
通知
Android 8.1 Developer Preview 1 には、通知に対する次の変更が含まれています。
アプリは、1 秒に 1 回だけ通知アラートを鳴らすことができるようになりました。このレートを超えるアラート サウンドはキューに入れられず、失われます。この変更は、通知動作の他の側面には影響せず、通知メッセージは引き続き期待どおりに投稿されます。
NotificationListenerService と ConditionProviderService は、ActivityManager.isLowRamDevice() が呼び出されたときに true を返す低 RAM の Android 搭載デバイスではサポートされていません。
低 RAM デバイスのターゲティングの改善
Android 8.1 (API レベル 27) では、2 つの新しいハードウェア機能定数 FEATURE_RAM_LOW と FEATURE_RAM_NORMAL が Package Manager に追加されています。これらの定数を使用すると、アプリと APK の分割を通常または低 RAM のデバイスに配布することができます。
これらの定数により、Play ストアは特定のデバイスの機能に特に適したアプリを強調表示することで、より優れたユーザー エクスペリエンスを促進できます。
自動入力フレームワークの更新
Android 8.1 デベロッパー プレビュー(API レベル 27)では、アプリに組み込むことができる Autofill フレームワークにいくつかの改良が加えられています。
Developer Preview では、データの元の表現ではなく、Android システムが自動入力保存 UI に表示するカスタムの説明のサポートが追加されています。これは、たとえば、クレジット カード番号をマスクして下 4 桁のみを表示する場合に便利です。詳細については、CustomDescription クラスを参照してください。
Developer Preview では、Android システムが自動入力保存 UI を表示するかどうかを決定するためにアプリが使用できる Validator オブジェクトを指定できます。この機能は、SaveInfo.Builder クラスの setValidator() メソッドによって提供されます。
Developer Preview の BaseAdapter クラスには setAutofillOptions() メソッドが含まれており、アダプター内の値の文字列表現を提供できます。これは、アダプタで値を動的に生成するスピナー コントロールに役立ちます。たとえば、setAutofillOptions() メソッドを使用して、ユーザーがクレジット カードの有効期限の一部として選択できる年のリストの文字列表現を提供できます。自動入力サービスは、文字列表現を使用して、データを必要とするビューを適切に入力できます。
さらに、AutofillManager クラスには、仮想構造内のビューの可視性の変更についてフレームワークに通知するために呼び出すことができる notifyViewVisibilityChanged(View, int, boolean) メソッドが含まれています。非仮想構造のメソッドのオーバーロードもあります。ただし、非仮想構造では通常、メソッドが View クラスによって既に呼び出されているため、フレームワークに明示的に通知する必要はありません。
EditText の更新
API レベル 27 以降、EditText.getText() メソッドは Editable を返します。以前は CharSequence を返しました。 Editable は CharSequence を実装しているため、この変更には後方互換性があります。
Editable インターフェイスは、貴重な追加機能を提供します。たとえば、Editable は Spannable インターフェースも実装しているため、EditText のインスタンス内のコンテンツにマークアップを適用できます。
プログラムによるセーフ ブラウジング アクション
Safe Browsing API の WebView 実装を使用することで、Google が既知の脅威として分類した URL に WebView のインスタンスが移動しようとしたことをアプリで検出できます。デフォルトでは、図 1 に示すように、WebView はインタースティシャルを表示し、既知の脅威についてユーザーに警告し、URL をロードするか、安全な前のページに戻るかのオプションをユーザーに提供します。
Android 8.1 Developer Preview では、アプリが既知の脅威にどのように対応するかをプログラムで定義できます。
アプリが既知の脅威をセーフ ブラウジングに報告するかどうかを制御できます。
セーフ ブラウジングで既知の脅威として分類される URL にアプリが遭遇するたびに、特定のアクション (安全な状態に戻るなど) をアプリが自動的に実行するようにすることができます。
注: 既知の脅威から最適に保護するには、セーフ ブラウジングが初期化されるまで待ってから、WebView オブジェクトの loadUrl() メソッドを呼び出してください。
ビデオサムネイルエクストラクタ
MediaMetadataRetriever クラスに新しいメソッド getScaledFrameAtTime() が追加されました。このメソッドは、指定された時間位置に近いフレームを検索し、ソース フレームと同じ縦横比のビットマップを返しますが、指定された幅と高さの長方形に収まるようにスケーリングされます。これは、ビデオからサムネイル画像を生成するのに役立ちます。
ソースビデオと同じ解像度のビットマップを返すため、メモリを浪費する可能性がある getFrameAtTime() ではなく、このメソッドを使用することをお勧めします。たとえば、4K ビデオのフレームは 16MB のビットマップになり、サムネイル画像に必要なサイズよりもはるかに大きくなります。
共有メモリ API
Android 8.1 (API レベル 27) では、新しい SharedMemory クラスが導入されています。このクラスを使用すると、複数のプロセスまたはアプリで使用できる匿名共有メモリを作成、マップ、および管理できます。
WallpaperColors API
Android 8.1 Developer Preview (API レベル 27) では、壁紙の色を管理するためのサポートが追加されています。この機能を使用すると、ビットマップ、ドローアブルから、または最も視覚的に代表的な最初の 3 つの色を使用して WallpaperColors オブジェクトを作成できます。壁紙の最初の 3 つの目立つ色の詳細を取得することもできます。
WallpaperColors オブジェクトを作成するには、次のいずれかを実行します。
3 色を使用して WallpaperColors オブジェクトを作成するには、第 1、第 2、第 3 の色を渡して WallpaperColors クラスのインスタンスを作成します。プライマリ カラーを null にすることはできません。
ビットマップから WallpaperColors オブジェクトを作成するには、ビットマップ ソースをパラメータとして渡して fromBitmap() メソッドを呼び出します。
ドローアブルから WallpaperColors オブジェクトを作成するには、ドローアブル ソースをパラメータとして渡して fromDrawable() メソッドを呼び出します。
壁紙から 1 次、2 次、または 3 次の色の詳細を取得するには、次のメソッドを呼び出します。
getPrimaryColor() は、壁紙の最も目立つ色を返します。
getSecondaryColor() は、壁紙の 2 番目に目立つ色を返します。
getTertiaryColor() メソッドは、壁紙の 3 番目に目立つ色を返します
重要な色の変更についてシステムに通知するには、notifyColorsChanged() メソッドを呼び出します。このメソッドは、新しい WallpaperColors オブジェクトを提供する機会がある onComputeColors() ライフサイクル イベントをトリガーします。
色の変化のリスナーを追加するには、addOnColorsChangedListener() メソッドを呼び出します。 getWallpaperColors() メソッドを呼び出して、壁紙の原色を取得することもできます。
指紋の更新
FingerprintManager クラスには、次のエラー コードが導入されています。
FINGERPRINT_ERROR_LOCKOUT_PERMANENT - ユーザーが指紋リーダーを使用してデバイスのロックを解除しようとした回数が多すぎます。
FINGERPRINT_ERROR_VENDOR - ベンダー固有の指紋リーダー エラーが発生しました。