2011-06-24 12 views
3

Android-NDKは、JavaからJNIメカニズムを介して呼び出すことができるネイティブライブラリの書き込み/移植に使用されます。Google-NDK/JNIインタラクションのないコマンドラインCアプリケーションのコンパイル

私はAndroidを搭載したARMベースの評価ボードを持っています。このevalboardにはシリアルポートがあり、リモートターミナルでログオンしてからコマンドや他のアプリケーション(Javaアプリケーション以外のコマンドラインアプリケーション)を起動することができます。

Android NDKでは、後でリモートシェルでコマンドとして使用する「純粋な」Cアプリケーションをコンパイルすることは可能でしょうか?主なアイデアは、Dalvikマシンと決して相互作用しないコードを構築するためにGoogle-NDKが提供するツールチェーンの恩恵を受けることです。

よろしく、 Apple92

+0

、最新のNDKの新機能があります。独自のツールチェーンを生成して、任意のMakefileから呼び出すことができます。 – user255607

答えて

1

はい、あなたはNDKを使用して、コマンドラインプログラムをコンパイルすることができます。機能しているAndroidシステムを見てみると、同じコンパイラを使ってコンパイルされたコマンドラインプログラムの例がたくさんあります。

+1

このような例へのリンクはありますか? – user255607

+0

ちょうどuser255607と同じ問題を遭遇しましたが、この回答は技術的に正しいものですが、それは全く無益です。 – hirschhornsalz

+0

@hirschhornsalz問題はなかったので、もっと詳細に答えることができたので、私はあなたの意見は価値のない側にあると思います。あなたは、疑問が尋ねられなければならないことを推測するのではなく、十分に長く周りにいました。もともと尋ねられた質問に答えました。私の答えが役に立たないと感じたら、私が無視した質問のどの部分を示してください。 – mah

1

はい、BUILD_EXECUTABLEコマンドがあります。これはBUILD_SHARED_LIBRARYのように動作しますが、実行可能ファイルを生成します。 このトリックは、実行可能ファイルが依存するライブラリです。すでにデバイス(/ system/bin)に存在する必要があるか、実行可能ファイルでアップロードする必要があります。

私がテストをアップロードして実行するには、次のスクリプトを思い付いた:実際には

#!/bin/sh 

adb shell rm -r /data/temp 
adb shell mkdir /data/temp 

for i in dst/* 
do 
    adb push ${i} /data/temp 
done 

cat <<EOF | adb shell 
LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/data/temp 
/data/temp/test 
exit 
EOF 
関連する問題