x
★発表内容
@myb1126:「Deep in ADB – Android Debug Bridge の中級編資料」 (資料)
- PF部の紹介
- 勉強会がメインで活動をしている
- ハッシュタグは#yapf
- 今後の課題として参加者増加による場所の確保と発表者
- 今後について、ソースコードを呼んで理解を深める
- 自己紹介
- アプリ開発やサービスより、開発を楽にする仕組みに興味がある。
- 本題
- モンキーライナーが動かない事例があった
- 登場人物
- ホスト側クライアント
- adb コマンド
- SDKTools
- シーケンス図を用いてadbについて説明を行う
- HOST Service
- adbdevicesリクエスト項目
- adbデーモンと会話を行う
- 会話手段は
- シリアル
- adbサーバに自動認識機能を付いている
- オーバービューテキストから分かること
- サーバーが仲介プロセス
- サーバーと会話
- デーモンと会話を行う。
- サービステキストからわ分かるこ
- SDKTools
- トランスポート ローカルサービス
- DDMSスクリーンショット、ログキャットなど
- スクリーンショットフォルダは画面が撮れるかもしれないが不明なので誰か教えてください。
- フォワード
- クラス階層・呼び出し図を可視化
- モンキーランナー
- 再帰テスト
- ポート12345
- 前回発表した内容とかわっているので、資料をまとめ直して今後発表する。
- auは使用できない(テザが不可だから?
- ADBフォワード
- GDBサーバーが繋げない
- 今日伝えたかったこと
- 開発者へ
- フレームワーク転送行える
- SDKToolの一部はasbフォワードがないと使えないこと。
- キャリアさんへ
- 独自仕様は開発者を泣かせるのでやめて下さい。
- 質疑応答
- adb hell と言うコマンドがある
- 使用状況一覧を情報共有する
@akachochin:「dalvikのGCをのぞいてみた」 (資料)
自己紹介
GCを選んだわけは 懇親会でポロっと喋った おさらい
ヒープメモリ
プログラムが動的に確保する GCとは、ガベージ・コレクション
C言語のまロック・フリー JAVAでは基本的に意識しなくても問題ない マーク&スイープについて説明をする
印の付いていないヒープを解放する ルートを辿ってオブジェクトが追っかけることが可能 このスレッドは一定のしきい値に達した場合 起動するスレっっどのこと GC_CONCURRENTについて
ミューテータが動けるようにする処理 コンカレントがないとなしの場合 一瞬フリーズする ある場合 占有時間を短くする メモリ割り当てに付いて
dvmMalloc()を呼ぶ JAVAでインスタンスを確保するために使用する データ構造をまとめた
グローバル空間 ヒープ空間 1BITに対して8BYTEで成り立っている ライブBITとマークBITになる。 NEWをしてヒープを割り当てる。- 話を戻って説明
他のスレッドの動きを停止する 各オブジェクトのROOTに印をつける CARDテーブル領域 6番目、サスペンド 7番目、再度印付け 8番目に動けるようになる- 構成の説明
1−4について説明 5−6について説明 7−8について説明 NEWされたインスタンスを マークビットに対してマークする
カードテーブルは128BYTE 状態が変わるとDARTYになる 先頭からマークビットを辿って印をつける 後回しにしたオブジェクトに印をつける 関連したマークビットに印をつける 前(アドレスが若い)に戻った場合はマークを付けない←後でマークする機能 スタックが空になるまで行う ミューテータが動けない状態にして 印を付け直す あとで印をつける機能は、カードテーブルを辿る 状態に変更があった部分を調べ直す ライブビットは ライブとマークが1が立っている場所を解放する 2.2からコピーGC対応- まとめ
- マーク&スィープがアルゴリズムの基本でした。
- コンカレントGCは、処理の途中で動けるようにするために、ミューター機能が動く。
- コピーGCも2.2から使えるようになる。
質疑応答
コンパクションはしてますか?
基本的にしていない どこかで行っているかもしれない ライフを立てて何処で落とすか
スウィープで落とす。 参照がなくなるのでそこで落とす。 ヌルが入った時点では落ちない。 GCが走って解放する- 代入に関わらず、辿れなくなる
- GCが長くなるのはGCの都合
- サスペンドするまではアプリは動ける
オブジェクトを辿る説明5番が時間が掛かる アドレス番号が若番を後回しにするのはナゼか
リカーシブるにやりたい- 最適化を行う
データ構造の話は、GCに限っていない アルゴリズムを簡略化したい VMのスレッドを言う
VM以外でスレッドも含まれる キャラ取って内部では8バイトとるか?
4バイト(4の倍数) 危険領域に行かないようにする ネイティブメソッドはGCを考慮してないので 中途半端なところで止まらない様に工夫はされている。
@kimukou_26:「LayoutAnalyzerでのGroovyの利用について」 (資料)
- 自己紹介
- テスト部にも参加
- 発表のきっかけ
- Androidでグルービィーを使ってる
- ディスコボット
- レイアウトアナライザからレイアウトグルービーをよんでる
- GStringとは
- ストリングの拡張
- DOMカテゴリー
- Dofirst
- オールで呼ばれてる
- 実行するとなぜレイアウトが出力するかは調べてません
- グルービーの使い方
- グルービィールールカテゴリ
- JAVAスクリプトみたいに書ける
- グルービィはなんで書けるのか
- JAVAをコンパイルしたくない
- ルビー書きたくない
- }⇒]に変換
- おすすめは
- ばっちファイルを作って動かす
- めいでんから撮ってきて
- JAVAのクーロン
- 質疑応答
- Androidで使いたかっとところ
- カテゴリを使う必要はあったのか
- DOMカテゴリを使いたかったから
- 必要なのはAndroidSDKに入っている
- だるびっくでうごかすときは
- ANTでこんぱいるする
- セントOS上で確認済
@tetsu_koba:「Androidのプロセス間のメソッド呼び出し」 (資料)
- 自己紹介
- 10年以上はダルビックを触ってる
- プロセス間のメソッド呼び出し
- AIDLの仕組み
- アクティビティー
- アクティビティーマネージャーに依頼する
- 表示の時はウィンドウマネージャに依頼する
- カーネルを通過して要求する
- プロセス間通信にどのようなものがあるか
- インテント
- AIDL
- バインド
- なるべく使うな的な
- スレッドセーフは面倒くさいでしょ
- AIDL
- メッソドを呼び出し元と呼び出し先
- インターフェースを実装すれば
- 実態を意識しないで呼び出しが可能
- プロキシークラス
- バインダーが投げる
- 受ける側はバインダーメソッド
- 呼び先に
- バインダースレッド
- スタブ
- ANDROID.OS.PARCEL
- スタブは復元
- プロキシーはバラス
- AIDLは自動生成する仕組み
- インターフェースを作る
- ツールがプロキシークラスとスタブクラスが作られる
- ECLIPSEでAIDLを書くと、バックグラウンドで自動生成する
- インテントがおすすめ
- 実例でどのように使われてるか
- スケジュールポーズアクティビティ
- 実行中に増減する。最低1こは動く
- 呼び出す仕組み
- ルーパーに投げる
- オンポーズが呼ばれす
- バインダの仕組み
- カーネルのドライバー
- /DEV/BINDER
- 汎用的に作られてない
- 単一用途のために出来ている
- マルチスレッドを想定して作られている
- スレッド毎に記憶する
- UNIXはマルチスレッドはなかった
- バインダの中
- リードライトを使わない
- IOCTLトランザクションのメモリーコピーをしてる
- 呼ばれたらコピーした内容を転送する
- プロセスA⇒プロセスB
- 一つのバッファで足りる
- 少ない量のデータを処理する
- 大きいデータの場合はハッシュメモや共有メモを使う
- 後日説明
- 質疑応答
- オープンされてるのは2箇所
- ユーザAIDLは別で操作してる
- パッケージマネージャーが管理してる予想
- システムのサービスに限る
- システム以外はパッケージマネージャが処理してる
- やりとりは文字列で行ってるか
- サービスの名前を登録する
- リストサービスで出てくる
- なぜパーセルを作ったのか
- リモートのメソッドに特化してる
- オブジェクトはストリームで処理する
- クラスを包含して一つのデータにしている
- 普通にソケットを使っても行けるが
- バインダーの使い方
- あくまでも特化している
- オディオフィンガーとかがバインダーを登録している
- ハッシュメモを使うときはライブラリー化されている
@kinneko:「ハードウエアなしではじめるGoogleTV hacking – update1」 (資料)
- 自己紹介
- 再就職先を募集中です。
- 最近の近況報告
- 出版に関すること
- ドロちゃん工作
- ボード関係
- 本題
- 前回のPF部勉強会で先越されたのでムラムラして
- ロジテック製品をハックする
- しかし初期出荷版のみ
- 動かない度を検証
- 質疑応答
- 野良アプリを入れるとgzipが無いと言われて入らない
<外部リンク>
懇親会
我々は、一つのバージョン(GoogleTV)を失った。これは敗北を意味するのか?否!これは始まりなのだ。一般のAndroiderに比べ我らがPF部の勢力は30分の1イカである。にもかかわらず、今日まで戦い抜いてこられたのは何故か!諸君!我らがPF部の目的が正しいからだ!一握りのメーカーが、気にしすぎなまでに膨れ上がったセキュリティを施して数十種類。PF部に住む我々がGDBの接続を要求して、何度独自仕様に踏みにじられたか思い起こすがいい。PF部の掲げる、人類ひとりひとりのハッキングのための戦いを、神が見捨てるはずがない。
というわけで、もはや、前置きが懇親会とはなんの関連性もないうえに長いのだけど、JTAGやら、GDBのためのadb forwardやらをこよなく愛する、いつもよりちょっぴり平均年齢が若いPF部メンは、中華街にひっそりと佇む台湾料理のお店の台湾素食でいつも以上に健康な飲み会を行なってきました。
台湾の方々の日本の震災への熱い支援を心から感謝致します。
P.S.
Google TVが死んだのは、「坊やだから」ではなく、ごちゃごちゃしすぎてたからだと思われます。
編集
勉強会議事録:
skozosnoopy

懇親会なんちゃって録:
hermit4
