2012-03-29 113 views
0

我將實施aodv協議作爲研究項目的Linux模塊,並且我需要在Android上稍後實現它。我想知道是否可以將我的代碼編譯到android內核中並且擁有我的模塊在Linux中工作(內核2.6)。將模塊從Linux移植到Android

任何建議將不勝感激。

(PS目前已經在Android上一些AODV的實現,例如AODV上,Android和大華JAdhoc,但是,這些都是在Java中實現,不涉及內核)

回答

0

標語所說:Android是Linux的,所以你在Linux上做的任何事情(便攜式)應該很容易在Android上發生。

這主要是真實的,但有你要記住幾件事情:

  • 便攜性:如果你正在寫在x86你的實現,然後移動模塊向ARM申請Android,請注意不要使用兩者都不存在的任何功能。但是,對於像網絡協議這樣的東西,你可能不會遇到很多這樣的問題。唯一想到的就是NIC。 Dalvik:通用Linux發行版往往運行得相當接近操作系統,這意味着它們經常進行系統調用或libc調用,而與內核交互的語義大多會傳遞給應用程序。然而,Android本質上建立在一個Java環境之上,大多數應用程序只與該框架進行交互。對於您來說,這意味着您需要了解可能需要修改Android框架以便使應用程序可以看到更改。

  • 但是,上述要點取決於您的使用案例。如果您計劃增加現有應用程序的路由以使用aodv,那麼您將需要與Dalvik進行破解。如果您要編寫一個概念應用程序證明,那麼您可以使用NDK編寫與C中的aodv交互的部分,並避免修改應用程序框架。

  • 您可能已經知道這一點,但是內核構建的系統足夠複雜,您應該能夠通過編寫一次模塊並僅通過更改配置來編譯兩個體系結構或平臺來逃脫。

希望這會有所幫助。

+0

非常感謝!我對android是綠色的,我沒有意識到可能存在嚴重的問題,使得在android框架內的應用程序可見變化,需要做一些研究。 – Jonathan 2012-03-30 02:58:58

+0

非常歡迎。我建議對答案進行投票,而不是出於自我推銷,但因爲給它更高的分數意味着搜索相似事物的人更有可能看到它。祝你好運! – Alex 2012-03-30 14:43:21