GoogleはNexusデバイスにAndroid 6.0(コードネームMarshmallow)の配布を開始したと発表した。Marshmallowがいつ他のデバイスで利用できるかは、まだはっきりしていない。
Marshmallow SDKは開発者に次のような新機能をもたらす。
- 実行時パーミッションの拡張: ユーザはアプリのパーミッションを実行時に管理できるようになる。これまでのAndroidでは、アプリのインストール時に、ユーザからパーミッションを得ていた。Android 6.0では、新しい
requestPermissions()
メソッドを呼び出すことで、開発者は実行時にパーミッションを要求して確認することになる。また、アプリがすでにパーミッションを得ているかチェックするには、新しいcheckSelfPermission()
メソッドを使う。 - Dozeとアプリスタンバイ: これはバッテリー消費を改善するためのものだ。Dozeは新しいモードで、デバイスが電源から外され動いていない時に入る。Dozeモード中、デバイスは定期的に起き上がって、ペンディングした処理を実行する。また、一定期間アクティブに使われていないアプリはスタンバイモードに入る。これによりシステムはネットワークアクセスなどの処理を無効にする。どちらのモードも開発者がアプリを対応させて、正常に動作するか確かめる必要がある。
- BoringSSL: OpenSSLを置き換える。
開発者に影響を与える変更には、他にもApache HTTP Clientの削除(HttpURLConnectionに置き換え)、デバイスのローカルハードウェア識別子へのプログラムからのアクセスの削除などがある。変更について、詳しくは上記ドキュメントを読んでほしい。
Marshmallowの配布は、Googleのフラグシップデバイスに対して即時開始される。これには、Nexus 5、Nexus 6、Nexus 7 (2013)、Nexus 9、Nexus Player、Android Oneが含まれる。Ars Technica氏によると、最終的にいつ他のデバイスで利用できるかは、まだはっきりしておらず、メーカーによって変わるかもしれない。開発者はGoogle公式イメージからMarshmallowをインストールできるが、おそらく新しいパーミッションシステムによりアプリがクラッシュするため、事実上データの完全な削除が必要になると報告されている。