2017-03-14 43 views
0

我有一個簡單的cpp庫,它返回一個字符串值。這與https://developer.android.com/studio/projects/add-native-code.htmlAndroid NDK cpp庫位於何處以及在哪裏加載?

相似,在分析完apk後,我看到一個lib文件夾,其中包含用於不同ABI的.so文件。

我的問題是:由於生成的文件都包含在apk本身,所以from whereto where確實System.loadLibary(String)採取了行動? 庫文件是否在私有應用程序的文件夾中,並且只能在應用程序加載後才能訪問?其他應用程序在我的應用程序中使用了loadLibrary後,是否可以訪問此庫?它被複制到android系統文件夾的某個地方嗎?

+0

這是您的私人圖書館,沒有人可以訪問它 – pskink

回答

1

使用指定的庫名加載動態庫。包含本地代碼的文件 從本地文件系統中從 位置加載,該位置通常會獲取庫文件。這個過程的細節 是依賴於實現的。從庫 名稱到特定文件名的映射是以系統特定的方式完成的。

來源:https://developer.android.com/reference/java/lang/Runtime.html#loadLibrary(java.lang.String)

庫加載時不會被複制到共享位置。加載庫意味着它的符號鏈接到本地​​方法。

相關問題