Không thể di chuyển một vài ứng dụng sang thẻ SD


9

Tôi có các ứng dụng như Any.DOAK Notepad được cài đặt trong điện thoại Samsung Galaxy Y Android 2.3.6 của tôi. Tôi đã thử Titanium BackupApp 2 SD (chuyển ứng dụng sang SD) nhưng vẫn không thể di chuyển các ứng dụng này sang thẻ SD. Chuyện gì vậy? Ai đó có thể giúp tôi ra khỏi đây?


1
Điều gì xảy ra nếu bạn cố gắng chuyển các ứng dụng sang SD?
Lưu lượng

1
@Flow xem câu trả lời của tôi. Cả hai ứng dụng đều có các widget được tích hợp, vì vậy rất có thể chúng không hỗ trợ App2SD.
Izzy

Nếu bạn muốn chuyển ứng dụng của mình sang thẻ sd vì "dung lượng lưu trữ nội bộ thấp", hãy kiểm tra android.stackexchange.com/questions/30620/iêu
Sylvain Huard

Câu trả lời:


7

Một ứng dụng phải hỗ trợ rõ ràng cho App2SD hoặc bạn không thể di chuyển nó vào thẻ. Có một số lý do tại sao một ứng dụng có thể không hỗ trợ nó:

  • sử dụng các widget (cả hai ứng dụng được đề cập dường như rơi vào danh mục này. AK Notepad: "Ghim ghi chú vào màn hình chính của bạn"; Any.DO: "Bạn thậm chí có thể thêm tiện ích của chúng tôi vào màn hình chính của bạn")
  • điều hành một dịch vụ

Vì sdcard sẽ không thể truy cập được khi kết nối với máy tính, cả hai thứ sẽ "sập" (vì chúng không thể truy cập dữ liệu của chúng nữa, v.v.). Tất nhiên luôn có khả năng nhà phát triển đơn giản là không quan tâm - trong trường hợp đó bạn nên liên hệ với anh ta và hỏi.


Tôi đã gặp một trường hợp thú vị - một ứng dụng, f-droid.org/reposeective/browse/?fdid=com.nanoconverter.zlab có một lỗi - nó cung cấp dịch vụ và tiện ích nền, nhưng 4.2.2 của tôi có thể chuyển nó sang Thẻ SD (mất chức năng đó, ofc).
Tư vấn miễn phí

3

Có một số yếu tố có thể ảnh hưởng đến điều này:

  1. Một ứng dụng phải tuyên bố rõ ràng rằng nó thích hợp hơn / có thể được cài đặt trên thẻ SD.

    Bắt đầu với API cấp 8, bạn có thể cho phép ứng dụng của mình được cài đặt trên bộ nhớ ngoài (ví dụ: thẻ SD của thiết bị). Đây là một tính năng tùy chọn mà bạn có thể khai báo cho ứng dụng của mình với android:installLocationthuộc tính tệp kê khai. Nếu bạn không khai báo thuộc tính này, ứng dụng của bạn sẽ chỉ được cài đặt trên bộ nhớ trong và nó không thể được chuyển sang bộ nhớ ngoài .

    (Nhấn mạnh của tôi)

  2. Một ứng dụng được thiết lập để biên dịch bằng API 7 (Froyo) hoặc thấp hơn, không hỗ trợ cài đặt ứng dụng trên thẻ SD (ngay cả khi nó được cài đặt trên GingerBread hoặc các thiết bị mới hơn)

    Khả năng ứng dụng của bạn cài đặt trên bộ nhớ ngoài là một tính năng chỉ khả dụng trên các thiết bị chạy API cấp 8 (Android 2.2) trở lên. Các ứng dụng hiện có được xây dựng trước API Cấp 8 sẽ luôn cài đặt trên bộ nhớ trong và không thể chuyển sang bộ nhớ ngoài (ngay cả trên các thiết bị có API Cấp 8) . Tuy nhiên, nếu ứng dụng của bạn được thiết kế để hỗ trợ Cấp API thấp hơn 8, bạn có thể chọn hỗ trợ tính năng này cho các thiết bị có API cấp 8 trở lên và vẫn tương thích với các thiết bị sử dụng Cấp API thấp hơn 8.

    (Nhấn mạnh của tôi)

Những lý do tại sao một số ứng dụng không thích được cài đặt trên thẻ SD như sau:

Khi người dùng cho phép lưu trữ dung lượng lớn USB để chia sẻ tệp với máy tính của họ (hoặc nếu không ngắt kết nối hoặc xóa bộ nhớ ngoài), mọi ứng dụng được cài đặt trên bộ nhớ ngoài và hiện đang chạy sẽ bị hủy. Hệ thống thực sự trở nên không biết đến ứng dụng cho đến khi bộ nhớ lớn bị vô hiệu hóa và bộ nhớ ngoài được hiển thị lại trên thiết bị. Bên cạnh việc giết ứng dụng và làm cho nó không có sẵn cho người dùng, điều này có thể phá vỡ một số loại ứng dụng theo cách nghiêm trọng hơn. Để ứng dụng của bạn hoạt động ổn định như mong đợi, bạn không nên cho phép ứng dụng của mình được cài đặt trên bộ lưu trữ ngoài nếu ứng dụng sử dụng bất kỳ tính năng nào sau đây, do hậu quả được trích dẫn khi không lưu trữ bộ nhớ ngoài:

  • Dịch vụ

    Việc chạy của bạn Servicesẽ bị giết và sẽ không được khởi động lại khi bộ nhớ ngoài được kết nối lại. [...]

  • Dịch vụ báo động

    Báo động của bạn đã đăng ký AlarmManagersẽ bị hủy. [...]

  • Động cơ phương thức nhập liệu

    IME của bạn sẽ được thay thế bằng IME mặc định. [...]

  • Hình nền sống

    Hình nền Live đang chạy của bạn sẽ được thay thế bằng Hình nền sống mặc định. [...]

  • Tiện ích ứng dụng

    Widget ứng dụng của bạn sẽ bị xóa khỏi màn hình chính. Khi bộ nhớ ngoài được kết nối lại, Tiện ích ứng dụng của bạn sẽ không có sẵn để người dùng chọn cho đến khi hệ thống đặt lại ứng dụng gia đình (thường là cho đến khi khởi động lại hệ thống).

  • Những người quản lí tài khoản

    Tài khoản của bạn được tạo AccountManagersẽ biến mất cho đến khi bộ nhớ ngoài được hiển thị lại.

  • Bộ điều hợp đồng bộ hóa

    AbstractThreadedSyncAdapterChức năng đồng bộ hóa của bạn và sẽ không hoạt động cho đến khi bộ nhớ ngoài được kết nối lại.

  • Nhưng ngươi quản ly thiêt bị

    DeviceAdminReceiverKhả năng quản trị viên của bạn và tất cả sẽ bị vô hiệu hóa, điều này có thể gây ra hậu quả không lường trước được cho chức năng của thiết bị, có thể tồn tại sau khi bộ nhớ ngoài được kết nối lại.

  • Bộ thu phát đang nghe "đã hoàn thành khởi động"

    Hệ thống cung cấp ACTION_BOOT_COMPLETEDphát sóng trước khi bộ nhớ ngoài được gắn vào thiết bị. Nếu ứng dụng của bạn được cài đặt trên bộ nhớ ngoài, nó không bao giờ có thể nhận được phát sóng này.

Nếu ứng dụng của bạn sử dụng bất kỳ tính năng nào được liệt kê ở trên, bạn không nên cho phép ứng dụng của mình cài đặt trên bộ nhớ ngoài.

(Một số phần được điều chỉnh lại. Họ đang giải thích những gì các nhà phát triển phải làm để làm cho ứng dụng của họ hoạt động chính xác sau khi thẻ SD được kết nối lại.)

Lưu ý : câu trả lời này đóng vai trò là thông tin chung cho "Tại sao một số ứng dụng không thể được chuyển sang thẻ SD"

Nguồn: Nhà phát triển Android: Vị trí cài đặt ứng dụng .


1

Hoàn toàn có thể di chuyển các ứng dụng sang thẻ SD và vẫn khiến chúng hoạt động hoàn hảo (bao gồm các tiện ích và dịch vụ) thông qua Link2SD.

EDIT: Sử dụng phương pháp này yêu cầu quyền truy cập root trên điện thoại của bạn và cũng cần định dạng thẻ SD của bạn để có phân vùng thứ hai trên đó.

Để tránh đăng lại câu trả lời một lần nữa ở đây, tôi sẽ chỉ cần thả một liên kết đến nó: https://android.stackexchange.com/a/145591/167026

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.