Android 4.3来たにゃー 気になる点メモと他雑感

2013年7月25日木曜日

Android 4.3がついに。 http://developer.android.com/about/versions/android-4.3.html

事前情報からあまり外れないけど、やっぱり気になるところはある。


  • restricted profile environmentというのが増えてて、例えば標準ブラウザにすらアクセス出来ないモードとかも出来るようになった(多分iOS 6でのguided accessと同じで、店頭端末用とか企業利用向け及びペアレンタルコントロール用だよね)
  • HTTP経由のメディアストリーミングで、データの暗号化を行いやすいようになった(4.3主流になる頃≒2年後?には使えるかな)
  • DRMのための仕組みが、10バージョンぶりぐらいに強化された。 http://developer.android.com/reference/android/media/MediaDrm.html (同上)
  • OpenGL ESのサーフェスを動画へエンコード出来る機能をサポート(検証系に嬉しい感じする)
  • OpenGL ESで、テクスチャ圧縮を結構まともにサポート。これはGoogle Playでの配布時にMultiple-APKsの条件へ指定出来るので「端末ごとに割と最適なフォーマットで、配布時に重複の無駄なく」ということを実現しやすい。関連はここ http://developer.android.com/guide/topics/graphics/opengl.html#textures
  • 普通のBitmapに、mipmappingが適用出来るようになった。CPU遅めな端末で嬉しいケースあるかもだけど、動的なスケーリングを行うケースってそんなにあるのかな? res/以下のプロファイル切り分けを直接代替するものではないので利用には注意が必要そう
  • 画面回転時のエフェクトが指定出来るようになった(iOSへ少々追いついた感じある)
  • UI操作の自動テストを支援するAPIが追加された。backとかhomeキーのマッピングもあったりと、これは大量の画面がある場合の遷移チェックなど、開発に役立つ感じする http://developer.android.com/reference/android/app/UiAutomation.html
  • アプリ側からsystraceの有効/無効を指定出来るようになった。printfデバッグ仕込むノリでsystrace切り替えられるのは、パフォーマンスしっかり見つつアプリ改善する上で嬉しい
  • "Android Key Store"という、アプリごとに個別の秘密鍵ストアを持てるようになった。これ応用してiOS的なキーチェーン実現出来るのかな?アプリのアンインストール&再インストール時のデータ揮発性など要調査
  • ハードウェアでの秘密鍵生成器/保持器サポート。これは未来が来てる感じ。OS自体の対応はスタート地点でデバイス側対応が重要になるけど、諸々のセキュアエレメントを秘密鍵ストアとして駆動出来るようになるとDRM捗る


----

変更を分類して所感とともにもうちょいメモ。

  • 今日から開発に嬉しい系
    • UI操作の自動テスト(エミュレータ組み合わせてCIが非常に捗る)
    • systraceのアプリ側からのon/off
    • OpenGL ESのサーフェスをがっつり動画に記録して端末動作検証など(これ自体のパフォーマンスインパクトがそれなりにありそうなので、開発用のハイエンド機以外では逆に厳しい感じもする)
  • 新しい仕組みでデモ作ったりすると未来見えて嬉しい系
    • ハイエンド端末でのOpenGL ES 3.0デモ。Galaxy S4とかで扱うと「えっ、モバイルでここまで出来んのSUGEEE!」な感じ出せてよさげ。S4のbig.LITTLE対応Google版はよ(※big.LITTLEは浪漫)
    • Bitmapをうまく使ったデモとか、案外映えるのかもしれない。mipmappingが有効な 奥行きのあるものを、ということになるけど結構鬼門な気がするなー
    • セキュリティ系の技術デモとしては、USBでつないだRSAドングルあたりをLinuxのドライバきちんとつなぎこんでAndroid(AOSP)に手を加えて認識させ、かなり安全な鍵管理を実現(ただし端末盗難に弱いというオチ付きで)という感じのネタやりやすいかも
  • すぐに反映出来て、対応端末ではちょっと未来嬉しい系
    • 画面回転時のエフェクトとか、ゲームではちゃんとしていたほうが嬉しい場面あるので、少数ユーザでも4.3な人々がヾ(*´∀`*)ノキャッキャ出来るものを早めに出せると良いのかも
    • 圧縮テクスチャの強化もこのへん。x86なAndroidが多少なりとも伸びてくるであろうことを考えると、結局Multiple-APKsを使いこなしていかないと配布サイズ的に厳しい局面増えてくる。早めに実戦投入しておくと、シェア伸びてきた際に慌てなくて済むという意味でも早期に開発成果物としてのapk群をほどよく生成出来るパイプラインを作り込むのは大事な感じ
  • 2年後ぐらい、バージョンシェアが十分に伸びてくると新サービスへ積極的に使えて嬉しい系
    • メディアストリーミングにおける暗号化サポート
    • DRMのフレームワーク強化(DRM対象にしたいメディアって、やはり対象のユーザベースが広くないとどうにも話にならないケースが多い。面展開のメリットが出てくるまでは準備期間と位置づける)


一番お金になりそうなエリアは、一番バージョンシェアが必要というね。そらそうですね。「過去18ヶ月以内に発売された端末については、端末メーカーをGoogleが資金面でも技術面でも徹底サポートして、むこう6ヶ月以内に4.3対応アップデートを配信する」ぐらいの男気対応があれば、きっと移行は否応なしに進むんですけどね。あっ、アップデート保証プログラム…(察し)。厳しいですね。こういうエリアはGoogle Play Servicesでカバーする流れになっているので、コンテンツ保護系はPlay側の強化と共に歩んでいくことになるんでしょう多分。

蛇足ですが全体的にメディアフォーマットとしてMP4を標準と扱ってる節があって、WebMどこ行ったの感がしてますが まあChromeからもサポート外すと言いつつずっと乗ってますし今のところこんなもんでしょう。デファクト兼デジュールスタンダード強し。

超主観まとめですが、間違いなどあれば指摘頂けると幸いです。