我之前在G + Android社區發佈過這個問題,但目前爲止還沒有答案。 這是關於下載和加載本地庫。運行從互聯網上下載的本地庫
我一直在閱讀和理解,理論上可以下載一個「.so」文件,並使用System.load方法加載它。
但是我也在這裏閱讀以下內容(https://groups.google.com/forum/#!topic/android-ndk/0uY4qgam1Ws):「您也不能通過常規方式將ARM上的SDCARD加載到SDCARD上,因爲ARM支持非可執行頁面和android的mmap實現()拒絕映射由noexec文件系統支持的可執行頁面。「
這對我來說有點混亂(實際上很混亂)。
所以,這裏是我的問題:在生產設備上,它是或不可能下載一個庫,將它粘在手機的某個地方,然後加載它,然後與JNI一起使用它。
如果是這樣,我們確定它將在未來的Android新版本中仍然有效嗎?
贊,Google對此的官方建議是什麼?
我想,但是在我發佈的鏈接中,在Google上爲Android工作的Diane Hackborn似乎對她自己的答案非常不安全,所以... – Redwarp 2014-09-10 12:34:23
不,不確定的評論(她在該主題中的第二個回覆)是關於使用fennec二進制加載器,她認爲這可能依賴於私有細微的實現細節。她在線索中的第一個回覆沒有顯示出任何猶豫。 – mstorsjo 2014-09-10 13:08:44
如果我將.so文件複製到Context.getDir(「lib」,MODE_PRIVATE)路徑,則不需要chmod + x。此外,它實際上給出了別名「/ data/data//app_lib」而不是「/ data/data//lib」。測試了幾款設備,從Android 10到19,armeabi-v7a,x86 ...... –
Redwarp
2014-09-16 14:20:04