2011-04-27 11 views
5

adbシェルなどを使用してアプリケーションに送信できるコマンドを作成する方法を知りたいと思います。こうすることで、何か変更するたびにアプリケーションをリロードしなくても、プログラムに小さな変更を加えることができます。adbシェルを使用してアプリケーションにコマンドを送信することはできますか?

実行中のアプリケーションにadbシェルを開いてコマンドを送信する方法はありますか?

私のアプリケーションにコマンドを送信する方法はありますか?(UI要素を移動する)または(URLからファイルを作成する)など、いくつかのことができます。 ...基本的に私のアプリケーションに文字列コマンドを送ることができるようにしたい.....

私はそれが甘いだろうコマンドラインツールで行うことができます。さもなければ、これについて行くための良い方法は何でしょうか?

答えて

5

adbシェルからは、amと入力してください。アクティビティやサービスを開始するだけでなく、ブロードキャストの意図を送信することもできます。引数は使用情報を表示しません。

スクリプトからこれを呼び出す場合は、ホストマシンからadb shell am <command>を実行できます。

+0

これは、URIリクエストを処理するプロバイダを作る必要があることを意味しますか?または任意のコマンドを送信できますか?もしそうなら –

+0

。このソリューションの良い出発点を知っていますか? –

+0

インテントとしてエンコードできるコマンドを送信できます。 :) http://developer.android.com/reference/android/content/BroadcastReceiver.htmlでは、ブロードキャストのインテントを処理する方法について説明しています。 – adamp

3

adb shell amオプションは、おそらく最もクリーンな/最高の/最も素晴らしいオプションですが、SDカード上の特定のファイルが存在するかどうかをアプリで確認するスレッドがある可能性があります。ような何か(SERIOUS変更なしで、このコードを使用しないでください):

public void run() 
{ 
    File f = new File("/sdcard/appcommands"); 
    while(!stop){ 
     if(f.exists()){ 
     // read file 
     // obey commands 
     // remove file or use some other timing monitor 
     } 
    } 
} 

その後、あなただけのコマンドファイルを書き込むためにadb pushを使用することができます。本当に非効率ですが、それはピンチで動作するようにすることができます。また、ローカルTCP/HTTPサーバーの作成やadbポート転送の使用など、もっと複雑な作業を行うこともできますが、それはちょっと残忍かもしれません。

+0

はクリエイティブなクイックソリューションに投票しました。しかし、おそらく私の解決策としてadbシェルを受け入れるでしょう。私はちょうどそれについてのより多くの情報を得る必要があります。 –

+0

また、 'while(!stop)'の代わりに放送を聞いて、 'adb push'を使ってコマンドを送ることもできます。これにより、より複雑なデータをアプリに送信することができます。 –

関連する問題