Làm cách nào để giữ hai phiên bản của một ứng dụng được cài đặt?


43

Android Market vừa cập nhật một ứng dụng trong thiết bị của tôi. Tôi thích bản cập nhật, nhưng nó hoàn toàn khác với phiên bản trước cũng là thứ tôi thích. Vì vậy, tôi muốn giữ phiên bản cuối cùng quá. Tôi có apk phiên bản mới nhất nhờ Titanium Backup. Nhưng, tôi không thể cài đặt nó mà không thay thế cái hiện tại (kiến trúc Android tệ). Có cách nào để làm điều này? Hacks vv ..
Lưu ý: Tôi muốn giữ phiên bản hiện tại phải được kết nối với Market để nhận các bản cập nhật trong tương lai.

Câu trả lời:


29

Nó có thể được thực hiện, nhưng không đơn giản vì những lý do eldarerathis đã đề cập. Bạn cần apktool . Tham khảo hướng dẫn này về cách sử dụng nó. Và điều này khi ký apk sau khi bạn hoàn thành.

Bạn cần sửa đổi tệp AndroidManifest.xml. Tìm dòng giống như thế này:

manifest package="com.example.app"

và thay đổi nó thành một cái gì đó như:

"com.example.app.foo"

Sau khi bạn hoàn thành, biên dịch lại rồi từ chức. Để khôi phục dữ liệu của bạn, hãy thử cách sau qua adb:

adb rm /data/data/com.example.app.foo
adb push /data/data/com.example.app /data/data/com.example.app.foo

Trong trường hợp com.example.applà tên gói của bản gốc và com.example.app.foolà sửa đổi.

Luôn có một cơ hội nhỏ là ứng dụng sẽ bị hỏng hoặc tùy theo cách cấu trúc ứng dụng mà bạn có thể nhận được một hộp thoại mỗi khi bạn thay đổi màn hình nhắc bạn chọn ứng dụng nào bạn muốn khởi chạy, nhưng chắc chắn nó đáng để thử nếu bạn muốn nó đủ tệ

Tất nhiên, hai ứng dụng sẽ không chia sẻ cùng một cài đặt và dữ liệu.


2
Tuyệt vời ... Tôi không nghĩ nó sẽ là vấn đề pháp lý vì tôi sẽ không phân phối / bán nó .. Cảm ơn!
Android Quesito

1
Nó phụ thuộc vào đất nước của bạn. Ở Hungary, việc thiết kế ngược một ứng dụng cho mục đích học tập / cá nhân là điều hợp pháp nhưng tôi không biết về phần còn lại của thế giới. Nhưng vì bạn không phân phối bất cứ thứ gì nên bạn sẽ không gặp rắc rối.
RR

16

Bạn không thể làm điều này. Mỗi ứng dụng Android có một tên gói, xác định hiệu quả không gian tên Java / Dalvik mà các lớp của nó chiếm giữ. Bạn không thể cài đặt hai gói cùng tên vì nó sẽ tạo ra các không gian tên chồng chéo, đó là lý do tại sao nó luôn thay thế gói cũ khi bạn cài đặt một gói mới. Cách duy nhất bạn có thể làm điều này một cách khả thi là nếu bạn có thể lấy nguồn cho ứng dụng và thay đổi tất cả các định nghĩa gói.


7

Làm điều đó trong 5 phút

Phương pháp : Thay đổi tên gói để Android sẽ nhận ra nó là một ứng dụng khác.

Không APKtool, không adb, không cần kỹ năng siêu người dùng.

Công cụ yêu cầu

Các bước

  1. Sao lưu / Tải xuống bản sao của ứng dụng mong muốn ( app.APK)
  2. Chuyển sang PC
  3. Trên PC tải xuống JAVA và ApkRename
  4. Thay đổi tên gói bằng cách cung cấp, đường dẫn đến tệp APK và tên gói mới, thành ApkRename
  5. Ký APK bằng ApkSign
  6. Chuyển APK mới sang điện thoại và cài đặt nó.

LƯU Ý: Trong trường hợp có bất kỳ khó khăn nào trong việc ký APK, hãy sử dụng ứng dụng Advanced permission managerchỉnh sửa APK Android như và thực hiện bất kỳ chỉnh sửa nào, nhấn lưu và cài đặt. Lúc này họ sẽ ký tên vào ứng dụng.


2

Bạn có thể thử đóng gói lại ứng dụng. Tôi đã từng cài đặt một số phiên bản chỉnh sửa của một trò chơi và kết quả là hai trò chơi. Nếu nhớ tốt, tên gói không giống nhau.


0

Đôi khi, có một số tài liệu tham khảo trong thư viện thực thi ( .so) và việc thay đổi tên gói (cũng là smali -> class.dex) cũng không giúp được gì.

Trong trường hợp đơn giản, hãy tìm ApkEditor .


1
Đây là một khởi đầu tốt, nhưng không giải thích những thay đổi bạn cần thực hiện trong ApkEditor. Nếu bạn muốn câu trả lời của mình hữu ích, bạn có thể muốn chỉnh sửa nó để thêm một chút thông tin.
Dan Hulme
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.