GUIコンポーネントは必ずシングルスレッド。Swingでも同様の解説があった。通常は別スレッドに引き渡してUIスレッドは返却する。フラグやボタンの無効化で対策する。AsyncTask必須。前者でないと、onPreExecuteでボタンを無効化するときに間に割り込まれるといった場合に困る。invokeLaterのようなもの。SDK15(4.0.3)から、ソースのアーカイブがダウンロードできる。それ以前はgitで取ってくる必要がある。IDEのメタデータは別のディレクトリにまとめられている。cancelメソッドを呼ぶとonCanceledが呼ばれる。サービスを実装するときに使う。基本的にローカルホスト内部でのRPCに使用する。GUIコンポーネントの末端(リーフ)ウィジェットを「葉」と記述するのはわかりづらい。Windows8(いわゆるメトロUI)では、マウスでのメニューとタッチでのメニューで、メニュー要素のサイズを変えるなどの仕組みがある。良くはなっているが、デザイン作業(=試行錯誤)には使えない。ビルドして初めて生成されるため、単にソースをIDEに読み込んだだけではエラーになる場合がある。JavaでGUIを記述するのは手間がかかる。Scalaではハマる。Java8ならLambdaが入る。試さないとわからない。