Android4.3で何が新しくなったか

2013/7/26 37279hit

Android4.3の新機能を訳してみました。
ニュースサイトなどでは紹介されていない部分も多かったです。
原文

ようこそJelly Beanのより甘いバージョンAndroid4.3へ、

Android4.3はパフォーマンスの最適化とユーザーと開発者のための素晴らしい新機能を含みます。このドキュメントでは開発者のために何が新しくなったかの概要を説明します。

新しいdeveloper APIの詳細はAndroid4.3APIs(翻訳中)を見て下さい。

ユーザーのための新機能についてwww.android.comでより理解することができます。

よりスムーズ、よりレスポンシブ

Android4.3はJelly Beanに既に含まれているパフォーマンスの改善(vsync, triple buffering, タッチ時の遅延低下、CPU input boost, hardware-acceleraterによる2D描画)の上に構築されています。新しい最適化が加えられAndroidはさらに高速になります。
グラフィックパフォーマンスを加速するために描画操作を統合し再編成することで、より効率がいいGPU formatに変換しhardware-acceleraterによる2D描画コマンドの流れが最適化されました。
マルチスレッドによりレンダラーは一つのタスクを行うために複数のコアに跨ってマルチスレッドを使用する事も出来ます。

Android4.3はShapeとtextの描画も改善します。円や各丸の長方形などのShapeはより高品質で効率が良く描画されるようになりました。テキストの最適化には複数フォントや複雑なグラフセット(CJK統合漢字)を使用した時のパフォーマンス向上や、テキストサイズ変更時の描画品質の向上、ドロップシャドウの描画高速化を含みます。

改善されたWindow bufferの割り当ての結果、あなたのアプリにより高速なimage bufferを割り当て、あなたがWindowを作る際の描画開始時間を短縮します。

最高のグラフィックパフォーマンスのためにAndroid4.3はOpenGL ES 3.0のサポートを開始します。アプリはframeworkとnative APIsのどちらを通してもOpenGL ES 3.0にアクセスできます。対応端末においてハードウェア2Dレンダリングエンジンはtexture管理とグラデーションの品質を上げるためにOpen GL ES 3.0を使用します。

ハイパフォーマンスグラフィックのためのOpenGL ES 3.0

Android4.3はKhronos OpenGL ES 3.0(英語)をプラットフォームでサポートします。
対応端末上でゲームやその他のアプリに高速な2D/3Dグラフィックのパフォーマンスを提供します。あなたはフレームワークかAndroid Native Development Kit(NDK)を通じてネイティブAPIのどちらを通してもOpenGL ES 3.0と関連したEGLを利用できます。

鍵となる新機能として、OpenGL ES3.0は先進的な描画エフェクトのacceleration、標準機能による高品質なETC2/EACテクスチャー圧縮、integerと32bit浮動小数点によるポイントをサポートした新しいバージョンのGLSL ESシェーディング言語、先進的なテクスチャーレンダリング、standardized texture sizeとrender buffer formatsを含みます。

OpenGL ES3.0APIを使ってとても複雑で、とても効率のいいグラフィックを作り互換性が有るAndroid端末で実行させる事が出来ます。またそれらのデバイスを通じてただ一つの標準的なテクスチャー圧縮フォーマットを使用する事が出来ます。

Open GL ES3.0はグラフィックハードウェアに依存するオプション機能です。現在のところ、Nexus7(2013年モデル)、Nexus4、Nexus10のおいてサポートされており使用可能です。

Bluetooth接続性の改善

Bluetooth Smart devicesとsensorsとの接続性

あなたはBluetooth Smart technologyを使った最新世代の小型で低消費電力のデバイスやセンサーと対話するアプリを設計、構築する事が出来ます。

Android 4.3はcentral roleとアプリが近くのデバイスを発見し、GATT(Generic Attribute Profile)サービスを問い合わせ、characteristicsを読み書きする標準的なAPIのセットを提供する事によりプラットフォームにビルドインでBluetooth Smart Readyをサポートします。

新しいAPIによりあなたのアプリは効率よく関心が有るデバイスとサービスのスキャンを行う事が出来ます。各デバイスに対して、UUIDによりGATTサービスがサポートされているかチェックし、デバイスIDと信号強度により接続を管理できます。あなたはデバイスでホストされたGTAAサーバーに接続しcharacteristicsを読書きしたり、 それらのcharacteristicsが変更されたときに通知を受け取るためにlistenerを登録出来ます。


Android4.3はBluetooth Smart Devicesと対話する唯一の標準的なAPIを提供します。

あなたはあらゆるGATT profileのサポートを実装する事が出来ます。標準的なcharacteristicsを読み書きするか必要であればカスタムcharacteristicsのサポートを追加する事が出来ます。アプリはクライアントとしてもサーバーとしてもどちらでも機能する事が出来て、どちらのモードにおいてもデーターの送受信を行う事が出来ます。APIはあなたがさまざまな種類の一般的なデバイス(たとえば近接タグ、腕時計、フィットネス、ゲームコントローラー、リモコン、健康器具など)との対話をサポートすることを可能にします。

Bluetooth Smart Readyのサポートは既にNexus7(2013) とNexus4で使用可能です。加えて近日中により多くのAndroid端末でサポートされる予定です。

AVRCP 1.3 Profile

Android4.3はBluettoth AVRCP 1.3のビルドインサポートを導入しました。あなたのアプリはリモートストリーミングメディアデバイスとより充実した対話性をサポートできます。例えばメディアプレーヤーのようなアプリはAndroid4.0で導入されたremote control client APIを通じてAVRCP 1.3を利用可能です。Bluetoothで接続されたリモートデバイスにプレイバックコントローラーを表示できるのに加えて、アプリはトラック名、作曲家などメディアファイルのメタデータを送信できます。AVRCP1.3のプラットフォームサポートはGoogleとBradcomによってAndroid4.2に導入されたBluedroid Bluetooth stack上に構築されます。サポートはNexusデバイスと、A2DP/AVRCP機能を提供するAndroid 互換デバイスですぐに使用できます。

制限プロファイルのサポート

Android4.3は制限プロファイルによってタブレット向けのマルチユーザー機能を拡張します。一つのデバイスでユーザーと機能を管理する新しい方法です。
制限されたプロファイルにより、タブレットオーナーは素早く各ユーザーごとの別々の環境をセットアップできます。それらの環境で使用できるアプリについてより細かい規制を管理する事も出来ます。制限されたプロファイルは友達、家族、ゲストユーザー、キオスク、POS端末などで有効です。

各制限されたプロファイルはそれ自身のローカルストレージ、ホームスクリーン、ウィジェット、設定により独立したセキュアな領域を持ちます。
ユーザーとは違い、プロファイルはタブレットオーナーの環境により作られます。そして、オーナーがインストールしたアプリとシステムアカウントの基動きます。

オーナーはどのインストールしたアプリを新しいプロファイルで有効にするか選択します。オーナーアカウントへのアクセスは標準で無効となります。

オーナーズアカウントへのアクセスが必要なアプリ(サインインを選択したり)はmanifestにオプトインで宣言し、オーナーがそれを観てプロファイル設定画面で明示的に有効かした場合に使用することが出来ます。

タブレットオーナーは一人以上の制限されたプロファイルを設定からセットアップしたり、独立して管理できます。

開発者へ、制限されたユーザーはより多くの価値とコントロールをユーザーに提供します。あなたはあなたのアプリにおける機能やコンテンツに対してアプリの制限を実装することが出来ます。
くわえてそれらをタブレットオーナーにプロファイル設定で示すことが出来ます。

あなたはもっと柔軟なアプリの制限を直接プロファイル設定に加えることが出来ます。
標準のbooleanセレクトと複数選択タイプ、もし必要なら必要なタイプの設定を行うためにあなた自身のUIをプロファイル設定画面から実行することも出来ます。

あなたのアプリがプロファイルで動作するとき、オーナーが設定したあらゆる規制を確認することが出来、それらを適切に処理できます。
例えば、メディアアプリならオーナーに成熟度をプロファイルに設定させるための機能を提供するかもしれません。
実行時、アプリは成熟度の設定をチェックし成熟レベルによって好ましいコンテンツを管理する個が出来ました。

もし、あなたのアプリが制限ユーザーで使用されるように設計されていないなら完全にopt outすることが出来ます。その時あなたのアプリはあらゆる制限ユーザーで有効に出来なくなります。

あなたはプロファイル実行時のコンテンツへの制限をオーナーに管理させる機能を提供できます。

位置情報とセンサー能力の最適化

Google Play sevicesはあなたのアプリで使用可能な拡張された位置情報APIを提供します。
Android4.3は対応端末に置いてハードウェアとソフトウェアによってバッテリー使用量を最小に最適化します。

Hardware geo fencing
ソフトウェアではなくデバイスのハードウェアでの位置情報取得計算によるHardware geo fencingが電力効率を最適化します。
Hardware geo fencingをサポートするデバイスに置いてGoogle Play servicesのgeo fence APIはデバイスが移動する間バッテリーを節約するためにこの最適化を利用できます。

Wi-Fi scan-onlyモード
Wi-Fi scan-onlyモードはプラットフォームの新しい最適化です
それは、Wi-Fiをスキャンだけしてネットワークへの接続を行いません。
それによりバッテリーを節約したまま位置情報の精度を上げます。
位置情報のためにWi-Fiを必要とするアプリはWi-Fiの拡張設定でscan-onlyモードを有効にするよう依頼する個が出来るようになります。
Wi-Fi scan-onlyモードはデバイスのハードウェアに依存しておらず、Android4.3プラットフォームの一部品として使用可能です。

新しいセンサータイプはアプリがセンサーの取得をよりよく管理することを可能にします。
game rotation vectorはゲーム開発者が磁気干渉を気にすることなくデバイスの回転を取得できます。
調整されていないジャイロスコープと、調整されていない磁気センサーは生の計測データと推定される偏向をアプリに報告します。

新しいハードウェアの調整はNexus7(2013)とNexus4で既に使用可能です。
また、あらゆるデバイスメーカー、チップセットベンダーは自分たちの装置に組み入れることが出来ます。

新しいメディア機能

Modular DRM framework

新世代のメディアサービスの要件を満たすために、Android4.3はmodular DRM frameworkを導入します。それはメディアアプリケーション開発者により簡単に彼らのストリーミングプロトコル(例えばMPEG DASH( Dynamic Adaptive Streaming over HTTP , ISO / IEC 23009-1 ))へDRMを統合します。

新しいAPIと改善された従来のAPIの組み合わせでmedia DRM frameworkはライセンス管理と配信、低レベルコーデック。暗号化されたメディアデータのデコーデックのための。統合されたサービスのセットを提供します。
新しいMediaExtractor APIによりDASH mediaのための PSSH metadataを取得できます。
アプリはmedia DRM framework manageを使用してライセンスサーバーとのネットワークコミュニケーションを管理し、コンテンツライブラリーから送られる暗号化されたストリーミングを取り扱います。

VP8エンコード

Android4.3はビルドインでフレームワークとnative APIからアクセス可能なVP8エンコーディングをサポートします。
native APIを使用するアプリのために、プラットフォームはVP8プロファイルとレベルのOpenMAX 1.1.2 extension headers を含みます。
VP8エンコーダーのサポートは target bitrate , rate control , frame rate , token partitioning , error resilience , reconstruction and loop filtersの設定を含みます。
プラットフォームAPIはフォーマットの範囲としてVP8を導入するので、あなたはコンテンツのために最良のフォーマットを利用することが出来ます。

VP8ソフトウェアエンコーディングはAndroid4.3が動く全ての互換デバイスで利用できます。
プラットフォームは対応端末において最高のパフォーマンスを実現するハードウェアアクセラレータもサポートします。

surfaceからのビデオエンコーディング

Android4.3からあなたはビデオエンコーダーの入力にsurfaceを使用可能となります。
例えば、OpenGL ESサーフェイスからのストリームをバッファへコピーすることなく直接エンコードに送れます。

Media muxer

アプリは音声とビデオストリームを一つのファイル出力に統合するために新しいMedia muxer APIを使用可能です。
アプリは多重送信された一つのMPEG-4音声ストリームと一つのMPEG-4ビデオストリームを一つのMPEG-4ファイルに出力できます。
新しいAPIは、Android 4.2で導入されたメディア分割APIへ対応する物です。

remote control clientsでのPlayback progressとscrubbing

Android4.0からMedia Playerやそのようなアプリはロックスクリーンや、通知、Bluetooth経由のリモートデバイスなどのremote control clientからの再生コントロール機能を提供することが出来ました。
Android4.3からはそれらのアプリケーションで再生位置とスピードを表示することが出来て、特定の再生位置へジャンプするコマンドを受信することも出来るようになります。

美しいアプリを構築するための新しい方法通知へのアクセス
通知はユーザーがシステムをまたいで一カ所で情報と通知を見ることができるため長い間Androidにおいて人気がある機能です。
Android4.3において、アプリはユーザーの許可を得れば通知のストリームを監視し、Bluetoothで接続されたデバイスを含むあらゆる場所、方法で通知を表示することが出来ます。

あなたは新しいAPIを通じてnotification listenerサービスを登録しユーザーの許可を得ることで通知にアクセスできます。それらはステータスバーに表示されます。
通知はあなたに、送信元のアプリ、ポストされた時間、コンテンツビューとスタイル、優先度の全ての詳細を届けます。
あなたは関心有るフィールドを調べて、アプリから処理を行ったりcontextを追加したり、あなたが選ぶあらゆるルートで表示できます。

新しいAPIは通知が追加、更新、削除(ユーザーが取り除いたり、送信元アプリが引っ込めた時)されたときあなたにコールバックを送ります。
あなたは通知やアクションにひも付いたあらゆるintentを発行できます。また、システムからそれを取り除き、あなたのアプリが完全なユーザーインターフェイスを通知のために提供することを可能とします。

ユーザーはどのアプリが通知を受け取るかをコントロールする力を持っています。
いつでも、ユーザーは設定でどのアプリが通知にアクセスしているかを確認し、必要であれば有効化、無効化を設定できます。
通知アクセスは標準で無効です。

アプリはインストール後、リスナーサービスを有効にしてもらうためにユーザーを設定画面に連れて行く新しいIntentを使用できます。

View overlays

あなたは一時的なView階層または一時的なアニメーションエフェクトで下位のレイアウト階層に影響を与えない透明なOverlayを最上位のViewまたはViewGroupで作成できます。
コンテナーの外へviewが流れるアニメーションを作るときや、View階層に影響を与えずにアイテムをドラッグするときなどに特に役立ちます。

Optical bounds レイアウトモード

新しいレイアウトモードによって、 clip boundsではなくoptical boundsによりViewGroup無いのViewの位置決めを管理できます。
clip boundsはウィジェットの実際の外周を表します。
新しいoptical boundsを記載すると、clip boundsの中にウィジェットがあるように見えます。

影や輝きなどウィジェットの外側に視覚効果を使うときウィジェットが正しく並んでいるように見せるためにoptical boundsを使用することが出来ます。
訳注 optical boundsによって指定された場所は従来のViewの外側に表示されます。
このため、ドロップシャドウなどをかけた部分をoptical boundsとして指定しておけばドロップシャドウがないオブジェクトと表示位置を合わせることが出来ます。

カスタム回転アニメーションタイプ

装置が回転したとき、アプリはexitとentryアニメーションを決めることが出来るようになりました。
あなたはジャンプカットやクロスフェード、あるいは標準的なウィンドウの回転をセットすることが出来ます。
ウィンドウがフルスクリーンで他のウィンドウが重なっていないとき、システムはカスタムのアニメーションタイプを使用します。

画面回転モード

アプリはデバイスが振られたときに適切な向きを確実にするためにActivityに新しい orientation modesをセットできます。
加えて、アプリは新しいモードを使用して現在の向きにスクリーンをロックできます。
これはカメラを使ってビデオを撮っているときに回転を抑制させたいアプリなどで便利です。

Quick Responsesを取り扱うためのIntent

Android4.3はあらゆるアプリでQuick Responseを取り扱えるように新しいpublic intentを導入します。
呼び出しに気づき、デバイスのロックを解除する必要なく、着信に対応してテキストメッセージが送られます。
あなたのアプリはintentを受信して、メッセージングシステムを経由して発信者にメッセージを送ります。
Intentには受取人(発信者)およびメッセージ内容を含みます。

国際的なユーザーサポート

RTL 改善

Android4.3はRTL機能の強化とフレームワークUI ( ProgressBar / Spinner and ExpandableListView)を含むフレームワークwidget全体で幅広くRTLをサポートします。
uiautomatorviewer toolを通じてより多くのデバッグ情報を見ることができます。
加えてシステムUI構成要素とは通知、ナビゲーションバー、アクションバーです。
RTLでより幅広く良い経験を提供できるように、デフォルトシステムアプリは、現在Launcher , Quick Settings , Phone , People , SetupWizard , Clock , Downloads ,などでRTLレイアウトをサポートします。

Android4.3のより多くの場所がRTL言語に最適化されました。

ローカライズのためのユーティリティ

Android4.3はあなたのローカライズされたUIでよりよいRTL文字を作り、ローカライズのテストのために新しいユーティリティとAPIを含みます。
新しい BidiFormatterはUnicodeの文字を包むAPIの1セットを提供し、あなたはRTLの描画を微調整できます。
あなたのアプリでより広くこのユーティリティが利用できるように
BidiFormatter APIはAndroidSDKのSupport Packageにより古いプラットフォームでも使用できます。

地域によって日付の書式を管理するのを助けるためにAndroid4.3は
あなたが指定した場所でのunicode UTS dateでの書式を生み出すgetBestDateTimePattern()を含みます。
それは地域に適した経験をユーザーに与える効果的な方法です。

その他地域でのテストをより簡単にするために、Android4.3は新しい開発者オプションpseudo-localesを導入します。
Pseudo -locales(擬似的な場所)は言語グループに関連した地域のスクリプト、表示される文字、をシミュレートできます。
現在、あなたはEnglishアクセントのためにpseudo -locale をテストできます。
それによりあなたのUIがヨーロッパの様々な言語でのスクリプトアクセントやキャラクターでどのように動くかを見ることができます。


Pseudo-localesでアプリのローカライズを簡単にテストできます。

AccessibilityとUI Automation

Android4.3のaccessibility servicesはキーボードショートカットを取り扱ったりやナビゲーション同様にジェスチャーベース入力を提供するためにキーとなるイベントを監視しフィルターに通す事が出来ます。
それらがシステムに通されるか他のアプリをインストールする前に、サービスはイベントを受信し、必要に応じてそれらを調べることができます。
accessibility servicesは新しい能力特性が何をすることが出来るか、それらがプラットフォームの機能を使用するか宣言できます。
例えば、それらはキーイベントをフィルターに通す、Windowコントロールを取り戻す、explore-by-touchを有効にする、Web web accessibility 機能を有効にすることを宣言できます。

いくつかのケースではサービスは必ず関連したプラットフォーム機能にアクセスする前に能力を宣言しないと行けません。
システムはそれを実行する前にオプトインダイアログを生成し、ユーザーはそれを見て承認できます。

Android4.3内蔵のaccessibility frameworkの新しいUI automation frameworkはユーザーアクションを画面の中でシミュレーションして対話的なテストを可能とします。
UIオートメーションフレームワークを通じて
基本的な操作を行うことが出来、スクリーンの回転をセットし、インプットイベントを作り、スクリーンショットを撮ったり出来ます。
それは複数アプリにまたがる現実的なユーザーシナリオのテストを自動化する強力な方法です。

エンタープライズとセキュリティ

企業ネットワークのWPA2用Wi-Fi設定

アプリはWPA2企業ネットワークのアクセスポイントと接続するのに必要なWi-Fi証明書を構築することが出来ます。
開発者は企業で使われる認証方法で使う拡張認証プロトコル(EAP)とEncapsulated EAP(Phase 2 )証明書を構成するために、新しいAPIを使用することができます 。

Wi-Fiにアクセスし変更する許可をえたアプリはいろいろなEAPとPhase 2認証方式のために証明書を構成することができます。

SELinuxでAndroid sandboxを強化

Androidは現在SELinuxを使用しLinuxカーネルのmandatory access control(MAC) はUIDに基づきアプリケーションのサンドボックスを強化します。
これはOSを潜在的なセキュリティの脆弱性から保護します。

KeyChain 強化

KeyChainAPIはシステムのキーがハードウェアに結びついていること確認するアプリケーションを可能にするメソッドを提供します。
これはルートあるいは kernel compromiseの時でさえデバイスからエクスポートされない私有キーを生成するか格納する場所を提供します。

Androidキーストアの提供

Android4.3は専用のキーを作成するアプリケーションを可能にします。
APIを使用し、アプリは他のアプリにより観たり使われることがないprivate keyを作って格納しユーザーとの対話無くKeystoreに格納できます。
keystoreprovider は、KeyChain APIが提供するシステム全体の証明書(例えば装置に結びついた証明書 )に提供するのと同じセキュリティ上の利益を提供します。
keystoreのprivate keyは装置からエクスポートできません。

Androidアプリから Setuidを制限する

/System partitionは現在zygote -spawned processesによりnosuidにマウントされています。
そして、Androidアプリがsetuidプログラムを実行するのを防ぎます。
これは潜在的なセキュリティの脆弱性によるrootへの攻撃可能性を減らします。

パフォーマンス測定のための新しい方法

強化されたSystrace logging

Android4.3はより使いやすく、あなたのアプリにおける多くのパフォーマンスプロファイル情報へアクセスする強化されたバージョンのSystrace toolをサポートします。
あなたはハードウェアモジュールからtrace data、 kernel functions , garbage collectionを含む Dalvik VM、, resources loadingなどのより多くの情報を集めることが出来ます。

Android4.3はまた、新しいTrace APIを導入します。
それはアプリ内の特定部分のコードをマークするために Systrace begin/endイベントを使うことができます。
コードの特定部分が実行されるときシステムはtrace logにstart/endイベントを書き出します。
それはあなたのアプリに最小限のパフォーマンス上の影響しか与えないので報告されるタイミングはアプリが行った時間について正確な値となります。
Systrace出力ファイルで特定のイベントを視覚化し他のカーネルとの前後関係とユーザー空間のトレースデータでイベントを分析することが出来ます。
既存のシステムタグとともにカスタムアプリセクションはあなたのアプリのパフォーマンスと振る舞いを理解する新しい方法を与えます。

Systraceは新しい命令構文を使いより多様なプロファイリング ・データを集めることができます。

On-screen GPU profiling

Android4.3はアプリのパフォーマンスとピンポイントのレンダリングをあらゆるデバイスやエミュレータ上で表示させます。
Profile GPU renderingオプションはあなたのアプリの有効なフレームレートをアプリ実行中に画面上へ視覚化します。
あなたはスクリーン上に棒グラフか折れ線グラフで profiling data を描画するか選ぶことが出来ます。
色は所要時間を表していて描画コマンドの生成(青)コマンドの発行(オレンジ)、コマンドの完了を待つ(黄色)
システムは連続的にスクリーン上のグラフを更新します。
そして、ナビゲーションバーや通知バーなどを含む、それぞれの表示されたActivityでグラフを表示します。

グリーンの線は60msの閾値です。
60fpsのゴールと比較してアプリの効率的なフレームレートを評価することが出来ます。
緑の線を越える操作を見付けたとき、Systraceや他のツールを使用してそれを分析できます。


Android4.3におけるOn-screen GPU profiling

注意Android4.3以上で動くデバイスでは開発者オプションは
標準で非表示です。
それを表示するには設定 携帯電話について ビルド番号を7回タップします。

StrictMode warning for file URIs

StrictModeツールの最新の機能追加はアプリが
file:// URIを他のシステムにさらしたときに警告する制約です。
場合によっては受信側アプリでfile:// URIパスにアクセスしない方が良いかもしれません。://URIを適切なpermissionで使用すべきです。
この新しいポリシーはあなたがこのケースを把握し修正する手助けをします。
あなたがファイルを他のアプリに格納して後悔する便利な方法を探しているならSupport Libraryに含まれるFileProvider content providerを使用してみて下さい。

Except as noted, this content is licensed under Creative Commons Attribution 2.5. For details and restrictions, see the Content License.

前:Google I/O 2013 帰国 次:Android KitKat(さらに追記あり)

関連キーワード

[Android][Java][モバイル][IT][翻訳]

コメントを投稿する

名前URI
コメント