細か過ぎて伝わってないけど開発者が知っておきたいAndroid Mの新機能まとめ:Androidで動く携帯Javaアプリ作成入門(58)(3/6 ページ)
Google I/O 2015で発表された次期版Android M。Google Now on tapで使うアシストAPIや、App Links、App Permissions、省電力のDoze/App Stanby、決済機能Android Payなどで使う指紋認証機能など新機能を分類して紹介。
決済機能Android Payなどで使う指紋認証機能
Android Mでは、指紋認証がサポートされているデバイスを使うことで、スキャンした自分の指紋を使用してユーザー認証を行えます。決済機能「Android Pay」でも使われるようです。
新しいAPIでは、例えば「ユーザーがロック画面の解除を使用して認証されたか」などをチェックする機能などが提供されます。この機能はAndroidキーストアシステムと深く関連しています。
Androidキーストアの変更
AndroidのキーストアシステムはDSA(Degital Signature Algorithm)をサポートしなくなりました。ECDSA(Elliptic Curve Digital Signature Algorithm)は引き続きサポートされます。
安静時(保存されている間)の暗号化を必要としないキーは、安全なロック画面が無効になっている場合、ユーザーやデバイス管理者によって削除、リセットされます。安静時の暗号化を必要とするキーはこれらのイベント時に削除されます。
指紋認証
指紋でユーザー認証を行うには、android.hardware.fingerprint.FingerprintManagerのFingerprintManager.authenticate()で新しいインスタンスを取得します。もちろん、アプリは指紋センサーに対応したデバイスで動作している必要があります。
開発者はアプリに指紋認証フローのためのUIを実装し、そのUIではAndroid標準の指紋アイコンを使用する必要があります。指紋アイコン(c_fp_40px.png)はサンプルアプリに含まれています。指紋認証を使用する複数のアプリを開発する場合、各アプリは独立してユーザーの指紋認証を行わなければならないことに注意してください。
アプリで指紋認証を使用するには、マニフェストにUSE_FINGERPRINTを追加します。
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
指紋認証の実装は「Fingerprint Dialogサンプルアプリ」を参照してください。
もし指紋認証を試したい場合、以下のステップに従ってください。
- Android SDK Tools 24.3をインストール
- エミュレーターで[設定]→[セキュリティ]→[指紋認証]から新しい指紋認証を登録
- エミュレーター上で以下のコマンドを実行し、タッチイベントをエミュレートする。これはロック画面または開発中のアプリ上で行う
adb -e emu finger touch {finger_id}
Windowsの場合、「telnet 127.0.0.1 {emulator-id}」コマンドと、それに続いて「finger touch {finger_id}」コマンドを実行する必要があります。
資格の確認
アプリは、ユーザーが行った直近のロック解除に基づいてユーザー認証を行えます。この機能は、ユーザーをアプリ固有のパスワードを記憶することから解放し、アプリに独自の認証UIを実装する必要性を回避できます。アプリはユーザー認証のための公開鍵または秘密鍵と一緒にこの機能を使用する必要があります。
KeyGeneratorまたはKeyPairGeneratorをセットアップする際、ユーザーが正常に認証された後に同一のキーを再利用できるためのタイムアウト時間を設定するには、新しいandroid.security.keystore.KeyGenParameterSpec.setUserAuthenticationValidityDurationSeconds()を呼び出します。
過度な再認証ダイアログ表示は推奨されていません。アプリは暗号オブジェクトを使用する際、タイムアウトしていた場合にだけ、アプリ内でユーザーを再認証するcreateConfirmDeviceCredentialIntent()を使用するようにしてください。
この機能のアプリ実装を確認するには、「Confirm Credentialサンプルアプリ」を参照してください。
APK妥当性検証の厳密化
Android Mではより厳密なAPKの妥当性検証を行うようになりました。マニフェストにファイルエントリが存在し、APK内に存在しない場合、APKが破損しているとみなされます。APK内のいずれかのファイルが削除された場合、再署名が必要になります。
アプリの自動バックアップ
Androidでは、アプリのために自動的に全データのバックアップと復元を実行します。この動作はAndroid M対応アプリではデフォルトで有効になっており、開発者が任意のコードを追加する必要はありません。
ユーザーが自分のGoogleアカウントを削除した場合、バックアップデータも削除されます。この機能がどのように動作し、どのようにファイルシステム上にバックアップするかを設定する方法に関しては「Auto Backup for Apps」を参照してください。
外部ストレージに関する変更点
Android Mでは、ユーザーはSDカードなどの外部ストレージを利用できます。外部ストレージを利用する際、暗号化して内部ストレージと同様に動作するように記憶メディアをフォーマットします。この機能によりユーザーは、アプリのプライベートデータとアプリ自体を、内部ストレージと外部ストレージ間で移動できます。移動の際には、システムはアプリのマニフェストに記載されたandroid:installLocationを尊重します。
アプリが内部ストレージと外部ストレージで移動された場合、以下のAPIが返す値は動的に変化することに注意する必要があります。ファイルパスを生成する場合、常にAPIを呼び出し、動的に生成することが推奨されます。ハードコードされたファイルパスや、以前用いたファイルパスのキャッシュを保持しないようにしましょう。
- Contextメソッド:
- getFilesDir()
- getCacheDir()
- getCodeCacheDir()
- getDatabasePath()
- getDir()
- getNoBackupFilesDir()
- getFileStreamPath()
- getPackageCodePath()
- getPackageResourcePath()
- ApplicationInfoフィールド:
- dataDir
- sourceDir
- nativeLibraryDir
- publicSourceDir
- splitSourceDirs
- splitPublicSourceDirs
Android Mでこの機能をデバッグしたい場合は、On-The-Go(OTG)USBケーブル経由でAndroidデバイスにUSBドライブを接続し、以下のコマンドを実行することで可能です。
$ adb shell sm set-force-adoptable true
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 変わらないと生き残れないAndroid Lの新機能まとめ
新しいUIテーマ「Material Design」や、新しいランタイム「ART」、生まれ変わったNotification、Android TVアプリ、グラフィックス、マルチメディア、ストレージ、ネットワーク周りなどの新機能をテーマ別に紹介します。 - Android L、Android Wear、Android TV、Android Autoの開発者向け現状まとめ
米グーグルが「Google I/O 2014」で発表した次期Android「Android L」「Android TV」「Android Auto」の開発者プレビュー、そして「Android Wear」の正式版。これらに対応したアプリを開発するには、どこを見ればいいのか。概要とともに簡単にまとめてみた。 - あなたの知らないAndroid SDKの便利tools、14選まとめ
SDKに含まれている便利なツールを、デバッガー/プロファイラー、コード解析/難読化、画像ファイル最適化、アプリ外部のデータリソース操作の4種類に分けて紹介。 - 低性能端末でも使えるか? Android 4.4 KitKatの新機能39選
消費電力の削減につながる新機能や、よりシンプルになったUI、印刷やストレージアクセス、SMSなどの新機能をテーマ別に紹介します。 - 新タブレット時代を見据えるAndroid 4.2の新機能9選
タブレットでのマルチユーザー機能、360度パノラマ撮影機能「Photo Sphere」、Gesture Typing、ワイヤレス通信で大スクリーンへ投影する「MiraCast」対応、Quick Settings、「Google Now」の機能強化、ウィジェットのロック画面対応など厳選して紹介 - 知らないと残念過ぎるAndroid 4.1の新機能36選
Google NowやCloud Messaging、Knowledge Graph、Project Butter、Google Playなどの新機能をテーマ別に紹介 - 開発者が知らないと損するAndroid 4.0の新機能44選
AndroidビームやWi-Fiダイレクト、ライブエフェクト、顔認識、スクリーンリーダ、ソーシャル系などの新機能をテーマ別に紹介