androidのソースをダウンロードして、コンパイルする。
次に、androidのソースツリーにあるディレクトリ
prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin
内のクロスコンパイラを使う
という方法で、hello, world程度の簡単なCプログラムは
コンパイル出来るようになりました。agccというperlスクリプトを
使えば、dynamic linkの実行ファイルを容易に生成できることも
分かりました。
しかし、自分がコンパイルしたいオープンソースのソースコードを
コンパイルしようとすると、ヘッダファイルやライブラリは、
ビルドで生成したandroidのどの部分を使えばいいか見当が
付かないです。
android + C言語 + クロスコンパイルでググると、NDKとか
JNIに関する情報が多く引っかかるのですが、これは、Cのソースから
ライブラリを生成するとか、JavaプログラムからCの処理を呼ぶという
ような理解で、自分がやりたいCの実行ファイルを生成するのとは
違う気がします。
Linuxで動くオープンソースのプログラムをAndroidに移植するには
どういう方針でいけばいいのでしょうか。ポインタの情報があったら、
どなたかご教示をお願いします。
ちょっと見当ハズれなこと言ってるかもしれませんが、
基本的にAndroidでは、実行ファイル形式のアプリケーションはJavaでしか作成出来なかったと思います。
C言語で作成出来るのはライブラリのみだった思います。
なので、C言語で作成した実行ファイルをそのまま実行するのは不可能かと。
移植の方法としては、コマンドラインのコマンドをライブラリとして実装して、Javaから呼び出すとかですかね。
2010年9月24日21:58 Yutaka Kato <yut...@gmail.com>:
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>
--
*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*
株式会社マーステクノサイエンス
開発部 商品開発課
エンジニア
渡辺 祐司
TEL:03-3352-8560(代表) 03-3352-8566(直通)
FAX:03-3352-8579
URL:http://www.mars-techno.co.jp
Email:watan...@mars-eng.co.jp
*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*
━━━━━━━━━━━━━━━━━━━━━━
当社ソリューション&製品紹介ビデオ(音声あり)
「MTR-200」「MTR-120P」「HRI-1200」
==> http://www.mars-techno.co.jp/video/
━━━━━━━━━━━━━━━━━━━━━━
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2010年当社スローガン
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
【 WORK FOR FUN 】
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
楽しんで 働く!
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2010年9月24日22:04 hirokuma ueno <ueno...@gmail.com>:
> こんばんは。
>
> こちらなどいかがでしょうか。
> NDK を使ってのビルドです。
> http://blog.kmckk.com/archives/2918551.html
この方法で、コンパイルできました。
ありがとうございました。
2010年9月24日22:10 Yuji Watanabe <watanabe...@gmail.com>:
> 加藤さん、はじめまして。
> 渡辺といいます。
>
> ちょっと見当ハズれなこと言ってるかもしれませんが、
> 基本的にAndroidでは、実行ファイル形式のアプリケーションはJavaでしか作成出来なかったと思います。
>
> C言語で作成出来るのはライブラリのみだった思います。
>
> なので、C言語で作成した実行ファイルをそのまま実行するのは不可能かと。
>
> 移植の方法としては、コマンドラインのコマンドをライブラリとして実装して、Javaから呼び出すとかですかね。
Runtimeクラスのexecメソッドを使って、コマンドを実行できないかなと実験してみましたが、
ダメでした。簡単なテストですが、Androidシステムにはcpコマンドがないようなので、
dd if=infile of=outfile
を、Androidアプリケーション内で、execメソッドで実行してみたのですが、
ファイルのコピーができませんでした。コマンド自体が実行できないのか、
パーミッションの問題なのかはよく分かりません。
ライブラリ化の方針でやってみようと思います。