2010-06-16 28 views
7

Tôi làm việc cho một nhà điều hành và chúng tôi tải trước ứng dụng trên điện thoại Android.Ứng dụng Android được tải sẵn với tệp thư viện .so không thể được nâng cấp

Tuy nhiên, một số ứng dụng được tải trước, sau khi được nâng cấp từ Market, bị lỗi.

Vấn đề là thế này:
- ứng dụng có chứa một file .so thư viện
- để preload các ứng dụng hoàn chỉnh trên một điện thoại, .so tập tin thư viện phải được đặt riêng vào thư mục lib (/ system/lib/libXXXXjni.so)
- khi ứng dụng được tải sẵn được nâng cấp từ Market và chạy, thay vì tệp thư viện .so trong APK mới được tìm thấy, tệp .so cũ được tải trước được tìm thấy đầu tiên - gây ra sự cố, vì hai .so fiels có nội dung khác nhau

Có ai có đề xuất làm việc xung quanh, hoặc kiến ​​thức về algorthim thư viện tìm kiếm có thể giúp tôi giải quyết điều này?

Một giải pháp có thể có thể là chỉ cần đổi tên tệp thư viện, nhưng điều đó có đủ không?

Cảm ơn trước ...

Trả lời

0

Khi bạn tải trước, hãy thử đặt các thư viện ứng dụng trong: /data/data/com.package.foobar/lib/libXXXXjni.so

Đổi tên thư viện sẽ công việc. Có thể sử dụng số phiên bản của ứng dụng làm tên của tệp .so. Việc xây dựng trở nên phức tạp hơn mặc dù.

+0

Đối với bất kỳ loại tình huống tải trước nào, không phải thiết bị phải có quyền truy cập root để thực hiện đổi tên tệp trong vị trí/dữ liệu/dữ liệu đó không? – Maximus

+0

Tôi đã nghĩ rằng thư viện được một tên mới trong phiên bản nâng cấp. Việc đổi tên sẽ diễn ra trên máy của nhà phát triển (và trong System.loadLibrary (...) gọi trong mã.) Tốt nhất tôi nghĩ là tải trước thư viện trong thư mục lib của ứng dụng thay vì/system/lib. – abh

Các vấn đề liên quan