2013年11月18日月曜日

[コラム] Android 4.4 Kitkat詳細(開発者向けハイライト・その4)



f:id:bs-android:20131024185958j:image

原文:Android KitKat | Android Developers





New Types of Connectivity


新しいBluetooth Profile

Android 4.4では、省電力とメディア相互作用を広い範囲でアプリをサポートするため、2つの新しいBluetooth Profileに対応しました。Bluetooth HID over GATT(HOGP)はマウス、ジョイスティック、キーボードのような低消費電力の周辺機器とアプリ間で遅延の少ない接続を提供します。Bluetooth MAPは、アプリとその付近にあるデバイス、例えばハンズフリー用の車載端末や、その他のモバイル端末と、メッセージを交換することができます。Bluetooth AVRCP 1.3の拡張として、ユーザーはBluetoothデバイスから、システム音量を設定することができます。

赤外線ブラスター

Android 4,4 では、組み込み用の赤外線ブラスターのためのプラットフォームを導入し、新しいAPIやシステムサービスをアプリで活用することができます。

新しいAPIを使うと、近くにあるテレビ、ラジオ、スイッチ、その他の電子機器を遠隔でコントロールできるアプリを構築することができます。APIは、携帯電話やタブレットが赤外線通信に対応しているかどうかをチェックし、そのキャリア周波数を照会した後、赤外線信号を送信することができます。

APIはAndroid 4.4以上が動作するデバイスでは標準となるため、ソースコードのカスタマイズなしに、広い範囲でのベンダーをサポートできます。

Wi-Fi TDLSのサポート

Android 4.4ではWi-Fi Tunneling Direct Link Setup(TDLS)のサポートにより、同じWi-Fiネットワーク上にあるデバイス間で、メディアやその他のデータの高速でシームレスな送受信を提供します。

Accessibility


字幕のシステム全体設定

Android 4.4では字幕のシステム全体設定が追加され、アプリ全体でより良いアクセシビリティ体験をサポートします。字幕のグローバル設定には、Settings -> Accessbility -> Captionsからアクセスでき、字幕の表示/非表示、言語設定、テキストサイズ、テキストスタイルが設定可能です。

動画を取り扱うアプリでは、ユーザーの字幕設定にアクセスすることができ、ユーザーの好みに合わせた調整が可能です。新しい字幕管理APIではユーザーの字幕設定を監視できます。字幕管理では、ユーザーの好みに合わせた字幕設定と同様に、優先ロケール、スケーリング係数、テキストスタイルを提供します。テキストスタイルには、前景色と背景色、エッジのプロパティ、書体が含まれます。

f:id:bs-android:20131111223333j:image:w360:right

加えて、VideoViewを使用するアプリは、動画表示とともに字幕表示を行う新しいAPIを使用できます。ユーザーのシステム設定に応じて、システムは自動的に動画フレーム上の字幕表示を処理します。現在、VideoViewでは、WebTTVフォーマットのみ字幕の自動表示をサポートしています。

字幕を表示する全てのアプリは、ユーザーのシステム全体の字幕設定を確認し、それらの設定にできるだけ近づけた字幕をレンダリングすべきです。設定の組み合わせによって字幕がどのように表示されるかを確認できるように、Settingsアプリでは言語、サイズ、スタイル設定に応じた字幕プレビューを見ることができます。

強化されたアクセシビリティAPI

Android 4.4では、より正確な構造で、意味的な記述、画面上の要素監視をサポートするアクセシビリティAPIを拡張しました。新しいAPIによって、画面要素の詳細な情報へのアクセシビリティサービスが提供され、開発者はアクセス可能なフィードバックの品質を向上できます。

アクセシビリティのノードでは、開発者はノードがポップアップしているかどうか確認でき、入力タイプなどを取得できます。リストやテーブルのような碁盤上の情報を含んでいるノードを動作させる新しいAPIを使用することもできます。例えば、新しくサポートされるアクション、コレクション、インフォメーション、ライブリージョンモードを指定することができます。

新しいアクセシビリティイベントによって開発者は、ウィンドウコンテンツの位置変更をより密接に追従させることができ、デバイス上のタッチモードの変更を取得できます。

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


RTLロケール用Drawableのミラーリング

もしあなたのアプリがRTLスクリプトを使用するユーザーをターゲットにしている場合、ユーザーのロケール設定にRTL言語が含まれていれば、自動ミラーリングを行うべきDrawableを宣言した新しいAPIを使用することができます。

自動ミラーリングされたDrawableの宣言は、リソースの重複を防ぎ、あなたのアプリのAPKサイズを減少させます。もしLTRとRTLプレゼンテーションの両方に再利用可能なDrawableを持っている場合は、自動ミラーリングされたデフォルトのバージョンを宣言することができ、RTLリソースからDrawableを省略できます。

f:id:bs-android:20131113232626p:image:w360:right

ビットマップ、NINE Patch、レイヤー、状態リストなど、自動ミラーリングされた様々なタイプのDrawableをアプリで宣言することができます。また、新しい属性を使用して、リソースファイルに自動ミラーリングされたDrawableを宣言することも可能です。

RTLレイアウトの強制

RTL言語へのスイッチなしで、レイアウトミラーリングの問題を簡単にデバッグ、テストするために、Androidでは開発者用オプションに、全てのアプリのRTLレイアウトディレクションの強制設定を含んでいます。

RTLレイアウトの強制オプションでは、全てのロケール向けのRTLレイアウトにデバイスを切り替え、あなたの現在の言語設定でテキストを表示できます。これによりRTL言語でアプリを表示しなくても、アプリ全体のレイアウト問題を見つけるのに役立ちます。オプションには、Settings -> Developer Option -> Force RTL layout direction、からアクセスできます。

セキュリティ強化


SELinux(強制モード)

Android 4.4では、SELinuxのpermissiveからenforcingへの設定に対応しました。これにより、enforcingポリシーを持っているSELinuxのドメイン内で、潜在的なポリシー違反はブロックされます。

改良された暗号アルゴリズム

Androidでは、さらに2つの暗号化アルゴリズムのサポートが追加され、セキュリティをさらに向上させました。デジタル署名アルゴリズム(ECDSA)のサポートでは、デジタル署名のセキュリティを向上させるキーストアプロバイダを追加しました。データ接続やアプリケーションの署名時など際に最適です。スクリプトキー生成関数は、ディスク全体の暗号化に使用される暗号鍵を保護するために実装されています。

その他の機能強化

マルチデバイス上では、VPNはユーザーごとに適用されます。これによりデバイス上の他のユーザーに影響を与えることなく、ユーザがVPN上の全てのネットワークを使用することが許可されます。また、AndroidはFORTIFY_SOURCE level2をサポートし、すべてのコードは、これらの保護されてコンパイルされています。FORTIFY_SOURCEはClangで動作するように強化されています。

メモリ使用状況の分析ツール


Procstats

新しいツールProcstatsは、あなたのアプリが使用するメモリリソースだけでなく、システム上で実行されている他のアプリやサービスによって使用されるリソースを分析するのに役立ちます。

Procstatsは、アプリの動作を追跡し続け、実行時間とメモリ使用量に関するデータを提供し、アプリが効率良く実行できるよう判断するのに役立ちます。バックグラウンドで動作するサービスを起動するアプリにとって、動作している時間とRAMの使用量を監視できることは非常に重要です。Procstatsは、アプリがメモリを使用して、アプリ全体のメモリプロファイルを決定するための時間について、フォアグラウンドアプリ向けにデータ収集します。

Procstatsは、あなたのアプリによって起動されたバックグランドサービスを識別するのに役立ちます。それらのサービスが実行中のあいだ、どれくらいRAMを使用するか追跡することができます。またProcstatsは、全体のメモリプロファイルを決定するまでのメモリ使用量を使って、フォアグラウンドにいるアプリをプロファイリングできます。

f:id:bs-android:20131115172806p:image:w360f:id:bs-android:20131115172807p:image:w360




Procstatsには、Android SDKに含まれるadbツールからアクセスできます。デバイス上のプロファイリングについては、プロセス統計開発オプションを参照してください。

デバイス上のメモリの状態とプロファイリング

Android 4.4には、任意のデバイスまたはエミュレータが実行中、あなたのアプリのメモリプロファイルを簡単に分析するための、新しい開発者オプションが含まれています。あなたのアプリのどれくらいメモリを使い、RAMの少ないデバイス上でどう動作するのかを確認するのに役立ちます。開発者オプションには、Settings -> Developer options -> Process statsからアクセスできます。

f:id:bs-android:20131115175450j:image:w240:rightf:id:bs-android:20131115175451j:image:w240:right

プロセス統計オプションでは、新しいProcstatsサービスを使用して収集されたデータに基づいて、アプリのメモリ使用に関する詳細なメトリクスを見ることができます。メイン画面ではシステムメモリ状態の概要を確認できます。緑色はRAMの使用量が低かった期間、黄色はRAMの使用量が適切だった期間、赤色はRAMの使用量が(クリティカルに)高かった期間を指しています。

概要以下では、システム上にロードされている各アプリのメモリ使用量を表示しています。各アプリについて、青いバーはそのプロセスでロードされた相対的なメモリ負荷を示し、パーセンテージはバックグラウンドで消費される相対的な時間を示します。フォアグランド、バックグラウンド、またはキャッシュされたプロセスのみをフィルタリングしたり、システムプロセスを含める/含めないを切り替えることが可能です。データ収集期間を3、6、12,24時間の中から変更したり、USSメモリの有無を切り替えることも可能です。

特定のアプリのメモリ消費量について見る場合は、アプリ名をタップします。消費メモリの概要と、アプリが実行されている収集間隔の割合を各アプリごとに確認できます。また、収集中のメモリ最大使用量と平均、アプリのサービスや実行時間の割合も見ることができます。

プロセス統計データを使用したアプリ分析では、問題点を明確にし、あなたのアプリ向けに可能な限りの最適化を提案できます。例えば、もしあなたのアプリが必要以上の時間で動作し、一定期間に渡って大量のメモリを使用している場合、特にRAMの少ないデバイス上では、アプリのパフォーマンスを向上させるために解決可能なソースコードのバグがあるかもしれません。


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




140 180 Android

記載されている会社名、および商品名等は、各社の商標または登録商標です。

0 コメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...