Android 4.1 (JellyBean) の新機能・改善点(前編)

Google I/O 2012でAndroid 4.1(通称:JellyBean)が公開されましたので、Android 4.1で導入された新しい機能や改善された点をご紹介します。
尚、本エントリは下記のサイトを参考にしました。

より速く、よりスムーズに、さらに反応良く

  • Android 描画タイミング、タッチレイテンシの最適化
  • グラフィックパイプライン中にトリプルバッファリング追加
  • パフォーマンス検証ツール systrace の追加(Tools R20以上で使用可能)

アクセシビリティの拡張

国際ユーザのサポート


双方向テキストと他言語サポート
  • TextViewとEditTextで双方向テキスト("左から右に表示"または"右から左に表示")をサポート
  • アラビア文字ヘブライ文字とフォントが使用可能に
  • その他、新しい言語サポートに含まれる物
    • インド語を追加:カナラ文字、テルグ文字、マラヤーラム文字
    • ユニコード6.0の絵文字
    • 日本人向けの表記のサポート
    • TextViewのアラビア文字に加えて、WebView向けに表記を最適化
    • WebViewの縦書き、ルビのサポート
    • 全てのフォントで合成強調文字が使用可能
ユーザがインストール可能なキーマップ
  • 海外向けキーボードや特別なレイアウトのキーボードマップをユーザがインストールできるようになった
  • ユーザはショートカット(CTRL+Space)を使用してキーボードをスイッチすることが可能
  • デベロッパーは追加のキーマップアプリを公開することが可能。APKはキーボードのレイアウトリソースを含む。
  • 追加キーボードを提供するために最適なブロードキャストレシーバとして、マニフェストにACTION_QUERY_KEYBOARD_LAYOUTSを定義することができる。

美しいUIを作る新しい方法


Notificationの拡張
  • Notificationフレームワークをメジャーアップデート
  • Notification中に写真などの新しいコンテンツが格納可能に
  • Notificationをピンチで拡張したり、収納したりすることが可能
  • これまでより大きなエリア、高さ最大256dpの通知が作成可能
  • Notificationのテンプレートスタイルは下記の3種類
    • BigTextStyle、BigInboxStyle、BigPictureStyle
  • リモートビューを使った独自のNotificationも作成可能
  • Notificationの長押しによって、追加の情報提供が可能
リサイズ可能な app ウィジェット
  • Android 4.1 からapp ウィジェットがホームの空き領域に従って、自動的にリサイズ可能になった
  • app ウィジェットの大きさによって、必要に応じてウィジェットを再読込することができる。例えば、ディスプレイが大きくなった場合にリッチなグラフィックや追加の機能やオプションが提供できるようになった。
  • デベロッパーは最大と最小サイズやその他オプションを制御することができる
  • ウィジェットランドスケープとポートレイトレイアウトに分離して提供することが可能で、画面の向きが変わるとそれらを適用することができる。
  • サードパーティーのランチャーや他のアプリから、インテント(AppWidgetManager.ACTION_APPWIDGET_BIND)によってappウィジェットを表示させることが可能になった
シンプルになったタスク操作
  • Android 4.1 で "Up" ナビゲーションがアプリから簡単に管理できるようになった
  • Upナビゲーションを定義するためには、マニフェストファイルに新しいXMLの属性を追加すれば、自動的にアクションバーにUpナビゲーションが追加される
  • デベロッパーは最早コールバックによるナビゲーションを管理する必要がなくなった
  • PendingIntentから起動されたアクティビティを使う時や素早く合成タスクスタックを用意したいときに、TaskStackBuilderを使うことができる。例えば、合成タスクスタックを作るとホームスクリーンウィジェットやnotificationのようなリモートビューからアクティビティを起動したい場合に便利である。開発者がバックナビゲーションを提供することができるからである。
アクティビティの起動のための簡単なアニメーション
  • ActivityOptionsという新しいヘルパークラスを使うと、アクティビティの起動時に表示されるアニメーションを生成・制御することが可能
  • ヘルパークラスを通じて、アクティビティ起動時のカスタムアニメーションリソースを特定したり、新しいズームアニメーションを要求することが可能
ライトアウトモードとフルスクリーンモードへの遷移
  • 新しいシステムUIフラグは、通常のアプリケーションUI(アクションバー、ナビゲーションバー、システムバーが表示されている)から、ライトアウトモード(ステータスバーとアクションバーが隠れ、ナビゲーションバーが暗くなる)かフルスクリーンモード(全てのバーが隠れる)に遷移します。
remotable Viewの新しいタイプ
  • ホームスクリーンウィジェットとnotificationでGridLayoutとViewStubが使用可能に
Live wallpaper プレビュー
  • アプリに含まれているLive Wallpaperを簡単に見つけ、インストールすることができるようになった
  • 作ったアプリにLiveWallpaperが含まれている場合に、ACTION_CHANGE_LIVE_WALLPAPERでActivityを起動し、アプリ中のLiveWallpaperをプレビューすることが可能
  • プレビューあらユーザはLive Wallpaperを直接ロードすることが可能
高解像度のコンタクト写真
  • コンタクト写真に 720 x 720 のような大きなサイズが使用可能に
  • 写真の最大サイズは端末によって決まるため、写真の最大サイズの取得はビルトインのcontacts providerを使用すべき

(後編へ続きます)

文責:カスタマー開発部 品川開発課 瀬戸 直喜