目次
前回:ADB Helperをハックしてみた(adb-client.js篇)に引き続き、
adb-helperをハックしていきたいと思います
フォルダ内のファイル構成
windows | mac | linux | |
---|---|---|---|
install.rdf | ○ | ○ | ○ |
main.js | ○ | ○ | ○ |
adb.js | ○ | ○ | ○ |
adb-client.js | ○ | ○ | ○ |
adb-running-checker.js | ○ | ○ | ○ |
adb-socket.js | ○ | ○ | ○ |
bootstrap.js | ○ | ○ | ○ |
scanner.js | ○ | ○ | ○ |
subprocess.js | ○ | ○ | ○ |
subprocess_worker_unix.js | - | ○ | ○ |
subprocess_worker_win.js | ○ | - | - |
前回に引き続き、adb-running-checker.jsファイルをハックしていきたいと思います。
予備知識
Promise
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise
HTML5 Advent Calendar 3日目:最近気になっているHTML5の最新技術に触れてみました
http://albatrosary.hateblo.jp/entry/2014/12/03/072118
deferred.resolve()
http://s3pw.com/qrefy/deferred.resolve/
爆速でわかるjQuery.Deferred超入門
http://techblog.yahoo.co.jp/programming/jquery-deferred/
adb-running-checker.js
ご覧の通り、各OSでの差異はありません。
モジュールは、adb.js比べてたら少しですね・・・・(^^;;;
コメントには、このように記載されています。
Uses host:version service to detect if ADB is running
Modified from adb-file-transfer from original ADB
【訳文】
ADBが実行中の場合、使用しているホストバージョン検出するサービス
オリジナルのADBのadb-file-transferをモディファイ
function check()
[処理]-----------------------------------------------
下記関数の定義
-
function runFSM(aData)
各送信ステータスで処理を分ける
ステータス:”start”
clientオブジェクトのcreateRequest関数より
"host:version"のリクエストをソケット送信します。
ステータス:”wait-version”
コメントには、このように記載されています。
Actually check the version number to make sure the daemon supports the commands we want to use 【訳文】
私達が使用するコマンドをサポートする為に
デーモンのバージョン番号を確認させます
⇒runFSM()を実行します -
setupSocket
下記メソッドで構成されています。
・ソケットエラー時にDeferredオブジェクトがresolved状態に移行させます
・ソケットオープン時にrunFSM()を実行します
・ソケットクローズ時は無処理です。
・ソケットオープン時にaEventイベントで取得したデータをパラメータに
runFSM()を実行します。
socketオブジェクトにclientを割り当て
上記setupSocketを実行後に
Deferredオブジェクトが持っているPromiseオブジェクトを即座にreturnします
今回のまとめ
今回は、2015年最初のハックブログになりました。
次回はadb-socket.jsファイルの中身をハックしていきたいと思います。
今年もお時間のある方、宜しかったら見て下さい。m(__)m
グンマー@坊主五厘
追伸
何か間違いが有った場合は、ご指摘ください。
バックナンバー