Android NDK中默認存在任何庫嗎?如果沒有,我可以使用任何C++/C庫,只要我自己包含它?Android NDK上可用的庫?
特別是,我需要壓縮,加密,正則表達式和sqlite。我正在考慮使用zlib
,crypto++
,sqlite
(duh!)和boost
,但如果它已經可用,可以使用其他任何東西。
而且,如果沒有可供使用的內置,你會推薦其他的東西,然後我上面的選擇(我喜歡公共領域可能的情況下,或BSD或類似)
Android NDK中默認存在任何庫嗎?如果沒有,我可以使用任何C++/C庫,只要我自己包含它?Android NDK上可用的庫?
特別是,我需要壓縮,加密,正則表達式和sqlite。我正在考慮使用zlib
,crypto++
,sqlite
(duh!)和boost
,但如果它已經可用,可以使用其他任何東西。
而且,如果沒有可供使用的內置,你會推薦其他的東西,然後我上面的選擇(我喜歡公共領域可能的情況下,或BSD或類似)
首先,我認爲你需要下載NDK包從這裏:http://developer.android.com/sdk/ndk/index.html和調查包的文件。我相信你會得到你大部分問題的答案。 快速回答你的問題。是的,Android NDK中默認有庫。例如標準的C和C++庫。
.so
本身是私人的。如果您需要修改,您當然可以編譯自己的SQLite庫,但通常您應該從Java訪問它。我已經做了這個加密的目的。zlib
是提供給NDKcrypto++
當然可以通過NDK被編譯到默認的Android NDK提供了一些圖書館,所謂 '穩定的原生API'(http://developer.android.com/sdk/ndk/overview.html):
libc
(C庫)報頭libm
(數學庫)報頭libz
(zlib壓縮)報頭liblog
(Android的記錄)頭libjnigraphics
(像素緩衝區訪問)標題(適用於Android 2.2及更高版本)。這僅是相對於加密++部分回答的最小組報頭....
加密++有一個wiki頁面,其中包含命令行編譯指令Android (Command Line)。該過程將創建各種庫並向您展示如何構建cryptest.exe
以驗證設備上的庫。但是你仍然需要使用Android的構建系統來創建你的包裝項目。
Piotr MorgwaiKotarbiński有一個關於使用Android的修改版本構建Crypto ++庫的頁面。見Building Crypto++ with NDK toolchain。我不相信Piotr的文章驗證設備上的庫。
爲什麼你需要所有與NDK?例如,如果你要出去使用SQLite,那麼從Java訪問SQLite時,你不可能獲得任何顯着的性能提升。閱讀[「何時在本地代碼中開發」](http://developer.android.com/sdk/ndk/overview.html#choosing)以獲取關於此點的更多信息。 –
@ Ted-Hopp這是一款在多個平臺上運行的應用程序,(當前爲Windows和Android,希望以後可以使用)。該應用程序的主要引擎是使用C++,因此我不需要爲每個平臺重寫它。引擎將數據存儲在SQLite表中。 – baruch