Skip to content

Most visited

Recently visited

navigation

Android 5.0 API

このドキュメントの内容 詳細を表示

  1. 対象 API レベルのアップデート
  2. ユーザー インターフェース
    1. マテリアル デザインのサポート
    2. 最近使ったアプリ画面の同時実行中のドキュメントとアクティビティ
    3. WebView のアップデート
    4. 画面のキャプチャと共有
  3. 通知
    1. ロック画面の通知
    2. 通知メタデータ
  4. グラフィック
    1. OpenGL ES 3.1 のサポート
    2. Android エクステンション パック
  5. メディア
    1. 高度なカメラ機能のための Camera API
    2. 音声の再生
    3. メディア再生の制御
    4. メディアのブラウジング
  6. ストレージ
    1. ディレクトリの選択
  7. ワイヤレスと接続
    1. 複数のネットワーク接続
    2. Bluetooth のブロードキャスト
    3. NFC の機能強化
  8. プロジェクト Volta
    1. ジョブのスケジューリング
    2. バッテリーの使用状況のためのデベロッパー ツール
  9. 職場や学校での Android
    1. 管理されたプロビジョニング
    2. デバイス オーナー
    3. 画面固定
  10. システム
    1. アプリの使用統計情報
  11. 印刷フレームワーク
    1. PDF をビットマップとしてレンダリング
  12. テストとアクセシビリティ
    1. テストとアクセシビリティの改善
  13. IME
    1. 入力言語のより簡単な切り替え
  14. マニフェストの宣言
    1. 宣言可能な必須機能
    2. ユーザー パーミッション

API の変更点

  1. API レベル 20 から 21 »

関連ドキュメント

  1. Android 5.0 の動作の変更点
  2. Android Lollipop の特長

API レベル: 21

Android 5.0(Lollipop)は、ユーザーとアプリ デベロッパーに新しい機能を提供します。このドキュメントでは、いくつかの注目すべき API の概要について説明します。

公開済みのアプリがある場合は、Android 5.0 の動作の変更点を参照してアプリで対応すべき内容を確認してください。新しい API を使用していない、または新しい機能を対象としていない場合でも、これらの動作の変更点が Android 5.0 端末上のアプリに影響することがあります。

新しいプラットフォーム機能の概要については、Android Lollipop をご覧ください。

開発の開始

Android 5.0 対応アプリの開発を始めるには、最初に Android SDK を入手する必要があります。次に、SDK Manager を使用して Android 5.0 SDK プラットフォームとシステム イメージをダウンロードします。

対象 API レベルのアップデート

Android 5.0 を搭載している端末向けにアプリを最適化するには、targetSdkVersion"21" に設定し、Android システム イメージにアプリをインストールした後、この変更を加えたアップデート済みのアプリを公開します。

Android 5.0 API を使用しながら旧バージョンも同時にサポートするには、minSdkVersion でサポートされていない API を実行する前に、システムの API レベルをチェックする条件をコードに追加します。下位互換性の維持については、異なるプラットフォーム バージョンのサポートをご覧ください。

API レベルの仕組みについては、API レベルとはをご覧ください。

重要な動作の変更点

過去に Android にアプリを公開したことがある場合は、アプリが Android 5.0 の変更点による影響を受ける場合があります。

詳細については、Android 5.0 の変更点をご覧ください。

ユーザー インターフェース

マテリアル デザインのサポート

Android 5.0 では、Android の新しいマテリアル デザイン スタイルのサポートが追加されました。マテリアル デザインを使うと、外観が動的に変化し、ユーザーから見て UI 要素が自然に切り替わるアプリを作成できます。このサポートには以下が含まれます。

アプリにマテリアル デザインの機能を追加する方法については、マテリアル デザインをご覧ください。

最近使ったアプリ画面の同時実行中のドキュメントとアクティビティ

以前のリリースでは、最近使ったアプリ画面には、ユーザーが最近操作したアプリごとにタスクを 1 つずつしか表示できませんでした。今後は、ドキュメントに同時実行中のアクティビティが追加される場合、必要に応じて複数のタスクをアプリで開けるようになります。この機能により、ユーザーは最近使ったアプリ画面から個々のアクティビティやドキュメントをすばやく切り替えられるようになります。すべてのアプリにわたって一貫した切り替え操作になるので、マルチタスクの操作性が向上します。こうした同時タスクの例としては、ウェブ ブラウザ アプリで複数のタブを開く、生産性向上アプリで複数のドキュメントを開く、ゲームで複数の試合を同時に実行する、メッセージ アプリで複数のチャットを実行する、などが考えられます。アプリのタスクは ActivityManager.AppTask クラスを使って管理できます。

論理的な分割によってアクティビティが新しいタスクとして扱われるようにするには、startActivity() を使ってアクティビティを起動するときに FLAG_ACTIVITY_NEW_DOCUMENT を使用します。または、マニフェストで<activity> 要素の documentLaunchMode 属性を "intoExisting" または "always" に設定しても、この動作を実現できます。

最近使ったアプリ画面が整理されるように、最近使ったアプリ画面に表示できるタスクの最大数をアプリから設定できます。そのためには、<application> 属性 android:maxRecents を設定します。現在指定できる最大タスク数は、ユーザーあたり 50 個(RAM が不足している端末の場合は 25 個)です。

最近使ったアプリ画面のタスクは、再起動後も保持されるように設定できます。この持続動作を制御するには android:persistableMode 属性を使用します。また、setTaskDescription() メソッドを呼び出すことによって、最近使ったアプリ画面のアクティビティの表示プロパティ(アクティビティの色、ラベル、アイコンなど)を変更することもできます。

WebView のアップデート

Android 5.0 では Chromium M37 に対する WebView の実装がアップデートされ、セキュリティと安定性が強化されているほか、バグが修正されています。Android 5.0 で実行される WebView のデフォルトのユーザー エージェント文字列がアップデートされ、バージョン番号として 37.0.0.0 が設定されています。

このリリースでは PermissionRequest クラスが導入されており、アプリで getUserMedia() などのウェブ API を使用して、カメラ、マイクなどの保護されたリソースにアクセスするためのパーミッションを WebView に付与できます。WebView にパーミッションを付与するには、これらのリソースに対する適切な Android パーミッションがアプリにある必要があります。

新しい onShowFileChooser() メソッドでは、WebView で入力フォーム フィールドを使用し、ファイル選択機能を起動して Android 端末から画像やファイルを選択できるようになりました。

さらに、このリリースでは、WebAudioWebGLWebRTC の各オープン規格もサポートされるようになります。このリリースに含まれている新機能については、Android の WebView をご覧ください。

画面のキャプチャと共有

Android 5.0 では、新しい android.media.projection API を使用して画面キャプチャ機能や画面共有機能をアプリに追加できます。この機能は、たとえば、ビデオ会議アプリで画面の共有を有効にしたい場合に便利です。

新しい createVirtualDisplay() メソッドを使用すると、アプリでメイン画面(デフォルトのディスプレイ)の内容をキャプチャして Surface オブジェクトに取り込み、アプリからネットワーク経由で送信できます。この API では、セキュリティで保護されていない画面コンテンツのキャプチャのみ可能であり、システム音声のキャプチャはできません。アプリで画面のキャプチャを開始するには、最初にcreateScreenCaptureIntent() メソッドを通じて取得した Intent を使用して画面キャプチャ ダイアログを起動することによって、ユーザーのパーミッションをリクエストする必要があります。

新しい API の使用例については、サンプル プロジェクトの MediaProjectionDemo クラスをご覧ください。

通知

ロック画面の通知

Android 5.0 のロック画面には、通知を表示する機能があります。ユーザーは [Settings] から、機密性のある通知内容をセキュリティで保護されたロック画面に表示できるようにするかどうかを選択できます。

アプリでは、セキュリティで保護されたロック画面にアプリの通知が表示されるときの詳細表示レベルを制御できます。可視性レベルを制御するには、setVisibility() を呼び出して次のいずれかの値を指定します。

可視性レベルが VISIBILITY_PRIVATE の場合は、詳細な個人情報が非表示になるよう編集されたバージョンの通知内容を表示することもできます。たとえば SMS アプリで、「新しいテキスト メッセージが 3 件あります」という通知は表示しますが、メッセージの内容や送信者を表示しないようにできます。こうした代わりの通知を表示するには、最初に Notification.Builder を使用して代わりの通知を作成します。プライベート通知オブジェクトを作成したら、その置換用の通知をプライベート通知オブジェクトに setPublicVersion() メソッドを使用してアタッチしてください。

通知メタデータ

Android 5.0 では、通知に関連付けられたメタデータを使用し、アプリの通知をより合理的な順に並べ替えます。メタデータを設定するには、通知の作成時に Notification.Builder で次のメソッドを呼び出します。

グラフィック

OpenGL ES 3.1 のサポート

Android 5.0 では、OpenGL ES 3.1 向けの Java インターフェースとネイティブ サポートが追加されています。OpenGL ES 3.1 では次の主要な新機能が提供されます。

Android での OpenGL ES 3.1 の Java インターフェースは GLES31 で提供されます。OpenGL ES 3.1 を使用する場合は、必ずマニフェスト ファイルで <uses-feature> タグと android:glEsVersion 属性を使用して宣言してください。次に例を示します。

<manifest>
    <uses-feature android:glEsVersion="0x00030001" />
    ...
</manifest>

OpenGL ES の使い方(端末でサポートされている OpenGL ES のバージョンを実行時にチェックする方法など)については、OpenGL ES API ガイドをご覧ください。

Android エクステンション パック

このリリースでは、OpenGL ES 3.1 に加えて、高度なグラフィック機能のための Java インターフェースとネイティブ サポートが含まれている拡張パックが提供されています。これらの拡張機能は Android によって 1 つのパッケージとして扱われます(ANDROID_extension_pack_es31a 拡張機能が存在する場合、アプリではパッケージ内のすべての拡張機能が存在すると見なし、1 つの #extension ステートメントを使用してシェーディング言語機能を有効にできます)。

拡張パックは以下をサポートします。

拡張パックの Java インターフェースは GLES31Ext で提供されます。アプリのマニフェストで、拡張パックをサポートしている端末にのみアプリをインストールする必要があることを宣言できます。次に例を示します。

<manifest>
    <uses-feature android:name=“android.hardware.opengles.aep”
        android:required="true" />
    ...
</manifest>

メディア

高度なカメラ機能のための Camera API

Android 5.0 では、写真の撮影や画像処理をきめ細かく行えるように、新しい android.hardware.camera2 API が導入されています。プログラムで getCameraIdList() を使用してシステムで利用可能なカメラデバイスにアクセスし、openCamera() を使用して特定のデバイスに接続できるようになりました。画像の撮影を開始するには、CameraCaptureSession を作成し、撮影した画像を送信するための Surface オブジェクトを指定します。CameraCaptureSession を設定して、1 枚だけ撮影するようにしたり、一度に複数の画像を撮影するようにしたりできます。

新しい画像が撮影されたときに通知を受けるには、CameraCaptureSession.CaptureCallback リスナーを実装して撮影リクエストに設定します。画像撮影リクエストが完了すると、CameraCaptureSession.CaptureCallback リスナーがonCaptureCompleted() への呼び出しを受信し、CaptureResult に画像撮影メタデータが設定されます。

CameraCharacteristics クラスを使用すると、端末で使用できるカメラ機能をアプリで検出できます。オブジェクトの INFO_SUPPORTED_HARDWARE_LEVEL プロパティは、カメラの機能レベルを表します。

アップデートされた Camera API の使い方については、このリリースの Camera2BasicCamera2Video の実装サンプルをご覧ください。

音声の再生

今回のリリースでは AudioTrack に次の変更が加えられています。

メディア再生の制御

新しい通知 API とメディア API を使用して、メディアの再生についての情報をシステム UI に知らせ、アルバムアートの抽出と表示ができるようにしてください。UI とサービスにまたがるメディアの再生の制御が、新しい MediaSession クラスと MediaController クラスを使用して、より簡単に行えるようになりました。

新しい MediaSession クラスは廃止された RemoteControlClient クラスの代わりとなるものであり、トランスポート コントロールとメディア ボタンを処理するための単一のコールバック メソッド セットを提供します。アプリでメディアの再生機能を提供して Android TV または Wear プラットフォームで実行する場合は、MediaSession クラスを使用し、同じコールバック メソッドを通じてトランスポート コントロールを処理してください。

新しい MediaController クラスを使用して独自のメディア コントローラ アプリを作成できるようになりました。このクラスは、アプリの UI プロセスからメディアの再生を監視して制御するためのスレッドセーフな方法を提供します。コントローラの作成時に MediaSession.Token オブジェクトを指定し、指定した MediaSession をアプリから操作できるようにします。MediaController.TransportControls メソッドを使用すると、そのセッションで play()stop()skipToNext()setRating() などのコマンドを送信してメディアの再生を制御できます。コントローラにより、MediaController.Callback オブジェクトを登録し、そのセッションでメタデータや状態の変更がないかをリッスンすることもできます。

さらに、新しい Notification.MediaStyle クラスを使用すると、メディア セッションと連携した再生制御を行える高機能な通知を作成できます。

メディアのブラウジング

Android 5.0 では、アプリで新しい android.media.browse API を使用して、別のアプリのメディア コンテンツ ライブラリを参照する機能が導入されています。アプリのメディア コンテンツを公開するには、MediaBrowserService クラスを拡張します。MediaBrowserService の実装でMediaSession.Token へのアクセスを提供することによって、アプリがそのサービスを通じて提供されるメディア コンテンツを再生できるようになります。

メディア ブラウザ サービスを操作するには、MediaBrowser クラスを使用します。MediaBrowser インスタンスの作成時に、MediaSession のコンポーネント名を指定します。その後、アプリからブラウザ インスタンスを使用して、関連付けられたサービスに接続し、MediaSession.Token オブジェクトを取得して、そのサービスを通じて公開されたコンテンツを再生できます。

ストレージ

ディレクトリの選択

Android 5.0 ではストレージ アクセス フレームワークが拡張され、ユーザーがディレクトリのサブツリー全体を選択し、それぞれのアイテムについてユーザーの確認を必要とせずに、含まれているすべてのドキュメントへの読み取り / 書き込みアクセス権をアプリに与えることができます。

ディレクトリのサブツリーを選択するには、OPEN_DOCUMENT_TREE インテントを作成して送信します。サブツリーの選択をサポートしているすべての DocumentsProvider インスタンスが表示され、ユーザーがディレクトリを参照して選択できるようになります。返される URI は、選択されたサブツリーへのアクセスを意味します。その後、buildDocumentUriUsingTree()buildChildDocumentsUriUsingTree()query() と一緒に使用してサブツリーを探索できます。

新しい createDocument() メソッドを使用すると、サブツリーの配下に新しいドキュメントやディレクトリを作成できます。既存のドキュメントを管理するには、renameDocument()deleteDocument() を使用します。これらの呼び出しを発行する前に、COLUMN_FLAGS をチェックして、プロバイダが呼び出しをサポートしていることを確認してください。

DocumentsProvider を実装しようとしていて、サブツリーの選択をサポートしたい場合は、isChildDocument() を実装し、FLAG_SUPPORTS_IS_CHILDCOLUMN_FLAGS に追加します。

また、Android 5.0 では、共有ストレージ上の新しいパッケージ固有のディレクトリが導入されており、MediaStore に含めるようにアプリからメディア ファイルを配置できます。新しい getExternalMediaDirs() は、すべての共有ストレージ デバイスにあるこれらのディレクトリへのパスを返します。getExternalFilesDir() と同様に、アプリに追加のパーミッションがなくても、返されるパスにアクセスできます。プラットフォームによって、これらのディレクトリにある新しいメディアが定期的にスキャンされますが、MediaScannerConnection を使用して新しいコンテンツを明示的にスキャンすることもできます。

ワイヤレスと接続

複数のネットワーク接続

Android 5.0 では新しいマルチネットワーキング API が導入されており、特定の機能を持つ使用可能なネットワークをアプリで動的にスキャンして、それらへの接続を確立できます。この機能は、アプリで SUPL、MMS、携帯通信会社の課金ネットワークなどの特殊なネットワークを必要とする場合や、特定のタイプのトランスポート プロトコルを使用してデータを送信したい場合に便利です。

アプリからネットワークを動的に選択して接続するには、次のステップに従います。

  1. ConnectivityManager を作成します。
  2. NetworkRequest.Builder クラスを使用して NetworkRequest オブジェクトを作成し、アプリで必要なネットワーク機能とトランスポート タイプを指定します。
  3. 適切なネットワークをスキャンするには、requestNetwork() または registerNetworkCallback() を呼び出し、NetworkRequest オブジェクトと ConnectivityManager.NetworkCallback の実装を渡します。検出された適切なネットワークに積極的に切り替えたい場合は、requestNetwork() メソッドを使用します。スキャンされたネットワークに積極的に切り替えずに通知のみを受け取る場合は、代わりにregisterNetworkCallback() メソッドを使用します。

適切なネットワークが検出されると、システムはそのネットワークに接続し、onAvailable() コールバックを呼び出します。このコールバックの Network オブジェクトを使用して、ネットワークに関する追加の情報を取得したり、選択されたネットワークを使用するようにトラフィックを設定したりできます。

Bluetooth Low Energy

Android 4.3 では、セントラル ロールとしての Bluetooth Low Energy(Bluetooth LE)のプラットフォーム サポートが導入されました。Android 5.0 では、Android 端末が Bluetooth LE の周辺デバイスとして機能できるようになりました。アプリでこの機能を使用すると、端末の存在を付近のデバイスに知らせることができます。たとえば、端末を歩数計や健康管理機器として機能させることができるアプリを作成して、それらのデータを他の Bluetooth LE 端末とやり取りすることができます。

新しい android.bluetooth.le API を使用すると、アドバタイズメントのブロードキャスト、応答のスキャン、付近の Bluetooth LE 対応デバイスとの接続の確立をアプリから行うことができます。新しいアドバタイジング機能やスキャン機能を使用するには、マニフェストに BLUETOOTH_ADMIN パーミッションを追加します。ユーザーが Play ストアでアプリをアップデートまたはダウンロードするときに、「Bluetooth 接続情報:Bluetooth の制御(付近の Bluetooth 端末へのブロードキャストや情報の取得など)をアプリに許可する」というパーミッションをアプリに付与するかどうかを尋ねられます。

他の端末がアプリを検出できるように Bluetooth LE によるアドバタイジングを開始するには、startAdvertising() を呼び出し、AdvertiseCallback クラスの実装を渡します。このコールバック オブジェクトは、アドバタイジング操作の成否のレポートを受け取ります。

Android 5.0 では、特定のタイプの必要なデバイスのみをアプリがスキャンできる ScanFilter クラスが導入されました。Bluetooth LE 端末のスキャンを開始するには、startScan() を呼び出して、フィルタのリストを渡します。このメソッド呼び出しでは、ScanCallback の実装を渡して、Bluetooth LE のアドバタイズメントが見つかったときにそれが報告されるようにする必要もあります。

NFC の機能強化

Android 5.0 では、NFC をより幅広く柔軟に利用できるように、次の機能強化が追加されています。

プロジェクト Volta

Android 5.0 では、新機能に加えて、バッテリーの持ちが良くなっています。新しい API やツールを使用して、アプリの消費電力に関する情報の取得や消費電力の最適化を行ってください。

ジョブのスケジューリング

Android 5.0 では新しい JobScheduler API が提供されており、システムが後で、または指定された条件下(端末の充電時など)で、非同期に実行するジョブを定義することによって、バッテリー寿命を延ばすことができます。ジョブ スケジューリングは次のような状況で役に立ちます。

作業単位は JobInfo オブジェクトによってカプセル化されます。このオブジェクトはスケジューリング条件を指定します。

スケジュールされたタスクを実行する方法を設定するには、JobInfo.Builder クラスを使用します。次のような特定の条件のときに実行されるようにタスクをスケジュールできます。

たとえば、次のようなコードを追加すると、タスクを従量制ではないネットワークで実行できます。

JobInfo uploadTask = new JobInfo.Builder(mJobId,
                                         mServiceComponent /* JobService component */)
        .setRequiredNetworkCapabilities(JobInfo.NetworkType.UNMETERED)
        .build();
JobScheduler jobScheduler =
        (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
jobScheduler.schedule(uploadTask);

端末の電力が安定している場合(つまり、端末が 2 分以上電源に接続されていて、バッテリーが正常レベルにある場合)は、ジョブが期限切れになっていなくても、実行する準備ができているスケジュールされたジョブがすべて実行されます。

JobScheduler API の使用例については、このリリースの JobSchedulerSample の実装サンプルをご覧ください。

バッテリーの使用状況のためのデベロッパー ツール

新しい dumpsys batterystats コマンドでは、端末でのバッテリーの使用状況に関する役立つ統計データが、一意のユーザー ID(UID)別に整理されて生成されます。次のような統計情報が生成されます。

出力内容を指定するための各種オプションの詳細を表示するには、--help オプションを使用します。たとえば、指定したアプリ パッケージについて、端末を最後に充電してから現在までのバッテリーの使用統計情報を出力するには、次のコマンドを実行します。

$ adb shell dumpsys batterystats --charged <package-name>

dumpsys コマンドの出力に対して Battery Historian ツールを使用すると、電源に関するイベントを表示する HTML をログから生成できます。この情報によって、バッテリーに関連した問題の把握や診断が容易になります。

職場や学校での Android

管理されたプロビジョニング

Android 5.0 では、社内環境でアプリを実行するための新機能が提供されています。端末の管理者は、ユーザーが既存の個人用アカウントを持っている場合に、管理されたプロビジョニングのプロセスを開始して、同時に存在する個別のマネージド プロファイルを端末に追加できます。マネージド プロファイルに関連付けられたアプリは、管理されていないアプリとともに、ユーザーのランチャー、最近使ったアプリ画面、通知に表示されます。

管理されたプロビジョニングのプロセスを開始するには、IntentACTION_PROVISION_MANAGED_PROFILE を送信します。呼び出しが成功すると、システムが onProfileProvisioningComplete() コールバックをトリガーします。その後、setProfileEnabled() を呼び出してこのマネージド プロファイルを有効にできます。

デフォルトでは、アプリの少数のサブセットのみがマネージド プロファイルで有効になります。マネージド プロファイルに追加のアプリをインストールするには、enableSystemApp() を呼び出します。

ランチャー アプリを開発している場合は、新しい LauncherApps クラスを使用すると、現在のユーザーの起動可能なアクティビティのリストと、関連するマネージド プロファイルを取得できます。ランチャーでドローアブルなアイコンにワーク バッジを付けると、マネージド アプリを視覚的に目立たせることができます。バッジ付きのアイコンを取得するには getUserBadgedIcon() を呼び出します。

新機能の使い方については、このリリースの BasicManagedProfile の実装サンプルをご覧ください。

デバイス オーナー

Android 5.0 では、デバイス オーナー アプリを配布する機能が導入されています。デバイス オーナーは特殊なタイプの端末管理者であり、セカンダリ ユーザーの作成と削除や、端末のグローバル設定を行う追加の機能があります。デバイス オーナー アプリでは DevicePolicyManager クラスのメソッドを使用して、管理対象の端末の設定、セキュリティ、アプリをきめ細かく制御できます。端末で一度にアクティブにできるデバイス オーナーは 1 つだけです。

デバイス オーナーを展開してアクティブにするには、端末がプロビジョニングされていない状態のときに、プログラミング アプリから端末に NFC データを転送する必要があります。このデータ転送では、管理されたプロビジョニングで説明しているプロビジョニング インテントと同じ情報が送信されます。

画面固定

Android 5.0 では、新しい画面固定 API が導入されており、ユーザーがタスクから離れることや通知による割り込みを一時的に制限できます。これは、たとえば、Android で重要度の高い評価要件に対応した教育用アプリや、単一用途のアプリ、またはキオスク アプリを開発している場合に使用できます。アプリで画面固定を有効にすると、そのモードを終了するまで、ユーザーは通知を表示することも、他のアプリにアクセスすることも、ホーム スクリーンに戻ることもできなくなります。

画面固定を有効するには、次の 2 つの方法があります。

タスク固定をアクティブにすると、次のような動作になります。

印刷フレームワーク

PDF をビットマップとしてレンダリング

新しい PdfRenderer クラスを使用して、PDF ドキュメントのページを印刷用のビットマップ画像にレンダリングできるようになりました。印刷可能なコンテンツが書き込まれるシーク可能な(つまり、コンテンツにランダム アクセスできる)ParcelFileDescriptor を指定する必要があります。アプリでは、openPage() を使用してレンダリング用のページを取得してから render() を呼び出し、開いている PdfRenderer.Page をビットマップに変換できます。ドキュメントの一部分のみをビットマップ画像に変換する場合(たとえば、ドキュメントを拡大するためにタイル レンダリングを実装する場合)は、追加のパラメータを設定することもできます。

新しい API の使用例については、PdfRendererBasic のサンプルをご覧ください。

システム

アプリの使用統計情報

新しい android.app.usage API を使用して Android 端末のアプリ使用状況履歴にアクセスできるようになりました。この API では、廃止された getRecentTasks() メソッドよりも詳細な使用状況情報が提供されます。この API を使用するには、最初にマニフェストで "android.permission.PACKAGE_USAGE_STATS" パーミッションを宣言する必要があります。また、ユーザーは [Settings] > [Security] > [Apps] からこのアプリの使用状況へのアクセス権を有効にする必要があります。

使用状況データはアプリ単位で収集され、日次、週次、月次、年次の各期間でデータが集計されます。このデータの最長保持期間は次のとおりです。

各アプリについて次のデータが記録されます。

テストとアクセシビリティ

テストとアクセシビリティの改善

Android 5.0 では、テストとアクセシビリティに関する次のサポートが追加されています。

IME

入力言語のより簡単な切り替え

Android 5.0 以降では、ユーザーはプラットフォームでサポートされているすべての入力方式エディタ(IME)をより簡単に切り替えられるようになりました。指定された切り替えアクション(通常はソフト キーボードの地球アイコンのタップ)を行うと、それらのすべての IME が循環して切り替わります。この動作変更は shouldOfferSwitchingToNextInputMethod() メソッドによって実装されています。

また、次の IME に切り替えメカニズムが組み込まれているかどうか(およびその IME が次に続く IME への切り替えをサポートしているかどうか)をフレームワークがチェックするようになりました。切り替えメカニズムのある IME から切り替えメカニズムのない IME への循環切り替えは行われません。この動作変更は switchToNextInputMethod() メソッドによって実装されています。

アップデートされた IME 切り替え API の使用例については、このリリースのアップデートされたソフト キーボードの実装サンプルをご覧ください。IME の切り替えを実装する方法については、入力方法の作成をご覧ください。

マニフェストの宣言

宣言可能な必須機能

次の値が <uses-feature> 要素でサポートされるようになり、アプリで必要な機能を有する端末にのみアプリがインストールされるようにできます。

ユーザー パーミッション

次のパーミッションが<uses-permission> 要素でサポートされ、アプリで特定の API にアクセスするために必要なパーミッションを宣言できるようになりました。

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)