Android 4.4 の開発者向け要約


20131115-_android44_print

Android Developers の Android KitKat の要約です。

(1) 皆のためのAndroidを作る
Anroid4.4 は 512MB のRAMの端末でも快適に動作します。
アプリ開発者は、新しいAPIにより、デバイスのメモリー容量にマッチするようにアプリの動きを調整できます。

(2) ホスト・カード・エミュレーションで出来る新しいNFCの機能
Android端末が擬似的なNFCカードになります。

(3) 印刷のフレームワーク
印刷できるようになりました。

(4) ストレージ・アクセス・フレームワーク
クラウドまたはローカルのストレージ用に新しいAPIが導入され、統一的なインターフェイスが提供されます。
Document Provider を構築すると、クライアントアプリからはテキスト、写真、壁紙、ビデオ、オーディオなど様々なファイルに簡単にアクセスできるようになります。

(5) 省電力センサー
(5-1) センサーのバッチ処理
hardware sensor batching という仕組みが導入され、複数のセンサを同時に任意の間隔で取得できます。
(5-2) 歩数検出と歩数計
センサーAPIに歩数検出と歩数計がサポートされました。

(6) SMS プロバイザー
SMS用に新しいAPIが導入され、統一的なインターフェイスが提供されます。

(7) 美しいアプリを作るための新しい方法
(7-1) 没入型全画面表示
没入型 (Immersive mode) という新しいフルスクリーン・モードが提供されます。
ナビゲーションバーやステーションバーを非表示にして、必要なときに呼び出せます。
(7-2) 画面切替えのフレームワーク
場面 (Scene) と 遷移 (Transition) という概念が導入され、画面切替えのアニメーションが簡単に作成できるようになりました。
(7-3) 半透明システムUIスタイル
ステータスバーとナビゲーションバーを含むシステムUIを半透明にすることが出来ます。
(7-4) 改善された通知アクセス
通知 (Notification) を階層的に異なる方法で表示できます。
(7-5) Chromium ベースのWebView
WebView が Chromium をベースにして新しくなりました。

(8) 新しいメディアの機能
(8-1) 画面の録画
USB経由のADBコマンドにより、画面の録画が可能になりました。
(8-2) その他
適応型再生 (adaptive playback) による解像度の変更=
DASH方式の共通暗号化
HTTP ライブ配信
オーディオをDSPに直接接続する
オーディオのモニタ
音量の改善
タイムスタンプによるAV同期の改善
Wi-Fiアライアンス準拠の Miracast

(9) レンダースクリプトの計算
(9-1) Android NDK 内でのレンダースクリプト
ネイティブコードから直接レンダースクリプトを使用する事ができるようになりました。
(9-2) その他
改善され続けているパフォーマンス
GPUによる性能加速

(10) グラフィックス
SurfaceFlinger を OpenGL ES 1.0 から2.0に更新されました。
新しいコンポーザーは仮想ディスプレイをサポートします。

(11) 新しいタイプの接続タイプ
(11-1) 新しいブルーツースのプロファイル
HOGP (HID over GATT Profile) は、マウスやジョイスティック、キーボードとの遅延の少ない接続をアプリに提供します。
MAP (Message Access Profile) は、ハンズフリーのための自動車ターミナルなどの近くのデバイスとメッセージをやりとりします。
(11-2) 赤外線通信
赤外線通信をサポートしたので、家電のリモコン・アプリが開発できます。
(11-3) Wi-Fi TDLS サポート
TDLS (Tunneled Direct Link Setup) を使って、同じWi-Fiネットワーク上にあるデバイス同士でシームレスにメディアやその他データを送ることが出来ます。

(12) ユーザー補助
(12-1) システム全体における字幕設定
ユーザーは、設定画面のユーザー補助から、字幕を表示するか、使用する言語、文字サイズ、字幕スタイルなどの字幕の設定を行うことができます。
(12-2) 強化されたアクセスサビリティのAPI
スクリーン上の要素をより正確な構造で意味論的な説明と情報をサポートするためAccessibility API を拡張しました。

(13) 国際的なユーザーのサポート
RTL (Right-to-left writing) 言語を含む時は、自動で右から左に表示するようになります。

(14) 改善されたセキュリティ
(14-1) SELinux(enforcing mode)
SELinux設定をPermissiveからenforcingに更新しました。
(14-2) 改善された暗号化アルゴリズム
Keystore Provicer に ECDSA (Elliptic Curve Digital Signature Algorithm) が追加されました。

(15) メモリー使用量を解析するためのツール
(15-1) Procstats
Procstats は、システム上で使われているあなたのアプリのメモリーリソースやその他アプリ、実行中のサービスのリソース使用状況を解析するのを助けます。
(15-2) デバイス上でのメモリー状況とプロファイリング
あらゆるデバイスやエミュレータ上で動くメモリープロファイルを簡単に解析できる新しい開発者オプションが含まれました。

参考
Android KitKat (英語)
Android KitKatで何が新しくなったか – Android Kitkat (和訳)
Android 4.4 KitKat (和訳)


Motorola Moto G


スペック
Qualcomm Snapdragon 400(1.2GHz) クアッドコアプロセッサ
4.5インチHD液晶 (329ppi)

YouTube Preview Image

参考
モトローラ、「Moto G」を発表–低価格でも機能にこだわったスマートフォン
Motorola、低価格スマホ「Moto G」を発表、SIMアンロックが179ドルから
米モトローラ、高機能ながら179ドルのAndroidスマートフォン「Moto G」を発表


Android 4.4 のサンプルコード (公式サイト)


Android 公式サイト に、サンプルコードが掲載されています。
しかし、ソースコードだけで説明がいっさいなし。 (^^;

★ API 19 (Android 4.4)
☆ は SDK 19 に含まれていないもの

Background
☆ repeatingAlarm API 4 / 17

Connectivity
BluetoothLeGatt
NetworkConnect
BasicNetworking
BasicSyncAdapter

Input
BasicMultitouch
BasicGestureDetect

Content
BasicContactables
AppRestrictions
★ StorageClient API 19 / 19
★ StorageProvider API 19 / 19

Media
BasicMediaRouter
☆ BasicMediaDecoder API 17 / –

Security
BasicAndroidKeyStore

Testing
ActivityInstrumentation

UI
BasicAccessibility
☆ HorizontalPaging API 11 / 16
ShareActionProvider
Styled
Basic
☆ ImmersiveMode API 11 / 19
TextSwitcher
BorderlessButtons
BasicNotifications
★ AdvancedImmersiveMode API 19 / 19
★ BasicImmersiveMode API 19 / 19
CustomChoiceList
DoneBar
ListPopupMenu
CustomNotifications

Views
☆ TextLinkify API 4 / 17

Android 公式サイト Samples

関連
Android のサンプルコード


Android 4.4 で追加された API


Packages
(1) android.nfc.cardemulation
NFCホスト機能がサポートされました。

(2) android.graphics.pdf
PDFが生成できるようになりました。

(3) android.print android.printservice
アプリから印刷できるようになりました。

(4) android.transition
SceneTransition という仕組みが提供されたました。
Scene は、その階層中の View および View が持っているレイアウトなどの値をカプセル化したものです。
Transition は、新しい Scene が入力される場合に生じる変更を自動的に活性化する機構です。

Classes
(1) hardware ConsumerIrManager
家電向けの赤外線を操作するクラス

(2) hardware VirtualDisplay
仮想ディスプレイを表現します。

(3) app AppOpsManager
「アプリの操作」を追跡するための対話型のAPI

(4) app Notification.Action
ユーザが選択したアクション(アイコン、ラベル、PendingIntentなど)をカプセル化する。

(5) content SyncRequest

(6) content UriPermission
単一の Uri パーミッシンの記述

(7) graphics Path.Op
2つのパスを組合せる場合の論理演算。

(8) location SettingInjectorService
アプリの設定リストにプレファレンスの状態を挿入します。

(9) media AudioTimestamp
オーディオ・ストリームに関連するフレームの位置をグループ化する構造。

(10) media Image
MediaCodec のようなメディア・ソースとともに使うためのイメージ・バッファー。

(11) media ImageReader
ImageReader クラスは、Surface にレンダーされたイメージデータへ直接アクセスすることを許可します。

(12) media MediaMetadataEditor
RemoteControlClient によって公表されたメタデータを編集し格納するための抽象型クラス。

(13) media Rating
コンテンツのメタデータとして使用した評価の情報をカプセル化するクラス

(14) media RemoteController
RemoteController クラスは、メディアの再生をコントロールし、表示し、メディアのメタデータおよび再生状態を更新するために使用されます。

(15) media ResourceBusyException
ハードウェア・リソースが利用可能でない時に、MediaDrm で保護されたものに対する操作が試みられときに、発生する例外

(16) media LoudnessEnhancer
LoudnessEnhancer は、オーディオの低音域と高音域を増加させるオーディオ効果です。

(17) android Visualizer.MeasurementPeakRms
ピークとRMS(実効値)の値を格納するクラス

(18) provider DocumentsContract
ドキュメント・プロバイダーとプラットフォームの間のコントラクトを定義します。

(19) provider DocumentsProvider
ドキュメント・プロバイダーの基底クラス。

(20) provider Telephony
テレフォニー・プロバイダーは、電話の操作、特にSMSおよびMMSメッセージと関係するデータ、および使用するMMSCを含むAPNリストへのアクセスを含んでいます。

(21) renderscript ScriptIntrinsicHistogram
固有のヒストグラム・フィルタ。

(22) util ArrayMap
ArrayMap は、従来の HashMap よりメモリ効率的がよいキー・バリュー型のデータ構造です。

(23) util LayoutDirection
レイアウトの方向を定義するためのクラス。

(24) view AccessibilityNodeInfo.CollectionInfo
ノードがコレクションである場合に情報を備えたクラス。

(25) view AccessibilityNodeInfo.CollectionItemInfo
ノードがコレクション・アイテムである場合に情報を備えたクラス。

(26) view AccessibilityNodeInfo.RangeInfo
ノードがレンジである場合に情報を備えたクラス。

(27) view CaptioningManager
ビデオのキャプションの状態と視覚的な特性に適したモニタやアクセスする方法を含んでいます。

(28) view InputMethodSubtype.InputMethodSubtypeBuilder
InputMethodSubtypeBuilder は InputMethodSubtype のビルダーのクラスです。

(29) lang AutoCloseable
一度クローズすると2度と使われないクラスのためのインターフェースを定義する。

(30) lang ReflectiveOperationException
リフレクションの関連する例外のサブクラス。

(31) lang SafeVarargs
vararg (たとえば、省略記号 (…) の引数など) が潜在的に安全でないものは何もしないとコンパイラーに伝えます。

(32) util Objects
オブジェクトのためのユーティリティ。

(32) crypto AEADBadTagException
ガロア・カウンター・モード (GCM) のような付加的なデータモードを備えた確証された暗号化 (AEAD) を使用している暗号とタグの認証が失敗したときに発生する例外。

参考
Android API Differences Report


Android 4.4 のサンプルコード (SDK)


SDK にはサンプルコードが入っています。
今回は 3個ほど追加されていますが。
Android 4.4 (API 19) 用は、1個だけです。

前回は legacyに入っていた
AppRestrictions と BluetoothLeGatt の格納場所が変わり、
プロジェクトも Eclipse 用から Android Studio 用に変わりました。

content
★ (1) documentsUi StorageProvider API 19/19
(2) LoaderCursor API 14/17
☆ multiuser AppRestrictions API 18/−
– contacts BasicContactables API 18/18

media
(3) MediaRecorder API 14/17
BasicMediaRouter API 17/17

connectivity
☆ bluetooth BluetoothLeGatt API 18/18
– network BasicNetworkDemo API 8/17
– network NetworkConnect API 8/17
– sync BasicSyncAdapter API 7/17

input
– gestures BasicGestureDetect API 8/17
– multitouch BasicMultitouch API 8/17

security
– keystore BasicAndroidKeyStore API 8/17

testing
– ActivityInstrumentationSample API 7/-

ui
– accessibility BasicAccessibility API 11/16
– ActionBar DoneBar API 14/17
– ActionBarCompat Basic API 7/17
– ActionBarCompat ListPopupMenu API 7/17
– ActionBarCompat ShareActionProvider API 7/17
– ActionBarCompat Styled API 7/17
– holo BorderlessButtons API 14/17
– lists CustomChoiceList API 3/17
– notifications BasicNotifications API 8/17
– notifications CustomNotifications API 4/18
– views HorizontalPaging API 11/16
– views TextSwitcher API 4/17

legacy
– AccelerometerPlay API -/-
ActionBarCompat API 3/14
AndroidBeamDemo API 14/-
– ApiDemos API 4/17
AppNavigation API -/-
– BackupRestore API 8/-
– BasicGLSurfaceView API -/11
– BluetoothChat API 6/-
– BluetoothHDP API 14/14
ContactManager API 5/5
– CrossCompatibility API 3/8
– CubeLiveWallpaper API 7/-
– GestureBuilder API -/11
HelloEffects API 14/15
– Home API -/-
– HoneycombGallery API 11/14
– JetBoy API 3/11
KeyChainDemo API 14/15
– LunarLander API -/11
– MultiResolution API -/4
– NotePad API 11/-
– RandomMusicPlayer API 7/14
– SampleSyncAdapter API 8/15
– SearchableDictionary API 7/15
– SipDemo API -/-
– SkeletonApp API -/11
– Snake API 3/15
– SoftKeyboard API -/-
– Spinner API 3/11
– SpinnerTest API 3/-
– TicTacToeLib API -/-
– TicTacToeMain API 8/-
ToyVpn API 14/-
TtsEngine API 14/14
– UiAutomator API -/-
VoicemailProviderDemo API 14/14
– VoiceRecognitionService API 8/-
– WeatherListWidget API 11/14
– WidgetPreview API -/11
WiFiDirectDemo API 14/-
WiFiDirectServiceDiscovery API 16/-
– Wiktionary API 3/4
– WiktionarySimple API 3/4
– XmlAdapters API 8/8
– RenderScript HelloCompute API 14/-
– SpellChecker HelloSpellChecker API 14/-
– SpellChecker SampleSpellCheckerService API 14/-
– USB AdbTest API 12/-
– USB MissileLauncher API 12/-

API 表記 : minSdkVersion / targetSdkVersion


Android 4.4 のイースターエッグ


20131101android44_easter_egg 20131101kitkat_android

Android のイースターエッグの出し方
Android Virtual Device Manager で Android 4.4 の仮想デバイスを作ります。
仮想デバイスを起動します。
Setting -> About Phone から Android Version を連打する。

やはり今回は KitKat 風のデザインですね。

20131101android44_virtual_device


Android 4.4 の SDK に更新した


20131101sdk_android44

Android 4.4 ( API Level 19 ) が公開されました。
Eclipse を起動して、ウィンドウ -> Android SDK Manager を開きます。
Android 4.4 が表示されので、インストールします。

ヘルプ -> 更新の確認 をします。
ADT 22.3 がインストールされます。

念のためキャッシュをクリアします。
eclipse -clean

参考
Android 4.4 APIs
SDK Tools, Revision 22.3


Android 4.4 発表


xkitkat.jpg.pagespeed.ic.VIKER7et01

Android 4.4 Kitkat が発表されました。

主な新機能と改善点
・家電向け赤外線のサポート
・NFCホスト機能のサポート
・音声操作
・マルチタスクの高速化
・新フルスクリーンモード
・「ファイルを開く」の強化
・電話アプリの強化
・SMS / MMS とハングアウトチャットの統合

音声操作は「OK, Google」で開始するようです。
まるで Google Glass ですね。

参考
Android Developer : Android KitKat
engadget : Android 4.4 KitKat 正式発表、「512MBでも快適」な省メモリ化のほか新機能・改善多数
techcrunch : 本日公開のAndroid 4.4 KitKat詳細レビュー―すべてのデバイスで動作可能、Googleの野心はフラグメンテーションの抜本的解消
impress : Google、「Android 4.4 KitKat」と「Nexus 5」を発表

Android 仲間の記事
ブリリアント : Android4.4 Kitkat 速報
GClue : Android 4.4 KitKatの新機能
kinneko : DevBytes: Android 4.4 動画まとめ
adamrocker : Android4.4の面白ポイント