2016-05-13 71 views
0

我試圖理解爲什麼NDK與在 http://developer.android.com/ndk/guides/stable_apis.htmlNDK限制支持庫

記錄。所以圖書館只有有限的支持沒有任何理由爲什麼其他的.so庫(libhardware,libgui,libservicesensor等),這用java框架是不是也可以用ndk?

+1

Google並不試圖爲Android版本的這些庫維護二進制兼容性。如果您鏈接到穩定列表之外的庫,則您的應用可能無法加載某些版本的Android,因爲您所依賴的符號不存在,已被更改等。 – CommonsWare

+0

這兩種類型的庫都是從C++文件構建的,那麼二進制兼容的含義是什麼?謝謝。 – ransh

回答

2

將API公開後,它們不能以影響現有應用程序的方式更改它,即只能擴展而不能更改。這給它周圍的任何開發增加了相當大的負擔,並限制了它可以開發的方式。因此,人們必須認真決定他們準備好公開支持哪些API,並權衡這些公衆將獲得哪些好處。

由於Android的設計是主要的公共API是在java中,使NDK中的所有東西都是巨大的重複。 (即使較低級別的組件是C/C++,它們也不是公開的,它們只是爲了被更高級別的公共API組件使用。)在實踐中,只有少數本地API已經被暴露,這是實現良好性能所必需的,爲了方便起見,還有一些有限的部件。