Cài đặt vào SDCard theo mặc định


29

Tôi muốn biết liệu có cách nào để bảo Android cài đặt ứng dụng trên thẻ micro SD theo mặc định thay vì phải tải ứng dụng vào bộ nhớ trong trước và sau đó phải di chuyển chúng sang thẻ SD theo cách thủ công.

Cảm ơn



đặc biệt vì @Yeradis trả lời android.stackexchange.com/a/4976/156
GAThrawn

4
@GAThrawn Không, đó không phải là một bản sao của điều đó. Câu hỏi bạn liên kết là "có thể chuyển ứng dụng sang SD" không. Đây là "cách chỉ định vị trí cài đặt mặc định". Cùng đường, nhà khác.
Izzy

Câu trả lời:


33

Bài viết này tại HowtoGeek mô tả một cách có thể sử dụng :

  • cho phép gỡ lỗi USB
  • Kết nối thiết bị với máy tính của bạn
  • thực hiện lệnh adb shell pm setInstallLocation 2
    (hoặc, cú pháp mới , adb shell pm set-install-location 2)
  • ngắt kết nối, thực hiện.

Lệnh này sẽ đặt mục tiêu cài đặt mặc định của thiết bị thành SDCard của bạn. Điều đó không nhất thiết có nghĩa là mọi thứ được cài đặt ở đó: chỉ các ứng dụng hỗ trợ này sẽ xuất hiện ở đó và các nhà phát triển có thể "ghi đè" điều này trong bảng kê khai ứng dụng của họ nếu họ nghĩ cần thiết. Từ tham chiếu API được liên kết :

Thay đổi vị trí cài đặt mặc định. Giá trị vị trí:

  • 0: Tự động cho phép hệ thống quyết định vị trí tốt nhất.
  • 1: Cài đặt nội bộ trên bộ lưu trữ thiết bị nội bộ.
  • 2: Cài đặt bên ngoài trên phương tiện truyền thông bên ngoài.

Lưu ý: Điều này chỉ dành cho gỡ lỗi; sử dụng điều này có thể khiến các ứng dụng bị phá vỡ và các hành vi không mong muốn khác.

Để biết thêm chi tiết về ADB và cách bạn có thể lấy phiên bản tối thiểu của nó cho máy tính của mình (không cần cài đặt toàn bộ SDK), bạn có thể xem qua thẻ -wiki .


Cập nhật: Để tránh nhầm lẫn với câu trả lời của t0mm13b , một số giải phóng mặt bằng trong quá trình cài đặt:

  1. bạn tìm thấy một số ứng dụng trên và quyết định cài đặt nó
  2. sau khi bạn đã nhấp vào "cài đặt" và nhất trí về các điều khoản / quyền, các được tải về để/data/local , tức là đến bạn . Bạn không thể thay đổi điều đó.
  3. Khi quá trình tải xuống hoàn tất, .apknó sẽ được cài đặt tự động. Ở đâu, phụ thuộc vào nhiều thứ:
    • nếu nhà phát triển không chỉ định thuộc android:installLocationtính trong ứng dụng của mình Manifest, ứng dụng sẽ được cài đặt vào câu chuyện nội bộ. Dừng hoàn toàn, không có lựa chọn nào khác (xem: Tham chiếu API ).
    • nếu điều này android:installLocationđược đặt thành preferExternalvà bộ nhớ ngoài khả dụng, nó sẽ đến đó.
    • nếu được đặt thành auto, nó lại phụ thuộc:
      1. ứng dụng có chứa các widget, dịch vụ, muốn bắt đầu khi khởi động và một số thứ khác, nó sẽ chuyển đến bộ nhớ trong. Dừng lại hoàn toàn, không có sự lựa chọn nào khác.
      2. nó đi đến nơi các thiết bị "vị trí cài đặt mặc định" trỏ đến

có thể giúp bao gồm một cảnh báo - nó không được bảo đảm để hoạt động, đặc biệt là nếu một ứng dụng có các vật dụng riêng của họ ... :)
t0mm13b

Như tôi đã viết: chỉ các ứng dụng hỗ trợ này sẽ xuất hiện ở đó :) Các tiện ích, dịch vụ, v.v ... đang nói rằng nó không hỗ trợ nó :)
Izzy

sau khi thực hiện lệnh adb shell pm setInstallLocation 2 lỗi: không tìm thấy thiết bị
moudrick

1
Nghe có vẻ như bạn đã bỏ qua hai bước đầu tiên (cho phép gỡ lỗi USB và kết nối thiết bị sau đó) - hoặc bạn đang ở trên Windows và không cài đặt trình điều khiển tương ứng. Vui lòng theo liên kết tương ứng và tiếp tục từ đó, @moudrick.
Izzy

5

Điều đó không thể thay đổi! Đó là cách Android hoạt động.

Tất cả các tải xuống từ Google Play sẽ chuyển đến hệ thống tệp nội bộ, sau đó từ:

  • Cài đặt> Quản lý ứng dụng
  • Chạm vào ứng dụng đã nói, kiểm tra xem nút Move to SDCard đã được bật chưa, sau đó bạn có thể làm như vậy.

Nếu nút Move to SDCard bị vô hiệu hóa hoặc bị mờ đi, có lẽ nó sẽ ngăn ứng dụng hoạt động - chẳng hạn như các widget của riêng chúng trên màn hình chính.

Ngoài ra, xem câu trả lời này trong thanh bên liên quan ở bên phải của trang này. :)


1
Bạn có chắc chắn, t0mm13b? Không có lệnh ADB nào adb shell pm setInstallLocation 2(ví dụ SDCard), như được mô tả ở đây ?
Izzy

1
Nhà phát triển có thể chỉ định rằng trong Bản kê khai để cung cấp cho ứng dụng khả năng được chuyển sang SDCard. android:installLocation="auto"Chưa thấy adb shell pm setInstallLocation 2, có lẽ bạn chỉ định tên gói trong trường hợp đó ...
t0mm13b

1
Không, t0mm13b - xem câu trả lời của tôi và bài viết được liên kết. Điều này đặt vị trí cài đặt mặc định của thiết bị . Vì vậy, nếu Manifestnói "tự động", đó là nơi nó đi. Nếu Manifestnói khác với "tự động", nó đi đến nơi Manifestnói. Xem thêm: API ref , cũng ở đây để biết lệnh pm set-install-location(cú pháp mới).
Izzy

1
Izzy - những gì tôi đã chỉ định về AndroidManifest của android:installLocation- thực sự cho phép di chuyển để SDCard từ các cài đặt ứng dụng quản lý ... một số nhà phát triển không chỉ định nó và làm cho nút bị vô hiệu hoá nhưng tôi thừa nhận - không bao giờ nhìn thấy các lệnh adb để làm điều đó một trong hai
t0mm13b

1
À, giờ tôi hiểu rồi - tập trung khác: Bạn đang nói "nếu một ứng dụng không có ý định cài đặt trên SD, bạn không thể làm như vậy" - trong khi tôi đang tập trung vào nơi nó đi theo mặc định trừ khi có quy định khác . Nhưng hãy kiểm tra 4 dòng đầu tiên của bạn, họ nói điều gì đó khác biệt. Tuy nhiên, bạn đã đúng: Lần đầu tiên tải xuống/data/local và từ đó ứng dụng được cài đặt. Nhưng tùy thuộc vào cài đặt và bảng kê khai, nó được cài đặt vào bên trong hoặc trực tiếp ra bên ngoài từ đó. // Nếu bạn muốn thảo luận chi tiết về điều này: bạn có nhớ quán rượu của chúng tôi, ahem, trò chuyện không? :)
Izzy

4

Cài đặt "Trình mô phỏng đầu cuối cho Android" trong điện thoại di động của bạn và mở

$ su
# pm get-install-location
0[auto]
# pm set-install-location 2
# pm get-install-location
2[external]

2
thú vị, nhưng bạn phải có root để làm việc này
Robert S. Barnes

-2

Chuyển đến "Quản lý ứng dụng" và sau đó chọn tab "Tất cả" và tìm "Cửa hàng Google Play". Chạm vào nó và sau đó nhấn nút "Gỡ cài đặt cập nhật". Sau đó, hãy đến Cửa hàng Play, tất cả các ứng dụng sẽ được cài đặt trên Thẻ SD của bạn. Đây là những gì tôi đã làm trên QMobile A110 (Android 4.2).


1
Tôi nghĩ rằng bạn đang thiếu bước giữa ở đâu đó nơi bạn đặt vị trí cài đặt mặc định là thẻ SD và thậm chí sau đó, nó không luôn hoạt động theo cách này cho mọi ứng dụng.
Bí tích

-3

Điều này là bạn có thể thay đổi thư mục cài đặt mặc định nếu điện thoại của bạn đã được root. Tải về patcher may mắn và chạm vào các công cụ ở đó bạn có thể tìm thấy tùy chọn để thay đổi directort cài đặt mặc định. ** Không làm điều này cho Android 4 trở lên hoặc nó có thể gây ra thay đổi không thể đảo ngược. **


2
Theo Thị phần Phiên bản Android 2016, 97,7% tất cả người dùng Android đang sử dụng Android 4.0 trở lên vào ngày mà câu trả lời này được đăng và do đó Lucky Patcher có thể gây ra những thay đổi không thể đảo ngược đối với hầu hết tất cả người dùng Android hiện tại.
karel

2
"Những thay đổi không thể đảo ngược" đó sẽ là gì? Tôi đã không nhận thấy chúng trên các thiết bị Kitkat của mình :) Nhưng như @karel đã chỉ ra: Nếu bạn nghĩ rằng nó không nên được sử dụng, tại sao bạn lại giới thiệu nó?
Izzy
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.