Android 7.1 のアップデートでは、ユーザーとデベロッパー向けのさまざまな新機能が導入されています。このドキュメントでは、デベロッパー向けの新機能について紹介します。
アプリのショートカット
新しいショートカット機能を使用すると、ユーザーをランチャーからアプリ内の重要なアクションに直接誘導できます。ユーザーは、アプリのランチャー アイコンを長押ししてアプリのショートカットを表示し、ショートカットをタップして関連するアクションにジャンプするだけです。これらのショートカットはユーザーを引き付けるのに効果的です。ユーザーがアプリを起動する前でもアプリの機能を表示できます。
各ショートカットはインテントを参照します。各インテントは特定のアクションまたはタスクを起動します。インテントとして表現できるアクションであれば、ショートカットを作成できます。たとえば、新しいテキスト メッセージを送信する、予約する、動画を再生する、ゲームを続ける、地図上の場所を読み込むなどのインテントを作成できます。
アプリのショートカットは、APK のリソース ファイルに追加することで静的に作成できます。また、実行時に動的に追加することもできます。静的ショートカットは一般的な操作に適しており、動的ショートカットを使用すると、ユーザーの設定、動作、位置情報に基づいてアクションをハイライト表示できます。各アプリで最大 5 つのショートカットを提供できます。ただし、一部のランチャー アプリでは、アプリに登録したすべてのショートカットが表示されない場合があります。
アプリにショートカットを追加すると、ショートカットをサポートするすべてのランチャー(Google Pixel ランチャー(Google Pixel デバイスのデフォルト ランチャー)、Google Now ランチャー(Nexus デバイスのデフォルト ランチャー)、その他のサポートされているランチャーなど)でショートカットを使用できるようになります。
どのアプリでもショートカットを作成できます。また、どのランチャー アプリでもショートカットのサポートを追加できます。Android 7.1 には、アプリがショートカットを登録するための API と、ランチャーが登録されたショートカットを読み取るための API が用意されています。詳しくは、アプリのショートカットに関するデベロッパー向けドキュメントをご覧ください。
イメージ キーボードのサポート
多くのユーザーは、絵文字やステッカーなど、さまざまなリッチ コンテンツを使用してコミュニケーションができることを望んでいます。以前のバージョンの Android の場合、ソフト キーボード(インプット メソッド エディタ、IME)でアプリに送信できるのは、Unicode の絵文字だけに限られていました。リッチ コンテンツに関しては、別のアプリでは使用できない各アプリ固有の絵文字を作成するか、Easy Share Action やクリップボードを通じて画像を送信するなどの回避策を使用する必要がありました。
Android 7.1 の Android SDK には、Commit Content API が含まれています。この API により、IME は、アプリ内のテキスト エディタに画像や各種リッチ コンテンツを直接送信できるようになります。この API は、リビジョン 25.0.0 以降の v13 サポート ライブラリでも利用できます。
この API を使用すると、任意のキーボードからリッチ コンテンツを受け入れるメッセージ アプリや、リッチ コンテンツを任意のアプリに送信できるキーボードを作成できます。詳しくは、画像キーボード サポートのデベロッパー向けドキュメントをご覧ください。
新しいプロフェッショナル向け絵文字
Android 7.1 では、男性だけでなく女性の幅広い職業を表現する新しい絵文字が追加されます。新しい絵文字は、既存の男性絵文字と女性絵文字の差異を解消し、さまざまな肌の色で利用できます。
キーボード アプリやメッセージ アプリのデベロッパーは、これらの絵文字をアプリに組み込む必要があります。Paint.hasGlyph()
を呼び出すと、新しい絵文字文字を動的に確認できます。
ライブ壁紙のメタデータの強化
壁紙のプレビューを表示するコンポーネント(壁紙選択アプリなど)に、ライブ壁紙に関するメタデータを提供できるようになりました。ラベル、説明、作成者などの既存のメタデータ属性を表示できるほか、コンテキスト URL とタイトルの新しい属性を表示して、壁紙の詳細情報にユーザーを誘導できます。
詳しくは、 Android デベロッパー ブログをご覧ください。
丸いアイコンのリソース
アプリで円形のランチャー アイコンを定義できるようになりました。このアイコンは、対応しているデバイスで使用されます。ランチャーがアプリアイコンをリクエストすると、フレームワークはデバイスのビルド構成に応じて android:icon
または android:roundIcon
を返します。そのため、アプリはランチャー インテントに応答するときに、android:icon
リソースと android:roundIcon
リソースの両方を定義する必要があります。Image Asset Studio を使用して、丸いアイコンをデザインできます。
新しい円形アイコンをサポートするデバイスでアプリをテストし、円形のアプリアイコンの外観と表示方法を確認する必要があります。リソースをテストする方法の一つは、Android エミュレータを実行し、API レベル 25 をターゲットとする Google API エミュレータ システムを使用することです。Google Pixel デバイスにアプリをインストールして、アイコンをテストすることもできます。
アプリ ランチャー アイコンの設計について詳しくは、マテリアル デザイン ガイドラインをご覧ください。
ストレージ管理ツールのインテント
アプリは ACTION_MANAGE_STORAGE
インテントを起動して、ユーザーをシステムの [空き容量を増やす] 画面に移動できるようになりました。たとえば、アプリに現在使用可能な容量よりも多くの容量が必要な場合は、このインテントを使用して、ユーザーが不要なアプリやコンテンツを削除して十分な容量を確保できるようにします。
VR スレッドのスケジューリングを改善
Android 7.1 では、VR スレッドのスケジューリングを改善する新機能が提供されています。これは、バーチャル リアリティ アプリはレイテンシの影響を非常に受けやすいため便利です。
アプリは、1 つのスレッドを VR スレッドとして指定できるようになりました。アプリが VR モードにある間、システムはレイテンシを最小限に抑えるために、そのスレッドをより積極的にスケジュールします。プロセスで同時に使用できる VR スレッドは 1 つだけです。また、システムによって、そのスレッドの実行時間に制限が適用される場合があります。アプリが VR モードになっていない場合、この設定は効果がありません。
スレッドを VR スレッドとして指定するには、新しい ActivityManager.setVrThread()
メソッドを呼び出します。
デモユーザーのヒント
アプリは、デバイスがデモユーザーとして実行されているかどうかを確認できるようになりました。
アプリは、新しい UserManager.isDemoUser()
メソッドを呼び出して、アプリがデモユーザー サンドボックスで実行されているかどうかを確認できます。これにより、アプリは見込み顧客に合わせて起動時のエクスペリエンスをカスタマイズできます。たとえば、デモユーザーとして実行する場合、アプリはユーザーをよりサポートしたり、機能について詳しく説明したりできます。
携帯通信会社と通話アプリ向けの API
携帯通信会社と電話アプリ向けに、次のような新しいテレフォニー機能が提供されるようになりました。
- マルチエンドポイント通話
- CDMA 音声プライバシー プロパティ
- ビジュアル留守番電話のソースタイプのサポート
- ビデオ通話を管理するための携帯通信会社の構成オプション
Wear デバイスの新しい画面密度
Android では、Wear デバイス向けにいくつかの新しい画面密度がサポートされるようになりました。これにより、一部のデバイスの物理仕様により近い画面密度を指定できるようになりました。これにより、必要に応じて、Wear アプリのグラフィックを表示先の画面に合わせて微調整できます。
新しいデバイスの密度は次のとおりです。
DENSITY_260
DENSITY_300
DENSITY_340