2011-06-09 22 views
1

我是一名Java開發人員,我對C++/JNI的暴露一直受到限制。Android NDK:gnustl_static庫文檔?

我已經成功地做到很好,到目前爲止,但現在,我冒險進入做「聰明」的事情,我成爲越來越多的盲飛更多的限制:

我使用的gnustl_static庫因爲我在同一個本地項目空間中移植了其他代碼。然而,由於圖書館的削減性質,我發現學習C++很困難,因爲單手背在我的背後。

如果有一個Javadoc(顯然不是Javadoc;))或一些這樣的文檔,我可以用它來查找包含在這個庫中的內容,以及這些庫中包含的內容(以及而我希望登月)爲什麼某些類型,如「地圖」不包括在內,而最好用什麼來代替!

從過去的幾周搜索Google,我沒有遇到任何集中的&有用資源和其他人的知識和專業知識,我覺得我錯過了一個重要的基本資源!

難道有人請給我一隻手,並指向我的文檔或教程或示例或什麼東西,這將幫助我瀏覽JNI/C++/Native Android編碼的危險水域?

編輯:

有人向我解釋,STL是標準模板庫,有一個鏈接,這到底是怎麼它所包含: http://www.sgi.com/tech/stl/stl_index.html

他們還解釋說,gnustl_static庫基於GNU機器的STL庫,它是位於裏面的一組頭文件: $ {ANDROID-NDK} \ sources \ cxx-stl \ gnu-libstdC++ \ include

只需要說這有很大的幫助因爲我不知道發生了什麼,所以請把我帶走。我只是不知道該去哪裏尋找。

我還是有點擔心STL似乎不屬於某人的事實? (我正在考慮Apache風格的身體)。任何人都可以糾正我呢?

如你所知。這裏還有點漂泊。

EDIT2:

如果STL是用來描述所有非基本類型和功能...圖書館爲什麼string.h中正在從拉: $ {Android的NDK} \平臺\機器人-9 \ arch-arm \ usr \ include

PS:我知道我聽起來很愚蠢,但我保證我只是不知情。我只是不知道在哪裏開始看起來像我覺得通過必要性我已經開始在中間。再次,任何你認爲我會覺得有用的鏈接都會很棒!

+0

我不認爲圖書館以任何方式砍伐。它應該是完整的GNU stdlibC++。 – 2011-06-09 12:52:32

+0

@Jan Hudec,我似乎在虛假的印象下。添加了一個編輯到我的文章。 – Graeme 2011-06-09 13:21:40

+0

我更新下面的答案試着回答修改1和2 – 2011-06-09 13:38:57

回答

4

gnustl_static是GNU stdlibC++,因爲它帶有gcc。它是official documentation is here,但它可能作爲教程沒用,所以最好在C++上寫一本體面的書。

該庫看起來並未被刪減。它可能看起來像這樣,因爲規範中定義的標準C++庫比Java中的標準C++庫小很多。它具有標準的對文件的訪問,但是沒有文件操作,無螺紋,無網絡等

在機器人POSIX接口是一般可用(純C)。如果你想C++,嘗試獲得boost,它包裝體面的可移植的C++組件的各種特定系統的接口。但是,除了通過Java層之外,Android平臺上的許多服務將不可用。

廣告編輯:標準庫規範由人所擁有,即ISO。不幸的是,該標準不能從ISO免費下載,但搜索網頁顯示this

廣告EDIT2:C++標準庫基於底層C標準庫。 C++標準庫具有無擴展頭,而標準C庫帶有後綴.h。兩者都由(不同的)ISO標準定義。 C庫最依賴於操作系統(取決於進行系統調用的具體方法),所以它隨系統提供。另一方面,C++庫與編譯器更緊密地聯繫在一起,而它使用C庫與系統交談,因此它隨編譯器一起提供。這就是他們住在不同地方的原因。

+0

非常感謝你。 「Ad Edit2」特別清晰有用,幫助我構建了我失蹤的基礎知識的另一大部分。 – Graeme 2011-06-09 14:07:52