2012-08-30 31 views
6

Tôi muốn bao gồm dữ liệu bổ sung (cho mỗi người dùng) trong mỗi tệp APK đã tải xuống. Nói cách khác, tôi có một tập tin APK đang tồn tại trên máy chủ và muốn:làm cách nào để thay thế tệp XML trong APK?

  • thay thế tập tin /res/user_info.xml trong APK hiện với tập tin XML tạo động
  • cập nhật và tái ký trọn gói trước khi người dùng tải nó

Thông tin thêm: tôi biết nó có thể được thực hiện bằng aapt, apktool, jarsigner, ... vấn đề là tài liệu khá nghèo và tôi đã không thể tìm thấy (hoặc phát triển) một kỹ thuật làm việc lại -pack tệp APK. Ví dụ: aapt luôn đặt tệp XML trong đường dẫn gốc (/) bất kể tôi làm gì. Tôi cũng không chắc chắn tài nguyên nào cần được cập nhật để tệp APK có hiệu lực trở lại. Ngoài ra, các tệp XML hiện có trong /res/ được biên dịch - tôi có cần phải làm điều đó với tệp XML của mình không? Nếu có, làm thế nào để tôi làm điều đó? Nếu không, tôi có nên đặt tệp XML của mình trong /res/raw/ không?

Câu hỏi: làm cách nào để thay thế tệp XML trong APK và đóng gói lại nó? Bước nào là cần thiết và tôi sử dụng công cụ nào?

+0

tốt, apk chỉ là tệp zip có thư mục/tệp có cấu trúc. vì vậy bạn có thể giải nén nó và làm những gì bạn muốn và nén nó lại với phần mở rộng apk. –

+1

Về lý thuyết có, nhưng trong thực tế bạn cũng có thể cần phải biên dịch các tệp XML, thêm chúng vào danh sách tài nguyên, ký lại, ... và đây chỉ là những điều tôi biết. Vì vậy, tôi tự hỏi toàn bộ quá trình là gì. – johndodo

+0

Tôi không biết loại thông tin bạn lưu giữ trong tệp xml đó nhưng nếu bạn chỉ thay đổi dữ liệu giá trị của xml không phải là khóa mà nó sẽ hoạt động. –

Trả lời

3

Trong số này writing bạn có thể tìm các bước cơ bản về giải nén và đóng gói tệp APK.

Cơ bản;

= Sử dụng apktool.bat d -s sample.apk .\sample\ để giải mã chỉ nguồn của gói ứng dụng. (Trong trường hợp của bạn không có nhu cầu để giải mã một phần nguồn)

= Thêm/chỉnh sửa/thay thế các nguồn lực cần thiết của bạn.

= Sử dụng apktool.bat b .\sample\ .\sample_edited.apk để tạo apk đã thay đổi.

= Tạo một khóa RSA 2048 ký apk nếu bạn không đã có một: keytool -genkey -v -keystore my.keystore -alias myandroidalias -keyalg RSA -keysize 2048 -validity 20000

= Đăng apk với tạo chính jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore my.keystore .\sample_edited.apk -signedjar .\sample_signed.apk myandroidalias

= Và sắp xếp apk ký hợp đồng với 4-byte ranh giới zipalign.exe -v 4 .\sample_signed.apk .\sample_aligned.apk (căn chỉnh nén đi kèm với android-sdk)

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