2010-06-16 9 views
7

Pracuję dla operatora i wstępnie ładujemy aplikacje na telefony z systemem Android.Wstępnie załadowana aplikacja dla systemu Android z rozszerzeniem .so nie może zostać zaktualizowana

Jednak niektóre wstępnie załadowane aplikacje po uaktualnieniu z rynku ulegają awariom.

Problem jest taki:
- aplikacja zawiera plik .so biblioteki
- w celu wstępnego załadowania kompletną aplikację na telefonie, plik .so biblioteki musi być umieszczony oddzielnie do katalogu lib (/ system/lib/libXXXXjni.so)
- gdy wstępnie załadowana aplikacja zostanie uaktualniona z Market i uruchomiona, zamiast znalezionego pliku biblioteki .so w nowym pliku APK, starszy wstępnie załadowany plik .so zostanie znaleziony pierwszy - powodując awarię, ponieważ dwie .so pola mają różną zawartość

Czy ktoś ma sugerowane obejście lub znajomość algortimu, który może mi pomóc rozwiązać to?

Jednym z możliwych rozwiązań może być po prostu zmiana nazwy pliku biblioteki, ale czy to wystarczy?

góry dzięki ...

Odpowiedz

0

Podczas wstępnego ładowania, spróbuj umieścić bibliotekę aplikacji w: /data/data/com.package.foobar/lib/libXXXXjni.so

Zmiana nazwy biblioteki będzie praca. Być może używając numeru wersji aplikacji jako nazwy pliku .so. Jednak kompilacja staje się bardziej skomplikowana.

+0

Dla każdego rodzaju sytuacji obciążenia wstępnego urządzenie nie musi mieć uprawnień roota do zmiany nazwy pliku w tej lokalizacji/danych/danych? – Maximus

+0

Myślałem, że biblioteka otrzymuje nową nazwę w ulepszonej wersji. Zmiana nazwy nastąpiłaby na komputerze programisty (iw wywołaniu System.loadLibrary (...) w kodzie.) Najlepiej, jakbym wstępnie ładował bibliotekę w katalogu lib aplikacji zamiast/system/lib. – abh

Powiązane problemy