2012-11-13 93 views
1

我對Android體系結構的Android NDK和Libraries層感到困惑。我的意思是,在Libraries層,你可以得到.so文件,不論是C還是C++。當我們使用java在Android中編寫應用程序並在NDK中進行部分開發時,NDK部分適合哪裏?劑量它駐留在應用程序層,或者我們可以說它是庫層的一部分?Android NDK和庫層

我有這個困境,因爲NDK的最終輸出是一個.so,我們將它作爲一個庫加載到java應用程序中。我正在爲我們開發的應用程序編寫一份報告,並想知道從這些層放置NDK部件的位置。

enter image description here

+0

你的問題有點不清楚,你說的是你的apk包,運行時環境,這個OS的設計......?那張圖片只是一個組件列表,沒有提到Android內部的東西,如果你正在看這張圖片試圖瞭解NDK的內容,你只會感到困惑。 – user1797612

+0

您打包到應用程序中的所有內容都是應用程序層。 – auselen

+0

是的,我正在談論apk。 NDK應用程序包含在其中。所以它看起來像NDK部分屬於應用程序層? @ user1797612不,我不是在試圖理解使用該圖的NDK。對於想知道是否在圖書館 – user340

回答

0

我真的不知道你的意思,但我會嘗試撰寫答案。

使用NDK,您可以從真正的低級別內核(例如內核頭文件和彙編代碼)到真正的高級調用(如活動生命週期的調用)獲取所有內容。

用你的話說,把這張圖片作爲NDK的參考,你可以從底部開始,反之亦然,你可以在NDK中使用所有圖層。

但是這是理論,例如你甚至可以用NDK編寫一個linux內核模塊(驅動程序),但實際上你可能不能這樣做,因爲所有商業電話都使用單片內核,所以如果您的應用程序需要一個驅動程序才能工作,但由於實際情況限制,您必須廢棄自己的想法。

+0

感謝您的回覆。實際上,我們已經實現了一個內核驅動程序(不在NDK中)。我們正在從應用程序層與內核驅動程序進行通信,並在此過程中使用NDK部分。這將java映射到C並調用模塊。這NDK部分我想知道哪一層它適合。應用程序或庫? – user340