サンプルコード WiFiDirectDemo


WiFiDirectDemo – Wi-Fi Direct Demo の日本語訳
これは Wi-Fi Direct API を利用して、ピアツーピアのネットワーク接続を作る方法を示すデモアプリケーションです。
このアプリケーションは、接続完了した後に、ギャラリーからjpeg画像を転送することができます。
このデモアプリケーションのソースコードは、Wi-Fi Direct API を利用して、3つの重要な事柄を達成する方法を示しています。
・接続相手 (peer) を発見する。
・Wi-Fi Direct API を利用して接続する。
・ファイルを転送するためにTCPソケットを開くことができるように、post connection に関するグループの詳細を見つける。

下記のアプリケーションが含まれています。
・WiFiDirectActivity
メインの Activityです。 アプリのUIとピアのライフサイクルを処理する2つのフラグメントが含まれています。 また、Wi-Fi Direct に関連するイベントに対するブロードキャストレシーバを登録します。

・WiFiDirectBroadcastReceiver
BroadcastReceiver です。 Wi-Fi Direct 関連するイベントをリッスンし、WiFiDirectActivity にそれらを渡し、必要なアクションに対する fragments を持つ。

・DeviceListFragment
ListFragment です。 利用可能なピアとそのステータスが表示します。

・DeviceDetailFragment
Fragment です。 選択したデバイスの詳細を表示し、接続、切断、およびデータ転送を駆動します。

・FileTransferService
IntentService です。 TCPソケットを使用して、アプリケーションからファイル転送を実行します。

あなたが Wi-Fi Direct API を使用するアプリケーションを開発している場合、Android 4.0(API 14)以降のバージョンのプラットフォームでのみサポートされていることに注意してください。
アプリケーションが Wi-Fi Direct モードをサポートする機能を持つしているデバイスにのみインストールすることを保証するために、Android マーケットに公開する前に、アプリケーションのマニフェストに次の内容を追加してください。

・<uses-sdk android:minSdkVersion=”14″ />
アプリケーションは Android 4.0 以上が必要である Android マーケットとプラットフォームに示します。
詳細については、API Levels および <uses-sdk> 要素のドキュメントをご覧ください。

Wi-Fi Direct モードをサポートしていない端末に、あなたのアプリケーションをインストールしないように、Android マーケットに通知するのは、アプリケーションのマニフェストに以下を追加してください

・<uses-feature android:name=”android.hardware.wifi.direct” />
あなたのアプリケーションが Wi-Fi Direct API を使用していることを、Androidマーケットに通知します。 Wi-Fi Direct モードをサポートしていない端末に、あなたのアプリケーションをインストールしないように、Android マーケットに通知するのは、宣言に android:required 属性が含まれている必要があります。 他の <uses-feature> 宣言もあなたの実装によっては必要かもしれません。 詳細は、 <uses-feature> 要素のドキュメントを参照してください。

Wi-Fi Direct API の使用方法の詳細については、 android.net.wifi.p2p のドキュメントを参照してください

動作確認
Wifi機能がないエミュレータなので、動作確認はできず。

追記 実機で動作確認しました

ソースコード
5つのファイルがある。

・WiFiDirectActivity
Activity を継承し WifiP2pManager.ChannelListener (API 14) と DeviceListFragment.DeviceActionListener (自作) を実装する。
メインの Activityです。

・WiFiDirectBroadcastReceiver
BroadcastReceiver を継承し WifiP2pDevice (API 14) を使用する。
Wi-Fi Direct 関連するイベントを受取る BroadcastReceiver です。

・DeviceListFragment
ListFragment を継承し WifiP2pManager.PeerListListener (API 14) を実装する
利用可能なピアを表示する ListFragment です。

・DeviceDetailFragment
Fragment を継承し WifiP2pManager.ConnectionInfoListener (API 14) を実装する。
選択したデバイスの詳細を表示するなどの Fragment です。

・FileTransferService
IntentService を継承する。
ファイル転送を実行する IntentService です。

関連記事
サンプルコード ActionBarCompat
サンプルコード AndroidBeamDemo
サンプルコード SampleSpellCheckerService
サンプルコード TtsEngine
サンプルコード VoicemailProviderDemo
・サンプルコード WiFiDirectDemo


サンプルコード VoicemailProviderDemo


VoicemailProviderDemo – Voicemail Provider Demo の日本語訳
これは、新しいボイスメールの記録を挿入するために、ボイスメールのコンテンツプロバイダのAPIを使用する方法を示す、簡単なサンプルアプリケーションです。
このアプリケーションは AddVoicemailActivity を含んでいます。
この Activity は、ユーザーがボイスメールの詳細項目を入力したり、ボイスメールの音声を録音できます。
ユーザが “Send” ボタンを押すと、ボイスメールのコンテンツプロバイダに格納できます。
現実の世界では、同様のアプリケーションは、遠隔地のボイスメールサーバからボイスメールをダウンロードできたり、ボイスメールをコンテンツプロバイダを使用してローカルな領域に保管することができます。
プラットフォームは、通知したり、ボイスメールをレンダリングすることの世話をするだろう。

次のインタフェースは、特に重要です。
・VoicemailProviderHelper と、それを実装した VoicemailProviderHelpers
このインタフェースは、ボイスメールのコンテンツプロバイダとその使用方法によって公開される様々な分野の優れたデモンストレーションを提供します。

・VoicemailI と、それを実装した VoicemailImpl
このインタフェースは、ボイスメールのコンテンツプロバイダーの中で最も重要なフィールドの構造化されたビューを提供します。

動作確認
エミューレータのなので、動作確認は割愛します。

追記: 実機で動作確認しました

ソースコード
14個のファイルがある。

(1) AddVoicemailActivity.java
ユーザがボイスメールのデータをボイスメール・コンテンツ・プロバイダーに入力する
という機能を持ったシンプルな Activity です。

(2) Voicemail.java
ボイスメール・コンテンツ・プロバイダーに格納されている1つのボイスメールを表す interface です。

(3) VoicemailImpl.java
Voicemail を実装して、ボイスメールを表わすシンプルで永続的なデータのオブジェクトです。

(4) VoicemailFilter.java
ボイスメール・ヘルパーを使用して、ボイスメールの問合せ (query) に対して、フィルタを適用するための interface オブジェクトです。

(5) VoicemailFilterFactory.java
様々なフィルタリングの要望に対して、VoicemailFilter オブジェクトを Factory クラスです。
VoicemailContract.Voicemails (API 14) を使用している。

(6) VoicemailProviderHelper.java
ボイスメール・コンテンツ・プロバイダー内のボイスメールを操作するためのシンプルな interface です。

(7) VoicemailProviderHelpers.java
VoicemailProviderHelper インターフェース の実装の集まりです。
VoicemailContract.Voicemails (API 14) を使用している。

(8) injector.java
共通の ui 要素の注入 (injection) のための非常に軽量なフォームです。

(9) InjectView.java
Activity の項目が注入可能 (injectable) となるように、このアノテーションを使用する

(10) Logger.java
TAG 項目を抽象化することで、Android logging クラス の使用を簡素化する。

(11) DialogHelper.java
共通のダイアログを表示する interface です。

(12) DialogHelperImpl.java
DialogHelper を実装して、 Activity に対してダイアログを表示する。

(13) CloseUtils.java
io ストリームとデータベース・カーソルをクローズするユーティリティ・メソッドです。

(14) DbQueryUtils.java
データベースへの問合せ (query) の文字列の組立てを補助するための静的メソッドです。

関連記事
サンプルコード ActionBarCompat
サンプルコード AndroidBeamDemo
サンプルコード SampleSpellCheckerService
サンプルコード TtsEngine
・サンプルコード VoicemailProviderDemo
サンプルコード WiFiDirectDemo


GDD Boot Camp


2011年10月29日(土) GDD (Google Developer Day) Boot Camp に参加した。
Boot Camp は GTUG (Google Technology User Group) が主催する初心者向けの勉強会。
togetterまとめ

Android : Fragment を使ってみよう あんざいゆき
発表資料: Fragmentを使ってみよう
Fragment は、Android 3.0 から追加されたタブレット用の機能です。
1つの画面に中に左右2つ異なるレイアウト画面を持つものです。
いわゆる2ペイン(pane)です。
従来の縦長の携帯画面でも利点がある。
Fragment は、再利用可能なUIコンポーネントです。
従来は、ロジックは Activity に持たせるか、カスタム View に持たせるしかなかった。
Fragment を使うことで、ロジックを Activity と View から切り離すことが出来る。
Compatibility Package を使うと、3.0 以前でも Fragment が使えます。
感想: ポイントを押さえた解説で分かりやすかった。

Google SketchUp : モデリングの初歩 田中雅子
SketchUp は、パソコン用の3D3モデリングのソフトウェアです。
SketchUp の実習。
画面に表示されている人物は スーザン で、開発者らしい。
スーザンの家を作って塀で囲む。
Push Pull という機能で、平面が立体になるのは、面白い。
参考: Getting started with Google SketchUp
感想: 初めてだったので、まごつくところもあったが。 少し練習すれば、使えるようになりそう。

昼休み
Google さんのおごりです。
日本橋 大増 の桔梗。

Android : Spike WebView & Tough ICS 江川崇
発表資料: Spike WebView & Tough ICS
Android 4.0 Galaxy Nexus (先日発表されたばかり) の実機デモ
ハードボタンが無くなった。
メニューは action bar に表示される。
4.0 以前用のアプリでは右下にメニューアイコンが表示される。
WebView の実習。
2.3.3 Gingerbread ベースです。
テキスト入力エリアに入力したURLのページを表示する。
Googleの検索ページがちゃんと動くようにする。
キーワードをハイライトする。
URL入力エリアを Search Box に変える。
感想: 中級者向けですね。 何度かアプリを作ったことがないとついていくのが難しい感じ。

Google+ API の体験と Hangouts の紹介 田中洋一郎
発表資料: Google+ APIの体験とHangoutsの紹介
Google+ は Mixi や Facebook のようなソーシャルサービスです。
Google+ API の実習。
API key の取得と、それを使ったデータ取得。
OAuth 2.0 の解説と、それを使ったデータ取得。
Chrome extension によるデータ取得。
Chrome extension は、少し複雑な仕組みです。
最終的に Cookie に Access token が格納される。
Hangouts API (ビデオチャット) の実習。
API は 開発者向けのベータ版です。
チャットにガジェット(ミニアプリ)が追加できる。
隣の人と二人一組でチャットします。
感想: 資料がしっかり出来ていて、初めてでもうまくいった。

懇親会
Google さんのおごりです。
ピザが余ったが、ビールが足りなかった。


サンプルコード TtsEngine


TtsEngine – Text To Speech Engine の日本語訳
このサンプルでは、​​ユーザーが端末にインストールできるような テキスト音声変換エンジン (Text To Speech Engine) を作成する方法を示します。
このアプリケーションには、1つのサービスと2つのアクティビティが含まれています。
この API は、Android 4.0(API 14)以降のバージョンのプラットフォームでのみサポートされていることに注意してください。

・RobotSpeakEngine
特定の言語の個々のアルファベットに対応する、所定の周波数の方形波を生成することで、文章から音声を変換するシンプルなテキスト音声変換エンジンです。
これは、ロボットを除くと会話として十分ではないが、テキスト音声変換エンジンのフレームワークとしてクラス化することによって、新しいテキスト音声変換 API としてのすべての要素を持っている。

・CheckVoiceData
すべての音声関連のデータがインストールされ使用できるかをチェックする activity です。

・RobotSpeakSettings
様々なエンジンのパラメータを設定するユーザーの設定画面です。
通常は、ユーザーからシステム全体の設定アプリによってアクセスされます。
これは、メタデータとして AndroidManifest.xml 内で宣言されている必要があります。

動作確認
1. Engine の選択
システム設定の Language & input を選択する。
Text-to-speech output をクリックする。
Exsmple TTS Engine を選択する。

2. 例文を聞く
Listen to an exsample をクリックすると、 電子音が聞こえます。
LogCat に下記のようなメッセージが出ています。
TextToSpeechSettings: Failed to get sample text, no activity found for Intent …

Pico TTS でも、下記のようなメッセージが出ています。
エミュレータにサンプルテキストが含まれていないようです。
TextToSpeechSettings: Did not have a sample string for the requested language

追記: 実機で試してみたがうまくいかなかった

ソースコード
4つのファイルがあります。
・RobotSpeakTtsService.java
TextToSpeechService を継承した テキスト音声変換エンジン のサービス。

・CheckVoiceData.java
Activity を継承した データチェックの Activity

・RobotSpeakSettings.java
PreferenceActivity を継承した メニュー画面

・GeneralSettingsFragment.java
PreferenceFragment を継承した メニュー項目

変更
1つだけ変更が必要です。
AndroidManifest.xml

<!--
<uses-sdk android:minSdkVersion="IceCreamSandwich"
	android:targetSdkVersion="IceCreamSandwich" />
-->
<uses-sdk android:minSdkVersion="14"
	android:targetSdkVersion="14" />

関連記事
サンプルコード ActionBarCompat
サンプルコード AndroidBeamDemo
サンプルコード SampleSpellCheckerService
・サンプルコード TtsEngine
サンプルコード VoicemailProviderDemo
サンプルコード WiFiDirectDemo


Titanium Meetup Tokyo


2011年10月27日(木) Titanium meetup Tokyo に参加した。
今回は Appcelerator CEO Jeff Haynie 来日記念です。
Titanium Mobile は iPhone / Andorid アプリの開発ツールです。
Appcelerator は開発元の会社です。

togetter まとめ
UST 動画

■ 講演 Jeff Haynie
断り書き: 通訳なしの英語だったので、原文のままでなく、脳内置換されています。

Titanium Mobile はオープンなエコシステムです。
20万人の開発者が登録し、3万のアプリが発表されている。
HTML5とネイティブアプリは共存できる。
Mobile Web SDK は来月リリースします。
これは Titanium で Web アプリを作るもの。
従来の Titanium SDK の上に乗る。
Mobile SDK 1.8 も来月リリースします。
35 の新しいAPIが追加され、iOS 5 をサポートします。
V8 (JavaScript_Engine) を積んだ Android Titanium は15倍高速になった。
Layout api を強化して、いろいろよくなった。
機能追加や性能強化以外に、改善すべきことは沢山ある。
API の互換性、API ドキュメントの整理や、アップデートのガイド、ベストプラクティスの提示、ブログでの情報発信、コミニュティのサポートなど。
クラウドとの統合を進めていく。
エンタープライズ向けアプリ・ストアーや、Redhat の OpenShift PasS との連携。
Open Mobile Marketplace を用意している。
2012年のロードマップは、クラウド・サービス、エンタープライズ・データ、UI/UX 対応、新しいプラットホームへの対応など。

質疑応答
Q) 会社の方向性は
A) まだまだ軌道に乗ったとはいえず、もっともっと努力する必要がある。
Q) アドビ製品をどう思うか
A) あれは プロプライアタリな Flash で、我々はオープンソースの JavaScript なので、立ち位置が異なる。
Q) Windows Phone への対応は
A) 今のことろ考えていない。日本では発売されていますか? 会場の中でも持っている人は? 一人だけ手を挙げる。
Q) 日本語でのサポートは
A) 誰かやってくれる人はいますか?

印象
エネルギッシュですね。
1つ質問すると、10個くらい返ってきます。
1時間くらいだと、言い足りない感じでした。

ライトニングトーク
Titanium で開発したアプリについて
1人3分なので、アプリ名だけ、列挙しておく。
shotaatago : picky
binbin4949 : 適当に呟く Twitter クライアント
t32k : Nyars, ticktock
sngmr : Coco壱探し
・ワタナベ : マイネイリスト
atsusy : Instagram 風カメラアプリ
yagi_ : CropImage などのモジュール
k0sukey : Tiお散歩
unicco : Zaim
totu0325 : MogSmash, MogSnap
naoya_ito : HBFav
みそっぷ : ベストクレカ


サンプルコード SampleSpellCheckerService


SampleSpellCheckerService – Spell Checker の日本語訳
このサンプルは、 Android 4.0 (API 14) から導入された SpellCheckerService API を利用して、スペルチェッカーを作成する方法を示す。
このアプリは、起動する activity を持っていません。
このアプリをインストールした後で、システムの入力設定 (Language & input) に移動して、スペル訂正 (Spelling correction) として Sample correction を選択してください。

動作確認
(1) システムの入力設定
システムの入力設定 (Language & input) に移動して、スペル訂正 (Spelling correction) として Sample correction を選択します。

(2) スペルのチェック
このサンプルには、起動する activity がないので、NotePad を使用する。
NotePad に何か入力する。
下段に赤い線があるのが、スペルミスと判定されたもの。

LogCat を見ると、単語毎にチェックされている様子である。

onGetSuggestions: this
onGetSuggestions: is
onGetSuggestions: a
onGetSuggestions: pen

(3) 単語の変更
単語をタッチして選択すると、Replace というサジェストが出る。
Replace を選択すると、候補が表示される。
これらの候補は、SampleSpellCheckerService.java にて、ハードコーディングで aaa,bbb などと生成している。
本番では 頑張って作れ ということみたいです。

(4) 単語の登録
単語登録 (add to dictionary) を選択すると、単語登録の画面になる。

(5) 単語登録の後のスペルのチェック
登録された単語 (Andorid) は、スペルが正しいと見なされ、下段の赤い線が消える。

(6) ユーザ辞書
ユーザ辞書 (User dictionary) はシステム設定から呼び出せます。
言語毎に辞書が設定できます。
日本語用の辞書もあるようですが、スペルチェックはしてくれないようです。

ソースコード
3つのファイルがある。
・SampleSpellCheckerService.java
SpellCheckerService (API 14) を継承した サービスクラス。
アプリからIME経由で呼び出されている様子。

・SpellCheckerSettingsActivity.java
PreferenceActivity を継承した メニュークラス。
システムの入力設定から呼び出される

・SpellCheckerSettingsFragment.java
PreferenceFragment を継承した メニュー項目。

関連記事
サンプルコード ActionBarCompat
サンプルコード AndroidBeamDemo
・サンプルコード SampleSpellCheckerService
サンプルコード TtsEngine
サンプルコード VoicemailProviderDemo
サンプルコード WiFiDirectDemo


サンプルコード AndroidBeamDemo


YouTube Preview Image

Android Beam は NFC を利用した近距離通信です。

AndroidBeamDemo – Android Beam Demo の日本語訳
このデモでは、API 14 に導入された Android Beam 機能を使用する方法を示しています。
このアプリは、2つのデバイスが十分に近い距離をにて、1つのデバイスから別のデバイスへの簡単なメッセージを送信します。
このアプリは、NFC機能を持ち、Android 4.0 またはそれ以降の環境の、2つのデバイスにインストールする必要があります。

確認
NFC機能がないエミュレータなので、動作確認はできず。
「Unfortunately Beam has stopped」というメッセージが出るが、これがどこで作られているか分からず。

追記: 実機で動作確認しました

ソースコード
Beam.java 1つしかなく、170行とシンプル。
API 14 から追加された下記のインターフェイスが実装されている
CreateNdefMessageCallback
OnNdefPushCompleteCallback

関連記事
サンプルコード ActionBarCompat
・サンプルコード AndroidBeamDemo
サンプルコード SampleSpellCheckerService
サンプルコード TtsEngine
サンプルコード VoicemailProviderDemo
サンプルコード WiFiDirectDemo


サンプルコード ActionBarCompat


SDK 4.0 でサンプルコードが増えている。
ひとつずつ試してみる。
・ActionBarCompat
・AndroidBeamDemo
・SampleSpellCheckerService
・TtsEngine
・VoicemailProviderDemo
・WiFiDirectDemo

ActionBarCompat
ActionBarCompat – Action Bar Compatibility の日本語訳
このサンプルでは、ActionBar のAPI を持つ API 11 以降の機種と、持たない API 11 以前の機種に対して、ActionBar をどのように実装するかを示している。
API 11 以前の機種に対しては、新しいフレームワークAPIと同様に扱えるように、互換性のある ActionBar は、menu resource ベースのアクション項目の定義のメカニズムを使用して実装する。
さらに、API 11 から導入された android:showAsAction 属性を限られた範囲でサポートする。

動作確認
ActionBar は3.0から採用されたメニューバーです。
このサンプルコードは、1.5 Cupcake から 4.0 Ice Cream Sandwich を対象にしています。
エミュレータのバージョンを 1.6, 3.0, 4.0 で確認してみたところ、いずれも動作しました。

ソースコード
ソースファイルは8個あります。
・ActionBarActivity.java
・ActionBarHelper.java
・ActionBarHelperBase.java
・ActionBarHelperHoneycomb.java
・ActionBarHelperICS.java
・MainActivity.java
・SimpleMenu.java
・SimpleMenuItem.java

関連を図にしました。

MainActivity.java
メインの Activity です。
自作の ActionBarActivity を継承しています。
下記のメソッドが実装されています。
・onCreate
・onCreateOptionsMenu
・onOptionsItemSelected

ActionBarActivity.java
MainActivity の基底クラスです。
Activity を継承しています。
ActionBarHelper を呼んでいます。

ActionBarHelper.java
ActionBar の Factory クラスです。
実行環境のバージョンに応じて、下記の3つのファイルを呼んでいます。
・ActionBarHelperBase.java : 1.0系 2.0系 用
・ActionBarHelperHoneycomb.java : 3.0系 Honeycomb 用
・ActionBarHelperICS.java : 4.0系 ICS 用

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
	return new ActionBarHelperICS(activity);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
	return new ActionBarHelperHoneycomb(activity);
} else {
	return new ActionBarHelperBase(activity);
}

SimpleMenu.java
Menu を implements している。
1.0系 2.0系 用のメニューです。
ActionBarHelperBase から呼ばれます。

SimpleMenuItem.java
MenuItem を implements している。
1.0系 2.0系 用のメニュー項目です。

関連記事
・サンプルコード ActionBarCompat
サンプルコード AndroidBeamDemo
サンプルコード SampleSpellCheckerService
サンプルコード TtsEngine
サンプルコード VoicemailProviderDemo
サンプルコード WiFiDirectDemo


横浜Androidプラットフォーム部 勉強会


2011年10月23日(日) 横浜Androidプラットフォーム部第14回勉強会 に参加した。

togetter によるまとめ

Dalvikバイトコードリファレンスの読み方 @kmt_t
Dalvik は Android 用のJava VM (Virtual Machine) です。
本日は Dalvik仮想マシン 3部作の2回目
1. Dalvik仮想マシンのアーキテクチャ
2. Dalvikバイトコードリファレンスの読み方 (本日)
3. DEXファイルフォーマット

・Summary of Instruction Set の説明
 Bytecode for the Dalvik VM
・sparse-switch の実装の説明
 dalvik/vm/mterp/out/InterpC-portstd.c
 HANDLE_OPCODE(OP_SPARSE_SWITCH /*vAA, +BBBB*/)
・invoke-virtual の実装の説明
 GOTO_TARGET(invokeVirtual, bool methodCallRange)

Q) Dalvik と JavaVM との違いは?
A) Dalvik のほうが素直に実装している。
JavaVM は最適化やGCのためにトリッキーなコードが多い。

Android のビルドシステム @androidsola
発表資料: Android のビルドシステム

・make で何をやっているか。
 mk ファイルが対象です。
 全ディレクトリを探しているようです。
 build/core/main.mk など100個以上ある。
・lunch で指定できるものは、5種類ある。
 通常は generic-eng
・指定可能なCPUターゲットは
 arm (armv4t, armv5te, armv7) sh x86
・ビルドするターゲットを増やす
 ターゲットファイルを自作する。
 いろいろ怒られるが、足りないファイルは教えてくれるので、追加する。
 ひとまずは、4つほど追加すればよい。
・DEVICE_PAKAGE_OVERLAYS
 アプリの既存ファイルを上書きするオプションがある。
 例えば、壁紙だけ差し替える。

Q) ガイドラインはあるのか?
A) 無いので、既存のファイル構造を見ながら、模倣している。

Dalvikソースコードの構成 @kishima
発表資料: Dalvikのソースコードを読んで分かったこと(1)

・ソースツリー構成
 dalvik
・Zygoteの起動
 service zygote /system/bin/app_process -Xzygote /system/bin –zygote –start-systemserver
・アプリの起動
 dalvik/dvz/dvz.c
・dexの読み込み。
 odex があれば、それを使い。無ければ、apk 内の dex から作る。
 少し議論あり。
 実機環境が異なるので、事前に最適化を行う意図は何か?
 odex はプレインストール型だけ?
・VMの起動
 frameworks/base/core/ini/AndroidRuntime.cpp
・インタプリタの基本的な動き
 dalvik/vm/mterp/out/InterpC-portstd.c

AOSPをローカルミラーしてみた @kinneko
発表資料: AOSPをローカルミラーしてみた
AOSP は、Android Open Source Project のこと。

・repo sync してますか?
 kernel.org がダウンしていたので、仕事にも遊びにも影響が
・この間どうしのいでました?
 codeaurora.org
 android.git.linaro.org
 OESFのGitHub
・めでたく復活した。
 git.android.kernel.org から android.googlesource.com に
・repo sync は時間がかかる。
 なので、ローカルミラーしてみた。
・コマンドは簡単
 でも、エラーで落ちる、エラーで落ちるの繰り返し。
 全部で 3.3 GB 、丸一日かかり。
・repo sync してみる。
 webkit が壊れれているとのエラー。
 しかたがないので、一度削除して、再取得する。
・再度 repo sync してみる。
 今度は 2分 で終わった。
・ビルドしてみる。
 CPU12個のマシンで、12分 で終わった
 ビルド時間はお金で買える (笑い)
・まとめ
 sync ごときでイラっとしなくなります。

ネタはヒミツだ資料も公開しないぞ @kinneko
実機のrootを取り、独自ビルドを仕込む話。
なかなか面白かったが、ヒミツなので、割愛。
製品をハックするのは気持ち悪いという意見あり。

懇親会
野毛の もつしげ


横浜 Android 勉強会


2011年10月22日(土) 横浜 Android 勉強会 に参加した。

Android 4.0 の説明 @takahashi_ken
一昨日 発表されたばかりの Android 4.0 を説明があった。
詳しいことは togetter を読めと。
Android 4.0 for Users を @yanzm さんが日本語訳してみた

追伸:
この日の16時ごろ、ブログでも公開されました。
Y.A.M の 雑記帳: Android 4.0 Paltform

ソースコード・リーディング @takahashi_ken
Google I/O のイベント用アプリ iosched を読む
3.0 から Fragment が導入された。
Fragment は UI 部品である。Activity のライフサイクルと異なる 独自のライフサイクルを持つ。

ActionBar の説明 @katsummy
ActionBar は従来のタイトルバーに取って代わるメニュー用のウィジェットです。
3.0 から追加になった。
iosched では、3.0 とそれ以前のバージョンで、処理を変えている
手本にするなら iosched よりも ActionBarSherlock がよさそう。

4.0 のカメラ機能の説明 @nekomeshi312
4.0 で下記のクラスが増えている
Face は顔認識でいろいろ便利に使えそう
Camera.Area
Camera.Face

後半はもくもく会
4.0 で増えたサンプルコードを試してみた
・ActionBarCompat
・AndroidBeamDemo
・NFCDemo
・SampleSpellCheckerService
・TtsEngine
・VoicemailProviderDemo
・WiFiDirectDemo

懇親会
勉強会と同じ場所で、ビアバッシュ。