2013年8月1日木曜日

Android 4.3 と 開発者ツールのアップデート

 Android Jelly-Beanが4.3へアップデートされてました。
新しいNexus7に搭載積まれるらしいですが、既存Nexus (4/7/10)とGalaxy Nexus HSPA+にも既にアップデート展開されているようです。

 アナウンスでは、新しいAndroid 4.3 (コードネームはJelly-Beanのまま)と、開発者ツールであるAndroid NDK (R9)、旧バージョンのAndroid OS搭載端末へ新しいバージョンの機能をサポートするためのAndroid Support Library (R18)もリリースされました。(気が付けばAndroid SDK Managerにアップデートが通知されてました。)

 NDK(R9)には、Android 4.3で追加されたOpenGL ES 3.0 API と Android 4.3 API へのネイティブアクセスがサポートされたようです。
また、気になるSupport Library (R18)ではついにAction Bar APIがサポートされました。これでAndroid 2.1端末においてもAction Barが使えるようになりますか。え?もうAction Bar Sherlockで実装してるから要らない?

 その他トピックとしては、RTL言語のテキスト処理をサポートするBidiFormatterユーティリティの追加ViewPager初期レイアウト処理時処理変更、同じくViewPagerが誤ってTYPE_VIEW_SCROLLEDイベントを取りこむ問題の修正DrawerLayoutとSlidingPaneLayoutにてプロジェクトコードが編集されている間、例外を投げないよう修正ExploreByTouchHelperの追加Google Cast 開発者向けプレビューのサポートをする新しいV7 mediarouter Libraryの追加RenderScriptのAndroid 2.2サポート...etc まぁ色々機能修正・強化されましたと。サポートライブラリがあると、どうしても下位互換を考えなければならなくなるのである程度切ってくれてもいいんですがね。
肝心のAndroid 4.3は何が新しくなったかというと、大きくは以下の点が新しくなったとのこと。

  • OpenGL ES 3.0のサポート
    より綺麗な2D&3Dグラフィックスを使ったゲームを作れるようになりましたと。
    GLSL ESシェーディング言語の新バージョン、高品質ETC2/EACテクスチャ圧縮...etc。NDK(R9)から利用できます。 端末のグラフィックスハードウェアに依存するので注意が必要との事です。使う予定はありませんが。

  • Bluetooth SMART のサポート
    低消費電力通信規格「Bluetooth Low Energy」に対応。
    最新のAndroid (4.3のこと) を実行しているBluetooth Smart Ready対応端末では、事実上全てのBluetooth対応製品と互換性があるってことになるらしい。前から持ってたキーボードやヘッドフォンから、Pebbleなどのスマートウォッチまで対応できると。
    bluetooth.comにも記事が掲載されています。
    Blutooth SmartのネイティブサポートがAndroid 4.3に組み込まれているから 開発者はリソースと開発時間を節約するために単一のAndroid Bluetooth APIを利用できる。

  • 制限付きプロファイルのサポート
    タブレット用のマルチユーザー機能にさらに、制限付きプロフィールがサポートされました。
    所有者(管理者?)が、ユーザーに対してきめ細かい制限をかけることができるようになりました。 例えばアプリの課金機能は子どもに使わせない...とか。
    もちろんアカウントの権限管理は法人顧客相手にも有用な機能なので、今後は権限を意識したアプリ開発も必要になるということですね。

  • 最適化された位置情報とセンサー
    Google PlayサービスのロケーションAPIを最適化し、バッテリー使用量を最小限にしました。
    • ハードウェアジオフェンシング
      デバイスのハードウェアで位置測定を行います。ソフトウェアでの位置計測に比べて電力効率が良くなります。 デバイスが移動中の場合などに、Google PlayサービスのロケーションAPIはこの最適化を活用して バッテリー消費を抑えます。(要対応ハードウェア)
    • Wi-Fiスキャン専用モード
      バッテリー節約と位置精度向上のために、Wi-Fiネットワークに接続せずにスキャン状態を保つことができます。 位置情報サービスのためにWi-Fiに依存するアプリはユーザーにこの設定を有効にするよう依頼することができます。 このWi-Fiスキャン専用モードはハードウェア依存しないAndroid 4.3プラットフォームの機能です。

  • 新しいメディア機能
    • Modular DRM Framework
      Modular DRM Frameworkの追加により、簡単に独自ストリーミングプロトコルをMPEG-DASHに統合することができる。
    • VP8 Encoder
      内臓されているVP8エンコードフレームワークへネイティブAPIからアクセスできるようになりました。
    • サーフェスからのビデオエンコーディング
      OpenGL ES surfaceからのストリームをバッファコピーすることなく直接エンコーダーに送れる。
    • メディアマルチプレクサ
      Mpeg4-Audio StreamとVideo Streamを1つのMpeg4に結合する新しいメディアマルチプレクサのAPIが使用できる。
    • リモートコントロールクライアント
      Android 4.0以降メディアプレイヤーと同等のアプリケーションは、 デバイスロックスクリーン、ノティフィケーションおよびBluetooth機器から リモートコントロールクライアントを通じて再生コントロールができましたが、 これからはリモートコントロールクライアントを通して、再生中のプログレス表示と特定の再生位置に ジャンプするコマンドを受け取る事ができるようになりました。

  • 美しいアプリケーションを構築する為の新しい方法
    • Notificationへのアクセス
      新しいAPIを使ってアプリがユーザーパーミッションを得てnotificationのストリームを観察し、 Bluetooth機器にnotificationを表示するなど、ユーザーが望む任意の方法でnotificationを通知することができます。 また、ユーザーはアプリがnotificationへのアクセスの有効・無効を任意に切り返ることができます。
    • オーバーレイの表示
      基礎レイアウト構成を乱すことなく透明なオーバーレイをトップビューおよび ビューグループの上に一時的に作成することができます。 もういちいち透過Activityで表示しなくてもいいってことですかね。
    • Optical boundsレイアウトモード
      新しいレイアウトモードです。
    • カスタム回転アニメーションタイプ
      デバイスを回転させたときのウィンドウのアニメーション種類を定義できます。 jump-cut、cross-fade、または標準のウィンドウ回転のいずれかをウィンドウプロパティに設定できます。 ウィンドウはフルスクリーンで、他のウィンドウに覆われていない場合に指定されたアニメーションを使用します。
    • スクリーンオリエンテーションモード
      端末が回転している場合にアプリが適切な向きで表示されているか確認するためのに Activityに新しいOrientationモードを設定できます。他にも、アプリは現在の向きに画面をロックするための 新しいモードも使用することができます。これは、ビデオを撮影しながら回転を無効にしたいカメラを使 用したアプリケーションの場合に便利です。
    • クイックレスポンスを処理するインテント
      任意のアプリでクイックレスポンスを処理できる新しいPublic Intentが導入されました。
      クイックレスポンスとは、電話に出たり、端末のロック解除をしなくてもテキストメッセージで応答できる機能です。 このメッセージングを任意のアプリで行うことができるようになりました。 アプリは、Intentを監視し、メッセージングシステムを介して発信者へメッセージを送る事ができます。

  • インターナショナルユーザーのサポート
    RTL言語に関する機能が改善され、サポート範囲が広がったと。詳細は省略。
    Support LibraryにもRTL言語のサポートが入ってたのでより国際言語対応しますという流れなのでしょうか。 開発者向けオプションの疑似ロケール機能を使って、簡単に違う地域のロケール・言語をエミュレートできるので ローカライゼ―ションテストに役立ちます。

  • アクセシビリティ と UIオートメーション(自動化)
    Android 4.3以降、キーボードショートカット、ジェスチャー入力によるナビゲーションなどの重要な イベントをアクセシビリティサービスで監視し、フィルタリングすることができます。 サービスでは、システムまたは他のアプリへイベントが通知される前に必要に応じて処理を行うことができます。 Android 4.3のAccessibilityフレームワークに構築された新しいUI自動化フレームワークは、 ユーザーの操作をシミュレートし、画面内容のプロパティを取得することによってデバイスのUIとやり取りを行うことができます。 UI自動化フレームワークを使用すると、基本的な操作、画面の回転、入力イベントの生成、スクリーンショットの取得など 多くの操作を行うことができます。 これは、複数のアプリケーションにまたがるアクションまたは処理手順を含む 実際のユーザーシナリオを想定したテストを自動化するためのパワフルな方法です。

  • エンタープライズとセキュリティ
    • WPA2-エンタープライズネットワーク向けのWi-Fi設定
      WPA2エンタープライズアクセスポイントへ接続するために必要なWi-Fiの資格情報を設定することができるようになりました。
      開発者は、企業内で使用される認証方式のための拡張認証プロトコル(EAP)とカプセル化されたEAP(Phase2)認証情報を設定する ための新しいAPIを使用することができます。 Wi-Fiへのアクセスと設定を変更するパーミッションを持つアプリは、 EAP(Phase2含む)認証方式の様々な認証資格情報を設定することができます。
    • SELinuxでAndroid sandboxの強化
      UIDベースのアプリケーションサンドボックスを強化するためにSELinuxの Linuxカーネルの強制アクセス制御 (MAC:Mandatory access control)システムを使っています。 これは、潜在的なセキュリティの虚弱性に対してOSを保護します。

  • キーチェーンの機能強化
    ルート証明書の管理を行う KeyChain APIが機能強化されました。

  • Android Keystore Provider
    APIを使用して、アプリがユーザーとの対話なしに他アプリや他ユーザーから使用されないキーを作成、 保存しキーストアに追加することができます。キーストアは端末外へのエクスポートはできません。

  • アプリからのsetuidを制限
    /systemパーティションはzygote -spawned processesによりnosuidにマウントされており、 アプリからのsetuidコマンドの実行を防ぎます。 これは、潜在的なセキュリティの虚弱性によるrootへの攻撃を減らします。

  • 新しいパフォーマンス解析ツール
    • Systraceの機能強化
      アプリのパフォーマンスを解析するために、より多くの情報を収集することができるようになりました。 ガベージコレクション、リソースの読込やその他ハードウェア、カーネル、Dalvik VMからのトレースデータを収集できます。
    • GPUプロファイルの画面表示
      開発者向けオプションから設定を変更することにより、GPUのプロファイルを画面に表示できます。

  • StrictMode warning for file URIs
    アプリ間で ”file://”プロトコルを使ってファイルを共有させようとした場合、 適切な権限がないと警告されるようにポリシー制約が変わったようです。
    アプリ内で"file://"って使うの普通?
 記事が長くなってしまいましたが、機能強化、セキュリティアップデート、利便性向上…と純粋なアップデートだったと思います。
画面の2D&3D描写の改善や、タッチ時の処理速度低下の低減など、ユーザーが直に触れる部分も改善されているようなので今後のAndroidに益々期待です。

尚、記事内で内容に間違いがあった場合はご指摘頂けると大変助かります。
誤字脱字の指摘も大歓迎です。

0 件のコメント:

コメントを投稿