2012-12-19 20 views
4

我有幾個本地庫,我想通過apk包部署它們(即將它們複製到庫文件夾或資源)。 然後我需要安裝單獨的應用程序和使用加載這些庫:Android 4.x.通過apk部署本地庫並從其他應用程序加載

System.load(path_to_lib); 

哪種方式是可以做到的?據我所知,我不能只是因爲安全原因使用/data/data/libs_package/lib/native_lib.so路徑加載庫。還有其他方法嗎?

在此先感謝。

+0

AFAIK,這是不可能的。 – CommonsWare

回答

2

請參閱android-ndk討論組中的this thread

總之,谷歌的Android開發者說:

如果這兩個應用程序有一個共享的用戶ID,那麼你就可以明確地用全路徑調用的System.loadLibrary()你要加載的共享庫。
...
但請不要嘗試做任何這些。你要引起疼痛爲您的用戶 - 無論是從一個或其他應用程序不兼容造成,使你分手,或者用戶卸載其他應用程序,讓你打破等

而另一名開發人員更新提出了以下解決方案:

所以我現在做的(和它的作品)是有一堆包沒有 共享用戶ID(它們由同一個密鑰簽名,但我不認爲這 在這裏很重要)。核心應用程序從 的其他包(我已經有一個自定義的解包器來解決其他Android bug的一堆 )的.apk解壓.so。我將它們解包到核心軟件包 已知的位置,然後從那裏dlopen()。

相關問題