2012年6月29日金曜日



f:id:bs-android:20120628095640j:image:w360





2日目のGoogle IOの基調講演のレビューです。


昨日にも増してにぎわいを見せています。


f:id:bs-android:20120628095215j:image:w200 f:id:bs-android:20120628095352j:image:w200 f:id:bs-android:20120628085607j:image:w200





会場の様子


昨日と同様一番前の席はプレス席専用となっており、一番前からの写真を取る事ができませんでした。


f:id:bs-android:20120628100019j:image:w250 f:id:bs-android:20120628095711j:image:w250







基調講演


カウントダウンからのGoogle IO 2日目開幕です。


f:id:bs-android:20120628100628j:image:w250 f:id:bs-android:20120628100642j:image:w250





昨日同様Vic Gundotra氏から始まりました。


ブルーのGlassを装着して登場です。


f:id:bs-android:20120628100817j:image:w360





Chrome OS


本日はChrome OSから始まります。


f:id:bs-android:20120628100912j:image:w360





Chrome Browser


Nexus Galaxy, Nexus 7, iPhone, iPadでのデモストレーション


f:id:bs-android:20120628101733j:image:w250 f:id:bs-android:20120628101839j:image:w250


f:id:bs-android:20120628102056j:image:w250 f:id:bs-android:20120628102207j:image:w250





Chrome Book


自動で更新する常に最新のコンピュータとのこと。


f:id:bs-android:20120628104103j:image:w360





Google Compute Engine


新サービスの発表!


科学技術系の計算などの処理に特化したクラウドサービスのようなもののようです。


f:id:bs-android:20120628104631j:image:w360





Glass デモストレーション


またもやスカイダイビングでデモストレーションが行われました。


最後の登場はありませんでしたが、着陸時が一番の歓声で盛り上がりました!


f:id:bs-android:20120628111139j:image:w200 f:id:bs-android:20120628111227j:image:w200 f:id:bs-android:20120628111230j:image:w200


f:id:bs-android:20120628111526j:image:w200 f:id:bs-android:20120628111730j:image:w200 f:id:bs-android:20120628111754j:image:w200


f:id:bs-android:20120628111848j:image:w200 f:id:bs-android:20120628111909j:image:w200 f:id:bs-android:20120628111942j:image:w200





おまけ


最後に、ADK2.0のセッションに参加すると


今年もADK一式プレゼントもらいました!


f:id:bs-android:20120628124707j:image:w200 f:id:bs-android:20120628124549j:image:w200 f:id:bs-android:20120628124730j:image:w200





まだまだGoogle IOは続きます。



文責:カスタマー開発部 大阪開発課 藤田 竜史





Google IO 2012 ~2日目レビュー(基調講演)~



f:id:bs-android:20120628095640j:image:w360





2日目のGoogle IOの基調講演のレビューです。


昨日にも増してにぎわいを見せています。


f:id:bs-android:20120628095215j:image:w200 f:id:bs-android:20120628095352j:image:w200 f:id:bs-android:20120628085607j:image:w200





会場の様子


昨日と同様一番前の席はプレス席専用となっており、一番前からの写真を取る事ができませんでした。


f:id:bs-android:20120628100019j:image:w250 f:id:bs-android:20120628095711j:image:w250







基調講演


カウントダウンからのGoogle IO 2日目開幕です。


f:id:bs-android:20120628100628j:image:w250 f:id:bs-android:20120628100642j:image:w250





昨日同様Vic Gundotra氏から始まりました。


ブルーのGlassを装着して登場です。


f:id:bs-android:20120628100817j:image:w360





Chrome OS


本日はChrome OSから始まります。


f:id:bs-android:20120628100912j:image:w360





Chrome Browser


Nexus Galaxy, Nexus 7, iPhone, iPadでのデモストレーション


f:id:bs-android:20120628101733j:image:w250 f:id:bs-android:20120628101839j:image:w250


f:id:bs-android:20120628102056j:image:w250 f:id:bs-android:20120628102207j:image:w250





Chrome Book


自動で更新する常に最新のコンピュータとのこと。


f:id:bs-android:20120628104103j:image:w360





Google Compute Engine


新サービスの発表!


科学技術系の計算などの処理に特化したクラウドサービスのようなもののようです。


f:id:bs-android:20120628104631j:image:w360





Glass デモストレーション


またもやスカイダイビングでデモストレーションが行われました。


最後の登場はありませんでしたが、着陸時が一番の歓声で盛り上がりました!


f:id:bs-android:20120628111139j:image:w200 f:id:bs-android:20120628111227j:image:w200 f:id:bs-android:20120628111230j:image:w200


f:id:bs-android:20120628111526j:image:w200 f:id:bs-android:20120628111730j:image:w200 f:id:bs-android:20120628111754j:image:w200


f:id:bs-android:20120628111848j:image:w200 f:id:bs-android:20120628111909j:image:w200 f:id:bs-android:20120628111942j:image:w200





おまけ


最後に、ADK2.0のセッションに参加すると


今年もADK一式プレゼントもらいました!


f:id:bs-android:20120628124707j:image:w200 f:id:bs-android:20120628124549j:image:w200 f:id:bs-android:20120628124730j:image:w200





まだまだGoogle IOは続きます。



文責:カスタマー開発部 大阪開発課 藤田 竜史





2012年6月28日木曜日



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


今年もやってきましたGoogle IO。


開催場所は昨年と同じMoscone Center Westです。


1日目のレポートを掲載します。写真などから今年の会場の雰囲気などが伝われば幸いです。





開場


AM7:00過ぎには会場に着きましたが、既に長蛇の列が並んでいました。


その会場の周りにはドロイド君が踊り走り回ってます。


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


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







朝食


基調講演(キーノート)が始まるまで、朝食を食べました。


たくさんのパンが用意されており、ゆで卵がすごく身にしみました。


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


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





基調講演(キーノート)


基調講演会場への込み具合です。


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


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





Google IO 開幕!


カウントダウンとともに開幕です!


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





Jelly Beanの公開


Android 4.1のJelly Beanが公開されました!


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





その中でも、Offline Voice Typingの新機能の発表に開場が盛大に盛り上がりました!


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





PDK(Platform Development Kit)の発表


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


その他の詳しい新機能の内容は以下をご覧ください。


Android 4.1 (Jelly Bean) の新機能・改善点一覧(前編)


Android 4.1 (Jelly Bean) の新機能・改善点一覧(後編)





Nexus 7の発表


Asusが開発担当をしたNexus 7の発表がありました。


Jelly Beanが搭載されています。


このNexus7はお土産としていただきました。


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





Nexus Q


形は写真の通り小さな球場のものとなっていて、


ホームユースを想定したスモールコンピュータとのこと。


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





Glassのデモストレーション


実際に、サンフランシスコの上空と会場でカメラ共有を行い、


スカイダイビングで登場というとてもクレイジーなデモストレーションが行われました。


そこで用いられたのがGlassになります。


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


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





このデモストレーションは今日一番の盛り上がりを見せました!


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





そのままGlassの発表があり、


Google IO出席者のみにプレオーダー可能の発表がありました。


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


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





What's New in Android?


Jelly Beanで主に更新のあった機能の紹介、実装方法などが紹介されました。


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





ここからは各ブースを紹介していきます。


Google+


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





Google TV


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





Google Maps


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





Chrome


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





各ブース


様々な模様のドロイド君の周りに、設定されています。


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


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


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


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





Glass


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


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


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


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


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


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





会場の様子


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


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








最後に、Glassを貸してほしいと懇願しましたが、


デモストレーションはさせてもらえませんでした。


届き次第、レビューさせてもらいます!





今年もGoogle IOはまだまだ続きます。









文責:カスタマー開発部 大阪開発課 藤田 竜史





Google IO 2012 ~1日目レビュー~



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


今年もやってきましたGoogle IO。


開催場所は昨年と同じMoscone Center Westです。


1日目のレポートを掲載します。写真などから今年の会場の雰囲気などが伝われば幸いです。





開場


AM7:00過ぎには会場に着きましたが、既に長蛇の列が並んでいました。


その会場の周りにはドロイド君が踊り走り回ってます。


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


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







朝食


基調講演(キーノート)が始まるまで、朝食を食べました。


たくさんのパンが用意されており、ゆで卵がすごく身にしみました。


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


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





基調講演(キーノート)


基調講演会場への込み具合です。


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


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





Google IO 開幕!


カウントダウンとともに開幕です!


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





Jelly Beanの公開


Android 4.1のJelly Beanが公開されました!


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





その中でも、Offline Voice Typingの新機能の発表に開場が盛大に盛り上がりました!


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





PDK(Platform Development Kit)の発表


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


その他の詳しい新機能の内容は以下をご覧ください。


Android 4.1 (Jelly Bean) の新機能・改善点一覧(前編)


Android 4.1 (Jelly Bean) の新機能・改善点一覧(後編)





Nexus 7の発表


Asusが開発担当をしたNexus 7の発表がありました。


Jelly Beanが搭載されています。


このNexus7はお土産としていただきました。


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





Nexus Q


形は写真の通り小さな球場のものとなっていて、


ホームユースを想定したスモールコンピュータとのこと。


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





Glassのデモストレーション


実際に、サンフランシスコの上空と会場でカメラ共有を行い、


スカイダイビングで登場というとてもクレイジーなデモストレーションが行われました。


そこで用いられたのがGlassになります。


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


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





このデモストレーションは今日一番の盛り上がりを見せました!


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





そのままGlassの発表があり、


Google IO出席者のみにプレオーダー可能の発表がありました。


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


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





What's New in Android?


Jelly Beanで主に更新のあった機能の紹介、実装方法などが紹介されました。


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





ここからは各ブースを紹介していきます。


Google+


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





Google TV


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





Google Maps


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





Chrome


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





各ブース


様々な模様のドロイド君の周りに、設定されています。


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


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


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


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





Glass


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


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


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


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


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


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





会場の様子


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


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








最後に、Glassを貸してほしいと懇願しましたが、


デモストレーションはさせてもらえませんでした。


届き次第、レビューさせてもらいます!





今年もGoogle IOはまだまだ続きます。









文責:カスタマー開発部 大阪開発課 藤田 竜史







前エントリからの続きです。


新しい入力タイプと能力


f:id:bs-android:20120628051255p:image:w201:right


デバイスの追加と除去の検知



  • アプリケーションはUSBやBluetooth、その他の接続タイプの入力デバイスがアタッチされた時に通知を受けることができるようになった


入力デバイスの能力の問い合わせ



  • Android 4.1は入力デバイスが接続され使用可能になったことをアプリやゲーム知らせるAPIを含んでいる

  • アプリは現在アタッチされている入力デバイスを管理し、その能力を知る


入力デバイスのバイブレータの制御



  • アタッチされた入力デバイスに関係している任意のバイブレータサービスを関連付ける





アニメーションとグラフィックス


Vsync for apps



  • 全ての描画やアニメーションのvsyncのタイミング拡張することで、UIのフレームレートを保証しスムーズに動作させることができるようになった

  • Choreographerクラスを使うと次のvsyncフレームでinvalidationのリクエストを送ることができる(アプリがアニメーションフレームワークを使用しない場合に、アニメーションをスケジューリングする良い方法)

  • さらに高度な使い方として、次のフレームの実行時にChoreographerクラスのコールバックをポストすることが可能である


新しいアニメーションのアクションと遷移のタイプ



  • アニメーションフレームワークは、ViewPropertyAnimator が動作している時に開始と終了を定義することができ、アプリ中の他のアニメやアクションと同期するのに役立つ

  • アクションはどんな実行オブジェクトにも適用可能。例えば、前のアニメーションが終了したら他のアニメーションを開始させることが可能。

  • アニメーション中のレイヤーをViewPropertyAnimatorが使用するように定義可能。以前はアニメーションを開始する前にセットアップし、アニメーションを終了する時にレイヤーを取り除くためにonAnimationEnd() を使用していた。今は、ViewPropertyAnimatorのwithLayer() メソッドを単純に呼ぶだけ済む。

  • ViewGroupのすべてのレイアウトの変更に応じて、LayoutTransitionの中の新しい遷移のタイプによってアニメーションを自動化する







新しいタイプの接続


Android Beam



  • Android 4.1 では、Bluetoothのデータ転送をテコ入れすることで、Android Beamでより簡単に画像・ビデオ・その他のペイロードをシェアすることが可能となった。

  • ユーザが転送のトリガを引くと、Android Beamは NFC から Bluetoothへハンドオーバーし、ある端末から別の端末へのファイル転送を簡単に行うことができる。


Wi-fi ネットワークサービスのディスカバリ



  • マルチキャストDNSベースのサービスディスカバリをサポート

  • アプリはWi-Fiネットワーク上のピアデバイス(モバイルデバイス、プリンタ、カメラ、メディアプレイヤー他)を発見し、提供されているサービスに接続

  • クロスプラットフォームやマルチプレイヤーのゲームをビルドするために、Wi-Fiネットワークサービスディスカバリの恩恵を受ける

  • サービスディスカバリAPIを使うとアプリは様々な種類のサービスの生成と登録、他のNSDが有効なデバイスの発見が可能。

  • サービスは人間が判読可能な文字列の識別子を使ってネットワークにマルチキャストされて知らされ、ユーザは簡単にサービスの種類を識別することができる。

  • コンシューマデバイスは、ローカルのWi-Fiネットワークに接続されているデバイスから使用可能なサービスをスキャンし、発見するためにAPIを使用する。発見後はソケット通信によってIPアドレスとポートをサービスで解決。

  • APIを使用して、ウェブカメラやプリンタやWi-Fiのピアツーピア接続をサポートしたモバイルデバイスに接続するようなアプリを作成することが可能。


Wifi-Direct サービスのディスカバリ



  • Android 4.1で pre-associatedサービスディスカバリをサポートするAPIを追加。

  • pre-associatedサービスディスカバリにより、接続前に近くのデバイスからサポートしているサービスについてより有用な情報を取得する

  • アプリは特定のサービスの発見を始めることができ、フィルタリングすることもできる。

  • Wi-Fi ダイレクトサービスディスカバリにより、ダイレクトにp2pのみで接続できるのでインターネットやモバイルネットワークを使わずに、写真・ビデオ・ゲーム・スコア他をシェアするマルチプレイヤーゲームやアプリを作ることが可能となる


ネットワークのバンド幅の管理



  • モバイルホットスポットなどへのテザリングを含む、帯域が制限されているネットワークに接続しているデバイスのデータ使用量を管理することが可能

  • アプリはダウンロードを始める前に現在のネットワークが制限されているかどうかを調べることが可能


新しいメディアの能力


メディアコーデックのアクセス



  • プラットフォームのハードウェアとソフトウェアコーデックの低レベルアクセスを提供する

  • アプリはデバイスで使用可能な低レベルメディアコーデックを見つけることができ、必要に応じて使用することが可能

  • デバイスがDRMで保護されているコンテンツを再生できるかどうかを調べることも可能


USB オーディオ



  • USBオーディオ出力のサポートにより、サードパーティーがAndroidデバイスのインタフェースを有するオーディオドックのようなハードウェアを作成する

  • この機能は、ADKを使用することで全てのデベロッパーが独自のハードウェアを作成可能なことを意味する


オーディオレコードトリガー



  • オーディオ再生トラックの完了に基づいて、オーディオ録音をトリガする

  • ユーザーが音声を記録するために話し始める際に、ユーザーにキューの合図を出すようなシチュエーションで有効


マルチチャネルオーディオ



  • Android 4.1はHDMIポートを通じて、マルチチャネルオーディオハードウェアを持つデバイス上で、マルチチャネルオーディオをサポートする

  • もしデバイスがサポートするハードウェアを有していない場合は、Androidは自動的にチャネルをダウンミックスする(大抵はステレオ)

  • Android 4.1では、AAC 5.1 オーディオのエンコード/デコードをサポートする


オーディオ処理



  • 開発者は、次のような目的のために記録されているオーディオに前処理を施す事が可能


    • スピーチ録音品質を改善するための雑音抑制

    • 反響音のエコーキャンセル

    • 一貫しないボリューム・レベルのための自動利得制御




オーディオの連結



  • メディアプレイヤーは、休止のないオーディオを再生するためにストリームを連結することができる。

  • 音楽をシームレスに再生するようなシーンで使用する場合に便利


メディアルーター



  • 新しいAPIのMediaRouter, MediaRouteActionProvider, MediaRouteButtonは、標準的なメカニズムとどこでメディアを再生するかを選択させるためのUIを提供する

  • 有線のヘッドセット、A2DPのBluetoothのヘッドセットとスピーカーのビルトインをサポート

  • 自身のアプリのための独自ルートオプションを追加することが可能。


レンダースクリプト計算




  • Android 4.1 はレンダースクリプトの計算が拡張され、より柔軟になった。

  • レンダースクリプトの計算中にテクスチャーのサンプルが可能

  • 新しいpragmaは、スクリプトによって要求される浮動小数点の精度を定義を可能にする

  • レンダースクリプト計算スクリプトをx86ベースのエミュレータとハードウェアデバイス上でデバッグすることが可能

  • 単一のレンダースクリプトソースファイル中で、複数のルートスタイルのカーネルを定義することが可能


AndroidのブラウザとWebView


Android 4.1では、AndroidブラウザとWebViewに下記の拡張を含んでいる:




  • HTML5ビデオのユーザーエクスペリエンスの向上(タッチtoプレイ/ポーズとインラインからフルスクリーンモードへのスムーズな遷移を含む)

  • スクロールとズームのパフォーマンス向上のため、レンダリングスピードとメモリ使用量の削減するように改善

  • HTML5/CSS3/Canvasのアニメーションパフォーマンスの改善

  • テキスト入力の改善

  • JavaScriptエンジン(V8)のパフォーマンスの改善のための更新

  • HTML5メディアキャプチャー仕様の更新 (input type=file要素の"capture"属性)


Google APIsとサービス


Androidの能力をさらに拡張するために、Androidのためのいくつかの新しいサービスが利用可能です。


Google クラウドメッセージング for Android



  • Google クラウドメッセージング (GCM) は同期を専有せずに、Android端末間でショートメッセージデータを送信する仕組み

  • GCMはキューイングされたメッセージの詳細を扱い、ターゲットのAndroidデバイスに効果的に配信する

  • メッセージのマルチキャストをサポートしており、単一リクエストにおいて1000接続まで可能

  • 最大4Kまでのデータの送信が可能


アプリの暗号化



  • Android 4.1から、Google Playは全ての有料アプリが端末に配信され格納される前にデバイス特有のキーでassetsの暗号化することでアプリケーションの保護を行う


Smart App Updates



  • Smart App Updatesは デバイスのアップデートの配信をより良い方法で提供するGoogle Playの新しい機能

  • デベロッパーがアップデートを公開したら、Google PlayはAPK全体ではなく、変更されたビットだけを配信する

  • これは大抵の場合、アップデートの軽量化になり、ダウンロードの高速化とバッテリーのセーブ、ユーザーのモバイルデータプランの使用量を抑えることができる

  • 平均してsmart app updateは全体のAPKの約1/3のサイズになる


Google Playサービス(近日公開)



  • Google Playサービスは、Google Playを通じて配信されるアプリの中に Google+や認証のようなGoogleのサービスを統合するのに役立つ

  • Google Playサービスは、エンドユーザーのデバイスに自動的に提供されるため、デベロッパーは薄いクライアントライブラリをアプリ中に含めるだけで良い



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





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



前エントリからの続きです。


新しい入力タイプと能力


f:id:bs-android:20120628051255p:image:w201:right


デバイスの追加と除去の検知



  • アプリケーションはUSBやBluetooth、その他の接続タイプの入力デバイスがアタッチされた時に通知を受けることができるようになった


入力デバイスの能力の問い合わせ



  • Android 4.1は入力デバイスが接続され使用可能になったことをアプリやゲーム知らせるAPIを含んでいる

  • アプリは現在アタッチされている入力デバイスを管理し、その能力を知る


入力デバイスのバイブレータの制御



  • アタッチされた入力デバイスに関係している任意のバイブレータサービスを関連付ける





アニメーションとグラフィックス


Vsync for apps



  • 全ての描画やアニメーションのvsyncのタイミング拡張することで、UIのフレームレートを保証しスムーズに動作させることができるようになった

  • Choreographerクラスを使うと次のvsyncフレームでinvalidationのリクエストを送ることができる(アプリがアニメーションフレームワークを使用しない場合に、アニメーションをスケジューリングする良い方法)

  • さらに高度な使い方として、次のフレームの実行時にChoreographerクラスのコールバックをポストすることが可能である


新しいアニメーションのアクションと遷移のタイプ



  • アニメーションフレームワークは、ViewPropertyAnimator が動作している時に開始と終了を定義することができ、アプリ中の他のアニメやアクションと同期するのに役立つ

  • アクションはどんな実行オブジェクトにも適用可能。例えば、前のアニメーションが終了したら他のアニメーションを開始させることが可能。

  • アニメーション中のレイヤーをViewPropertyAnimatorが使用するように定義可能。以前はアニメーションを開始する前にセットアップし、アニメーションを終了する時にレイヤーを取り除くためにonAnimationEnd() を使用していた。今は、ViewPropertyAnimatorのwithLayer() メソッドを単純に呼ぶだけ済む。

  • ViewGroupのすべてのレイアウトの変更に応じて、LayoutTransitionの中の新しい遷移のタイプによってアニメーションを自動化する







新しいタイプの接続


Android Beam



  • Android 4.1 では、Bluetoothのデータ転送をテコ入れすることで、Android Beamでより簡単に画像・ビデオ・その他のペイロードをシェアすることが可能となった。

  • ユーザが転送のトリガを引くと、Android Beamは NFC から Bluetoothへハンドオーバーし、ある端末から別の端末へのファイル転送を簡単に行うことができる。


Wi-fi ネットワークサービスのディスカバリ



  • マルチキャストDNSベースのサービスディスカバリをサポート

  • アプリはWi-Fiネットワーク上のピアデバイス(モバイルデバイス、プリンタ、カメラ、メディアプレイヤー他)を発見し、提供されているサービスに接続

  • クロスプラットフォームやマルチプレイヤーのゲームをビルドするために、Wi-Fiネットワークサービスディスカバリの恩恵を受ける

  • サービスディスカバリAPIを使うとアプリは様々な種類のサービスの生成と登録、他のNSDが有効なデバイスの発見が可能。

  • サービスは人間が判読可能な文字列の識別子を使ってネットワークにマルチキャストされて知らされ、ユーザは簡単にサービスの種類を識別することができる。

  • コンシューマデバイスは、ローカルのWi-Fiネットワークに接続されているデバイスから使用可能なサービスをスキャンし、発見するためにAPIを使用する。発見後はソケット通信によってIPアドレスとポートをサービスで解決。

  • APIを使用して、ウェブカメラやプリンタやWi-Fiのピアツーピア接続をサポートしたモバイルデバイスに接続するようなアプリを作成することが可能。


Wifi-Direct サービスのディスカバリ



  • Android 4.1で pre-associatedサービスディスカバリをサポートするAPIを追加。

  • pre-associatedサービスディスカバリにより、接続前に近くのデバイスからサポートしているサービスについてより有用な情報を取得する

  • アプリは特定のサービスの発見を始めることができ、フィルタリングすることもできる。

  • Wi-Fi ダイレクトサービスディスカバリにより、ダイレクトにp2pのみで接続できるのでインターネットやモバイルネットワークを使わずに、写真・ビデオ・ゲーム・スコア他をシェアするマルチプレイヤーゲームやアプリを作ることが可能となる


ネットワークのバンド幅の管理



  • モバイルホットスポットなどへのテザリングを含む、帯域が制限されているネットワークに接続しているデバイスのデータ使用量を管理することが可能

  • アプリはダウンロードを始める前に現在のネットワークが制限されているかどうかを調べることが可能


新しいメディアの能力


メディアコーデックのアクセス



  • プラットフォームのハードウェアとソフトウェアコーデックの低レベルアクセスを提供する

  • アプリはデバイスで使用可能な低レベルメディアコーデックを見つけることができ、必要に応じて使用することが可能

  • デバイスがDRMで保護されているコンテンツを再生できるかどうかを調べることも可能


USB オーディオ



  • USBオーディオ出力のサポートにより、サードパーティーがAndroidデバイスのインタフェースを有するオーディオドックのようなハードウェアを作成する

  • この機能は、ADKを使用することで全てのデベロッパーが独自のハードウェアを作成可能なことを意味する


オーディオレコードトリガー



  • オーディオ再生トラックの完了に基づいて、オーディオ録音をトリガする

  • ユーザーが音声を記録するために話し始める際に、ユーザーにキューの合図を出すようなシチュエーションで有効


マルチチャネルオーディオ



  • Android 4.1はHDMIポートを通じて、マルチチャネルオーディオハードウェアを持つデバイス上で、マルチチャネルオーディオをサポートする

  • もしデバイスがサポートするハードウェアを有していない場合は、Androidは自動的にチャネルをダウンミックスする(大抵はステレオ)

  • Android 4.1では、AAC 5.1 オーディオのエンコード/デコードをサポートする


オーディオ処理



  • 開発者は、次のような目的のために記録されているオーディオに前処理を施す事が可能


    • スピーチ録音品質を改善するための雑音抑制

    • 反響音のエコーキャンセル

    • 一貫しないボリューム・レベルのための自動利得制御




オーディオの連結



  • メディアプレイヤーは、休止のないオーディオを再生するためにストリームを連結することができる。

  • 音楽をシームレスに再生するようなシーンで使用する場合に便利


メディアルーター



  • 新しいAPIのMediaRouter, MediaRouteActionProvider, MediaRouteButtonは、標準的なメカニズムとどこでメディアを再生するかを選択させるためのUIを提供する

  • 有線のヘッドセット、A2DPのBluetoothのヘッドセットとスピーカーのビルトインをサポート

  • 自身のアプリのための独自ルートオプションを追加することが可能。


レンダースクリプト計算




  • Android 4.1 はレンダースクリプトの計算が拡張され、より柔軟になった。

  • レンダースクリプトの計算中にテクスチャーのサンプルが可能

  • 新しいpragmaは、スクリプトによって要求される浮動小数点の精度を定義を可能にする

  • レンダースクリプト計算スクリプトをx86ベースのエミュレータとハードウェアデバイス上でデバッグすることが可能

  • 単一のレンダースクリプトソースファイル中で、複数のルートスタイルのカーネルを定義することが可能


AndroidのブラウザとWebView


Android 4.1では、AndroidブラウザとWebViewに下記の拡張を含んでいる:




  • HTML5ビデオのユーザーエクスペリエンスの向上(タッチtoプレイ/ポーズとインラインからフルスクリーンモードへのスムーズな遷移を含む)

  • スクロールとズームのパフォーマンス向上のため、レンダリングスピードとメモリ使用量の削減するように改善

  • HTML5/CSS3/Canvasのアニメーションパフォーマンスの改善

  • テキスト入力の改善

  • JavaScriptエンジン(V8)のパフォーマンスの改善のための更新

  • HTML5メディアキャプチャー仕様の更新 (input type=file要素の"capture"属性)


Google APIsとサービス


Androidの能力をさらに拡張するために、Androidのためのいくつかの新しいサービスが利用可能です。


Google クラウドメッセージング for Android



  • Google クラウドメッセージング (GCM) は同期を専有せずに、Android端末間でショートメッセージデータを送信する仕組み

  • GCMはキューイングされたメッセージの詳細を扱い、ターゲットのAndroidデバイスに効果的に配信する

  • メッセージのマルチキャストをサポートしており、単一リクエストにおいて1000接続まで可能

  • 最大4Kまでのデータの送信が可能


アプリの暗号化



  • Android 4.1から、Google Playは全ての有料アプリが端末に配信され格納される前にデバイス特有のキーでassetsの暗号化することでアプリケーションの保護を行う


Smart App Updates



  • Smart App Updatesは デバイスのアップデートの配信をより良い方法で提供するGoogle Playの新しい機能

  • デベロッパーがアップデートを公開したら、Google PlayはAPK全体ではなく、変更されたビットだけを配信する

  • これは大抵の場合、アップデートの軽量化になり、ダウンロードの高速化とバッテリーのセーブ、ユーザーのモバイルデータプランの使用量を抑えることができる

  • 平均してsmart app updateは全体のAPKの約1/3のサイズになる


Google Playサービス(近日公開)



  • Google Playサービスは、Google Playを通じて配信されるアプリの中に Google+や認証のようなGoogleのサービスを統合するのに役立つ

  • Google Playサービスは、エンドユーザーのデバイスに自動的に提供されるため、デベロッパーは薄いクライアントライブラリをアプリ中に含めるだけで良い



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







f:id:bs-android:20120628021214p:image


Google I/O 2012でAndroid 4.1(通称:JellyBean)が公開されましたので、Android 4.1で導入された新しい機能や改善された点をご紹介します。


尚、本エントリは下記のサイトを参考にしました。




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




  • Android 描画タイミング、タッチレイテンシの最適化

  • グラフィックパイプライン中にトリプルバッファリング追加

  • パフォーマンス検証ツール systrace の追加(Tools R20以上で使用可能)


アクセシビリティの拡張




  • ジェスチャー機能の見直しとアクセシビリティサービス用の新しいAPIの提供

  • アクセシビリティ設定中に独自チュートリアルのリンクが張れるようになった

  • 標準ビューコンポーネントはコードの変更は一切不要、カスタムビューコンポーネントはノードAPIを適用するだけ


国際ユーザのサポート


f:id:bs-android:20120628033344p:image:w250:right


双方向テキストと他言語サポート



  • TextViewとEditTextで双方向テキスト("左から右に表示"または"右から左に表示")をサポート

  • アラビア文字、ヘブライ文字とフォントが使用可能に

  • その他、新しい言語サポートに含まれる物


    • インド語を追加:カナラ文字、テルグ文字、マラヤーラム文字

    • ユニコード6.0の絵文字

    • 日本人向けの表記のサポート

    • TextViewのアラビア文字に加えて、WebView向けに表記を最適化

    • WebViewの縦書き、ルビのサポート

    • 全てのフォントで合成強調文字が使用可能




ユーザがインストール可能なキーマップ



  • 海外向けキーボードや特別なレイアウトのキーボードマップをユーザがインストールできるようになった

  • ユーザはショートカット(CTRL+Space)を使用してキーボードをスイッチすることが可能

  • デベロッパーは追加のキーマップアプリを公開することが可能。APKはキーボードのレイアウトリソースを含む。

  • 追加キーボードを提供するために最適なブロードキャストレシーバとして、マニフェストにACTION_QUERY_KEYBOARD_LAYOUTSを定義することができる。







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


f:id:bs-android:20120628030833p:image:w201:right


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を使用すべき


(後編へ続きます)



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





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



f:id:bs-android:20120628021214p:image


Google I/O 2012でAndroid 4.1(通称:JellyBean)が公開されましたので、Android 4.1で導入された新しい機能や改善された点をご紹介します。


尚、本エントリは下記のサイトを参考にしました。




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




  • Android 描画タイミング、タッチレイテンシの最適化

  • グラフィックパイプライン中にトリプルバッファリング追加

  • パフォーマンス検証ツール systrace の追加(Tools R20以上で使用可能)


アクセシビリティの拡張




  • ジェスチャー機能の見直しとアクセシビリティサービス用の新しいAPIの提供

  • アクセシビリティ設定中に独自チュートリアルのリンクが張れるようになった

  • 標準ビューコンポーネントはコードの変更は一切不要、カスタムビューコンポーネントはノードAPIを適用するだけ


国際ユーザのサポート


f:id:bs-android:20120628033344p:image:w250:right


双方向テキストと他言語サポート



  • TextViewとEditTextで双方向テキスト("左から右に表示"または"右から左に表示")をサポート

  • アラビア文字、ヘブライ文字とフォントが使用可能に

  • その他、新しい言語サポートに含まれる物


    • インド語を追加:カナラ文字、テルグ文字、マラヤーラム文字

    • ユニコード6.0の絵文字

    • 日本人向けの表記のサポート

    • TextViewのアラビア文字に加えて、WebView向けに表記を最適化

    • WebViewの縦書き、ルビのサポート

    • 全てのフォントで合成強調文字が使用可能




ユーザがインストール可能なキーマップ



  • 海外向けキーボードや特別なレイアウトのキーボードマップをユーザがインストールできるようになった

  • ユーザはショートカット(CTRL+Space)を使用してキーボードをスイッチすることが可能

  • デベロッパーは追加のキーマップアプリを公開することが可能。APKはキーボードのレイアウトリソースを含む。

  • 追加キーボードを提供するために最適なブロードキャストレシーバとして、マニフェストにACTION_QUERY_KEYBOARD_LAYOUTSを定義することができる。







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


f:id:bs-android:20120628030833p:image:w201:right


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を使用すべき


(後編へ続きます)



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





2012年6月25日月曜日



Want to use iCloud's key-value store, NSUbiquitousKeyValueStore, to synchronize data in your app between devices?
 
I've started using NSUbiquitousKeyValueStore in my game "Harigana" but noticed a flaw that I would like to share. Nothing much really, just a small tip.

The recommendation is that you early in your app start cycle call

[[NSUbiquitousKeyValueStore defaultStore] synchronize];

and then start listen to the notification NSUbiquitousKeyValueStoreDidChangeExternallyNotification.

This will call your app when the store is changed on other devices. However, this seems to be reliable only if the app is active at the time the other device changes a value. If the app is not running at the time the store is updated you might not get notification when you wake the app up. Sometimes it works, sometimes not, according to my experience.

Therefor, to be sure you have the latest value from iCloud, force a synchronization at app startup/wakeup. Simply iterate through all values in your NSUbiquitousKeyValueStore and overwrite the local value with the value from the store. Of course, this requires that when you store the values, always store the them in both iCloud's key-value store and the user defaults, otherwise you might overwrite users hard earned points with something that could be zero. iOS will take care of everything for you under the hood, whether the user has activated iCloud or not.

Remember, the truth is in the Cloud.

iCloud key-value store



Want to use iCloud's key-value store, NSUbiquitousKeyValueStore, to synchronize data in your app between devices?
 
I've started using NSUbiquitousKeyValueStore in my game "Harigana" but noticed a flaw that I would like to share. Nothing much really, just a small tip.

The recommendation is that you early in your app start cycle call

[[NSUbiquitousKeyValueStore defaultStore] synchronize];

and then start listen to the notification NSUbiquitousKeyValueStoreDidChangeExternallyNotification.

This will call your app when the store is changed on other devices. However, this seems to be reliable only if the app is active at the time the other device changes a value. If the app is not running at the time the store is updated you might not get notification when you wake the app up. Sometimes it works, sometimes not, according to my experience.

Therefor, to be sure you have the latest value from iCloud, force a synchronization at app startup/wakeup. Simply iterate through all values in your NSUbiquitousKeyValueStore and overwrite the local value with the value from the store. Of course, this requires that when you store the values, always store the them in both iCloud's key-value store and the user defaults, otherwise you might overwrite users hard earned points with something that could be zero. iOS will take care of everything for you under the hood, whether the user has activated iCloud or not.

Remember, the truth is in the Cloud.
Related Posts Plugin for WordPress, Blogger...