2011-11-15 53 views

回答

0

您將需要Android NDK找到here 有一些例子包括在網頁上,並下載如何編譯Android的C代碼。

NDK Website:

的NDK提供:用來產生本機代碼庫從C和C++源 嵌入相應的天然 文庫的方式

一組工具和構建文件轉換爲Android設備上可部署的應用程序包文件(.apk) 將在所有未來版本的Android平臺上支持的一組本機系統標題和庫, 從Android 1.5開始。使用本機活動 的應用程序必須在Android 2.3或更高版本上運行。文檔,示例和 教程

我也覺得this如果它是接近你想要達到的目標。

+0

感謝您的快速回復。我已經下載了NDK。我想要做的是將rsync源代碼編譯成可執行的二進制文件,以便我可以在java代碼中調用這個二進制文件。 – Macchiato

+0

如果我正確理解你,你不想編譯一個庫,而是建立一個可執行文件。我認爲這是非常難以實現的,並且我個人會看到是否可以將代碼編入庫中並以此方式使用它。我在上面的答案中包含了一些鏈接和信息。 – Kerry

+0

嗨kerubu,對不起,我沒有注意到你的答案的第二個鏈接。我也在那個網站上偶然發現。但我最終使用NDK提供的交叉編譯器編譯代碼。謝謝。 – Macchiato

10

假設你靜態鏈接,你可以在沒有NDK的情況下進行編譯。這在Ubuntu 13.04 Raring Ringtail上適用於我。

安裝交叉編譯:

sudo apt-get install gcc-arm-linux-gnueabi 

下載的rsync:

wget http://rsync.samba.org/ftp/rsync/rsync-3.0.9.tar.gz 
tar -zxv -f rsync-3.0.9.tar.gz 
cd rsync-3.0.9 

編譯與交叉編譯器,使用靜態鏈接:

./configure --host=arm-linux-gnueabi CFLAGS="-static" 
make 

你會相處一些警告行Using X in statically linked applications requires at runtime the shared libraries from the glibc version used for linking。但到目前爲止,rsync已經爲我工作。

最後,安裝到手機上(假設你正在使用SSHDroid):

scp -P 2222 rsync [email protected]$PHONE_IP:/data/data/berserker.android.apps.sshdroid/dropbear 
+0

請注意,在它運行之前,您必須將二進制文件移動到/ data(例如/ data/local/tmp)並使其可執行(chmod 0777 rsync)。 – yanokwa

+0

什麼是二進制。可以幫助我http://stackoverflow.com/questions/22529567/compile-the-rsync-source-code-and-deploy-it-to-android-device – pengwang