我是Android NDK的新手,我不明白靜態庫和共享庫之間的區別。他們是什麼,什麼時候我會選擇另一種類型?Android NDK中靜態庫和共享庫的區別?
30
A
回答
47
術語共享庫並不適合Android的NDK,因爲在很多情況下.so庫實際上並不是在應用程序之間共享的。最好將NDK構建的庫分類爲靜態和動態。
每個Android應用程序都是一個Java應用程序,NDK代碼的唯一入口點是將其作爲動態庫加載並通過JNI調用它。
靜態庫是編譯目標文件的存檔。他們在構建時捆綁在其他庫中。未使用的來自靜態庫的代碼部分被NDK剝離以減小總大小。
動態庫在運行時從單獨的文件加載。它們可以包含它們依賴的靜態庫或加載更多動態庫。
因此,您實際需要的Android開發至少有一個共享庫,它將從Java代碼中調用,並且最好與靜態庫相關聯。
0
本地共享庫:NDK從您的本機源代碼構建這些庫或.so文件。 本地靜態庫:NDK也可以構建靜態庫或.a文件,您可以將其鏈接到其他庫。
這是根據NDK文檔
相關問題
- 1. 使用Android NDK將共享庫和靜態庫編譯到共享庫中
- 2. 靜態庫和共享庫之間的區別?
- 3. 共享庫內的靜態庫的Android NDK調用API
- 4. Android NDK/JNI:使用靜態庫構建共享庫
- 5. Android NDK:將靜態庫鏈接到共享庫
- 6. Android NDK和靜態庫
- 7. 共享和靜態庫
- 8. Android NDK共享庫UnsatisfiedLinkError OpenGLESv2
- 9. Qt 5:共享庫和靜態庫
- 10. 混合靜態庫和共享庫
- 11. 混合共享庫和靜態庫
- 12. C++靜態庫和共享庫
- 13. NDK - 從靜態庫構建ARMv5/ARMv7共享庫
- 14. Android,NDK,構建靜態庫
- 15. 混合靜態和動態(共享)庫?
- 16. 共享iPhone靜態庫
- 17. 取決於共享庫的靜態庫
- 18. Buildind NDK靜態庫
- 19. 在Android中包含預建的靜態庫到共享庫中
- 20. android ndk prebuild 64位的共享庫
- 21. 對共享庫的Android NDK -Linker錯誤。
- 22. Android下的鏈接共享庫NDK
- 23. 創建靜態和共享C++庫
- 24. scons建立靜態和共享庫
- 25. 靜態和共享庫符號衝突?
- 26. 將共享庫轉換爲靜態庫
- 27. CMake:共享庫,使用靜態庫
- 28. 將靜態庫鏈接到共享庫?
- 29. SCons與靜態庫(.a)共享庫(.so)
- 30. 鏈接一個共享庫靜態到我的共享庫
乾淨的簡潔..謝謝 – baash05 2015-11-20 13:25:33
真正偉大的答案 – 2016-10-21 06:40:33
謝謝,真的很不錯的答案。重點。 – 2017-12-21 21:34:26