ADB Helperをハックしてみた(adb-running-checker.js篇)

目次

前回:ADB Helperをハックしてみた(adb-client.js篇)に引き続き、
adb-helperをハックしていきたいと思います

  1. フォルダ内のファイル構成
  2. 予備知識
  3. adb-running-checker.js
  4. 今回のまとめ
  5. バックナンバー

フォルダ内のファイル構成

[解凍フォルダ内のjsファイル群]
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-running-checker

モジュールは、adb.js比べてたら少しですね・・・・(^^;;;
スクリーンショット 2014-11-30 13.59.39

コメントには、このように記載されています。

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()
 [処理]———————————————–
 下記関数の定義

  1. 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()を実行します

  2. setupSocket
    下記メソッドで構成されています。
    ・ソケットエラー時にDeferredオブジェクトがresolved状態に移行させます
    ・ソケットオープン時にrunFSM()を実行します
    ・ソケットクローズ時は無処理です。
    ・ソケットオープン時にaEventイベントで取得したデータをパラメータに
     runFSM()を実行します。

    socketオブジェクトにclientを割り当て
    上記setupSocketを実行後に
    Deferredオブジェクトが持っているPromiseオブジェクトを即座にreturnします


今回のまとめ

今回は、2015年最初のハックブログになりました。

次回はadb-socket.jsファイルの中身をハックしていきたいと思います。
今年もお時間のある方、宜しかったら見て下さい。m(__)m
グンマー@坊主五厘

追伸
何か間違いが有った場合は、ご指摘ください。

バックナンバー

Add a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です