2012-12-11 46 views
2

我正在研究一個專門用於在Linux上編譯和運行的軟件。最近我被要求使用NDK爲Android進行交叉編譯,這非常簡單。如何在Android應用程序中嵌入C程序

爲了快速做到這一點,我們只編譯了源代碼,而沒有編寫任何JNI封裝器。我將生成的二進制文件與adb push複製到模擬器(根),並從adb shell運行它。一切正常。

現在我的問題是:我如何在android應用程序中以某種方式嵌入這些二進制文件並運行它們(它們的行爲與服務一樣,必須在後臺運行)?

我想避免改變現有的代碼來支持JNI接口,但是寫一個小的JNI/C代碼,其他的二進制文件很好。

紅利問題:一旦嵌入,有沒有辦法知道安裝的二進制文件的路徑?

+1

您的應用的一部分。 – Michael

+0

@邁克爾:那就是我所害怕的。所以沒有辦法直接「運行」嵌入式二進制文件?我想我必須將我的二進制文件轉換爲一個'.so'文件。 – ereOn

+1

注意,編寫JNI代碼可能比你想象的要容易得多,如果你讓SWIG根據你的頭文件爲你自動生成它 – bph

回答

相關問題