2016-12-15 31 views
-2

我知道一個開源項目,在C語言編寫的,它作爲編譯系統執行支持Linux,Windows,OS X,iOS和Android。如何在Android中使用C程序來從127.0.0.1提供API?

在Linux/Windows的/ OSX可以只是./example_programmC:\>exeample_program.exe執行並開始投放的API通過http://127.0.0.1:port_number,例如:在桌面平臺上這個API可以通過GUI應用程序使用http://127.0.0.1:7778

我需要知道如何可以在Android做什麼?

我知道的Android adb shell我們可以做su然後運行android編譯的程序可執行文件,然後可能使用從android web瀏覽器打開HTML GUI並使用它。但是,這不應該是我想的情況。

可執行文件不需要任何根或超級用戶權限。一個有限的用戶帳戶,如果運行該可執行文件使該可執行文件運行並且程序開始在127.0.0.1上提供API服務。

由於和替代聽說的Android既可以使用科爾多瓦包裝包括這個機器人在其編譯的可執行文件和Android應用程序啓動時,應用程序可以觸發後臺執行該機器人可執行文件。但是,目前我並不確定,如果這種方式行得通,或者會有什麼挑戰。這可能需要測試。

另一種替代方法聽說是有編譯爲一個庫這個C代碼。我不知道在這個項目中完成了C編碼,我不知道我需要做什麼修改才能將它編譯爲Android庫。無論如何,如果有一些幫助,我可以將此C代碼編譯爲Android庫,有人可以讓我知道這個庫如何被Android應用程序調用,它的行爲方式與桌面平臺上的行爲方式完全相同?像執行可執行文件,它開始在127.0.0.1:7778服務API?

感謝您的幫助:)

+1

「我沒有的C語言的表達想法」 - 所以學習語言首先是強制性的,如果你想要寫/端口的C程序。獲得初學者的C書,學習基礎知識,以一些簡單的練習,而不先聯網。然後瞭解如何在Linux上完成網絡連接。在瞭解了所有這些信息之後,瞭解Android上的差異。 – Olaf

+0

從項目管理的角度來看,我不一定需要學習C.我只需要了解可能性並聘請開發人員。 – satinder

+1

@satinder你完全錯了,如果它不是你的工作或技術方面的責任,那麼就交給開發者吧。 如果它是你的責任,那麼你必須對事情有適度的瞭解 –

回答

1

在高層次上,你可以使用Android NDK在Android應用程序運行C或C++代碼:https://developer.android.com/ndk/index.html

無論「它的行爲完全的它在桌面平臺上的行爲方式相同「未知,因爲我不知道有關此庫的任何詳細信息。如果它是一個簡單的Web服務,它很可能會起作用。關於做出設計決策,我會放棄這一點,只需要瞭解C代碼可以在Android上運行的知識,然後讓熟悉Android和/或NDK的人員確定使用代碼的最佳方式。

+0

感謝您的回答。 C程序是github上的一個開源代碼,它可以像一個精簡的比特幣錢包一樣。而無需下載區塊鏈數據庫。我看到Electrum和這樣的錢包已經在Android上支持,所以我知道肯定可以在Android上使用它。這是一個相當複雜的C代碼,這就是爲什麼我不能說它需要做什麼修改。這就是爲什麼我要求一些專家開發人員在Android上工作之前我需要一些專家的建議。 https://github.com/jl777/SuperNET – satinder

+0

不熟悉該庫,但有一個提交的問題解決Android編譯指示:https://github.com/jl777/SuperNET/commit/71f6ebdf237d8c4018c067c8bed90de6c7f542a6 –

+0

是的,這是我的文檔關於如何爲android編譯它。我將它編譯爲android,但後來我覺得如何將它包含在Android應用程序中。 – satinder

相關問題