3

Android用に正常にコンパイルしたCコマンドライン実行可能ファイルがあります。次の手順を実行することで、実行可能ファイルをコピーしAndroid Terminal Emulatorて、AndroidICS電話で起動できます。

  1. 「exportTERMINFO=/ etc/terminfo」を実行します
  2. 「mount-oremountrw/sdcard」を実行します
  3. SDカードから実行可能ファイルを起動します

コマンドラインアプリケーションはncursesライブラリを利用するため、ステップ1が必要です。また、TERMINFOを設定しないと、アプリケーションを起動しようとするとエラーが発生します。2番目の手順を省略した場合、SDカードからコマンドラインアプリケーションを起動しようとすると、「アクセスが拒否されました」というメッセージが表示されます。したがって、これらの手順を手動で実行すれば、コマンドライン実行可能ファイルを起動できます。

今私がやりたいのは、このコマンドライン実行可能ファイルを標準のAndroidアプリケーション内にラップすることです。のソースAndroid Terminal Emulatorはオープンソースなので、それを使用しEmulatorViewてAndroidアプリケーションの内部を開くことができます。ただし、私の質問は、ネイティブ実行可能ファイルをに含めてapk、アプリケーションがで実行する権限を持つ場所にあるデバイスにデプロイする方法EmulatorViewです。ネイティブコマンドライン実行可能ファイルを起動できるように、ライツイシューを克服できるかどうか少し心配です。

Android NDKについては知っていますが、ライブラリとして含めることができるように、動作するコマンドラインアプリケーションを書き直す必要はありません。具体的には、C実行可能ソースをそのままにして、ラッパーアプリケーションから実行することを検討しています。これが可能かどうか誰かが知っていますか?もしそうなら、私はそれをどのように行うのですか?

4

1 に答える 1

1

native適切な権限が必要なデータフォルダの下にファイルをコピーしてから、を使用Runtime.execしてファイルを実行する場合。

binフォルダ(または任意の名前)を作成して、ファイルを下にコピーできます

Process exeProcess = 
         Runtime.getRuntime().exec("/data/data/YOUR_PACKAGE/bin/EXECUTABLE_FILE");

オブジェクトexeProcessを使用して、実行可能ファイルからデータを読み取ることができます。

于 2013-02-16T21:04:22.813 に答える