過去3日間、答えを探していましたが、まだうまくいくものを見つけていません。カスタム コマンドを使用して ADB から制御できる Android アプリを作成しようとしています。アプリと ADB シェルの間で文字列をやり取りできる方法はありますか?
前もって感謝します。初心者の質問で申し訳ありません。
過去3日間、答えを探していましたが、まだうまくいくものを見つけていません。カスタム コマンドを使用して ADB から制御できる Android アプリを作成しようとしています。アプリと ADB シェルの間で文字列をやり取りできる方法はありますか?
前もって感謝します。初心者の質問で申し訳ありません。
もちろん、これを行うにはいくつかの方法があります。
Unix ドメイン ソケットを使用して、Android アプリと、ndk を悪用してビルドするコマンド ライン実行可能ファイルの両方から開くことができ、デバイス上のバージョンに依存する場所 (/data/local、/sqlite_stmt_journals など) にプッシュします。 ) 実行します。編集:最近のAndroidバージョンでは、そのような書き込み可能/実行可能ディレクトリがない場合があります。アプリ自体で実行可能ファイルをプライベート ディレクトリに書き出し、グローバルな読み取りおよび実行権限を設定する必要がある場合があります。さらに編集: adb は unix ソケットも転送できます。
インターネットソケットでも同じですが、開発マシンで実行されているプロセスからAndroidアプリと直接通信できるように、adbポートフォワードを設定するオプションがあります(Androidアプリが「サーバー」エンドである場合)。 adb シェルを介してデータを渡すことなく。インターネットのアクセス許可を宣言することが好ましくない場合を除き (PC 側のアプリに adb を「駆動」させるよりも問題が少ないはずです)、これはおそらく「公式」機能に最も近く、Android バージョンへの依存が最も少ない方法です。また、wifi を介した通信にも簡単に適応できます。
fifo のペアを使用して、シェル コマンドでそれらを読み書きできます (移植性のために、アプリのプライベート ストレージに作成しますが、誰でも読み取り/書き込み可能にします)。
あなたはptyでいくつかのゲームをプレイできるかもしれません
ファイルをメールボックスとして使用すると思いますか
「am」コマンドを使用してインテントを送信できます(通信に少し非効率的である場合、少なくともAndroidアプリを起動するのに役立ちます)