2014-05-09 88 views
1

我們的APK有一個共享庫(libxyz.so)。當安裝該APK時,它會將/ .so文件推入/ data/app-lib/packagename /中。通過安裝APK將.so放入/ system/lib Android版本

我們希望不要在這條路上走,而應該在APK安裝時將.so自動推送到/ system/lib。但是,/ system/lib需要權限和特權。

我們希望將.so移動到/ system/lib的原因是它也可以被其他應用程序加載。 (可以有任何其他方式爲兩個應用程序共享相同的libxyz.so)

什麼可能的方式來達到目的?

回答

0

我們想,與其在這條道路去的。所以應該自動在APK的時間推到/系統/ lib中安裝

那是不可能的。

爲什麼我們要推。所以到/ System原因/ lib目錄是,它可以被其他應用程序被加載以及

這將是一個壞主意,即使這是可能的。您無權強制用戶升級所有可能使用此庫的應用程序。除非你是非常非常小心,應用程序將崩潰,因爲他們期待庫的較舊版本,並且將常見副本更新爲新版本。這就是Google爲什麼要儘量減少API更改的原因,即使這樣做的代價是有些東西不在開發人員希望擁有的公共API中。這通常被稱爲"dependency hell"

什麼可能是達到目的的可能方法?

歡迎您創建的Android的自定義生成包含此.so,創建一個包含自定義生成一個ROM國防部,並部署國防部ROM到您控制的設備。

0

如果你有一個根深蒂固的設備,您可以使用cp複製.so/system/lib

Process process = Runtime.getRuntime().exec("su"); 
DataOutputStream writer = new DataOutputStream(process.getOutputStream()); 
writer.writeBytes("cp /your/path/xxx.so /system/lib/xxx.so"); 
writer.flush(); 
相關問題