Menginstal ke SDCard secara default


29

Saya ingin tahu apakah ada cara untuk memberitahu Android untuk menginstal aplikasi pada kartu micro SD secara default daripada harus mengunduh aplikasi ke memori internal terlebih dahulu dan kemudian harus memindahkannya ke kartu SD secara manual.

Terima kasih



khusus karena @Yeradis jawaban android.stackexchange.com/a/4976/156
GAThrawn

4
@ GATambar Tidak, itu bukan tipuan dari itu. Pertanyaan yang Anda tautkan agak "dapatkah seseorang memindahkan aplikasi ke SD". Yang ini adalah "cara menentukan lokasi pemasangan default". Jalan yang sama, rumah yang berbeda.
Izzy

Jawaban:


33

Artikel di HowtoGeek ini menjelaskan cara yang mungkin menggunakan :

  • aktifkan USB debugging
  • hubungkan perangkat Anda ke komputer Anda
  • jalankan perintah adb shell pm setInstallLocation 2
    (atau, sintaks baru , adb shell pm set-install-location 2)
  • putuskan, dilakukan.

Perintah ini akan menetapkan target instalasi default perangkat ke SDCard Anda. Itu tidak selalu berarti semuanya terinstal di sana: hanya aplikasi yang mendukung ini yang akan masuk ke sana, dan pengembang dapat "menolak" ini di manifes aplikasi mereka jika menurut mereka diperlukan. Dari referensi API tertaut :

Mengubah lokasi pemasangan default. Nilai lokasi:

  • 0: Otomatis — Biarkan sistem menentukan lokasi terbaik.
  • 1: Internal — instal pada penyimpanan perangkat internal.
  • 2: Eksternal — instal di media eksternal.

Catatan: Ini hanya dimaksudkan untuk debugging; menggunakan ini dapat menyebabkan aplikasi rusak dan perilaku yang tidak diinginkan lainnya.

Untuk perincian lebih lanjut tentang ADB, dan bagaimana Anda dapat mis. Mendapatkan versi minimalnya ke komputer Anda (tanpa perlu terlalu banyak menginstal seluruh SDK), Anda dapat melihat pada tag-wiki .


Pembaruan: Untuk menghindari kebingungan dengan jawaban t0mm13b , beberapa izin pada proses instalasi:

  1. Anda menemukan beberapa aplikasi di dan memutuskan untuk menginstalnya
  2. setelah Anda mengklik "instal" dan menyetujui persyaratan / izin, diunduh ke/data/local , yaitu ke Anda . Anda tidak dapat mengubahnya.
  3. ketika unduhan selesai, .apkakan diinstal secara otomatis. Ke mana, tergantung pada banyak hal:
    • jika dev tidak menentukan android:installLocationproperti di aplikasi-nya Manifest, aplikasi akan diinstal ke cerita internal. Berhenti penuh, tidak ada pilihan lain (lihat: referensi API ).
    • jika ini android:installLocationdiatur ke preferExternal, dan penyimpanan eksternal tersedia, itu akan pergi ke sana.
    • jika diatur ke auto, itu lagi tergantung:
      1. apakah aplikasi berisi widget, layanan, ingin memulai saat boot, dan beberapa hal lainnya, ia pergi ke penyimpanan internal. Berhenti penuh, tidak ada pilihan lain.
      2. ia pergi ke mana perangkat "lokasi instal default" menunjuk ke

mungkin membantu memasukkan peringatan - tidak dijamin berfungsi, terutama jika aplikasi memiliki widget sendiri ... :)
t0mm13b

Seperti yang saya tulis: hanya aplikasi yang mendukung ini yang akan masuk ke sana :) Widget, layanan, dll mengatakan itu tidak mendukungnya :)
Izzy

setelah menjalankan perintah adb shell pm setInstallLocation 2 error: device not found
moudrick

1
Kedengarannya seperti Anda melewatkan dua langkah pertama (mengaktifkan USB debugging dan menghubungkan perangkat setelah itu) - atau Anda berada di Windows dan tidak menginstal driver yang sesuai. Silakan ikuti tautan yang sesuai dan lanjutkan dari sana, @moudrick.
Izzy

5

Itu tidak bisa diubah! Begitulah cara kerja Android.

Semua unduhan dari Google Play masuk ke sistem file internal, lalu dari:

  • Pengaturan> Kelola aplikasi
  • Ketuk pada aplikasi tersebut, periksa apakah tombol Pindah ke SDCard diaktifkan, maka Anda dapat melakukannya.

Jika tombol Pindah ke SDCard dinonaktifkan atau berwarna abu-abu, mungkin untuk mencegah aplikasi berfungsi - seperti widget mereka sendiri di layar beranda.

Juga, lihat jawaban ini di bilah sisi terkait di sebelah kanan halaman ini. :)


1
Apakah Anda yakin, t0mm13b? Bukankah ada perintah ADB untuk adb shell pm setInstallLocation 2(yaitu SDCard), seperti yang dijelaskan di sini ?
Izzy

1
Pengembang dapat menentukan bahwa dalam Manifest untuk memberikan aplikasi kemampuan untuk dipindahkan ke SDCard. android:installLocation="auto"Belum melihat adb shell pm setInstallLocation 2, mungkin Anda menentukan nama paket dalam kasus itu ...
t0mm13b

1
Tidak, t0mm13b - lihat jawaban saya dan artikel yang ditautkan. Ini menetapkan lokasi pemasangan default perangkat . Jadi jika Manifestdikatakan "otomatis", di situlah ia pergi. Jika Manifestmengatakan selain "otomatis", ia pergi ke mana Manifestkata. Lihat juga: API ref , juga di sini untuk perintah pm set-install-location(sintaks baru).
Izzy

1
Izzy - apa yang saya tentukan tentang AndroidManifest android:installLocation- sebenarnya memungkinkan Pindah ke SDCard dari pengaturan aplikasi mengelola ... beberapa devs tidak menentukannya dan menjadikan tombol dinonaktifkan tetapi saya akui - tidak pernah melihat perintah adb untuk melakukan itu
t0mm13b

1
Ah, sekarang saya mengerti - fokus berbeda: Anda mengatakan "jika suatu aplikasi tidak dimaksudkan untuk diinstal pada SD, Anda tidak dapat melakukannya" - sementara saya berfokus pada ke mana ia pergi secara default kecuali ditentukan lain . Tapi tolong periksa 4 baris pertama jawaban Anda, mereka mengatakan sesuatu yang berbeda. Namun Anda benar: Pengunduhan pertama kali dilakukan /data/local, dan dari sana aplikasi diinstal. Tetapi tergantung pada pengaturan dan manifes, itu dipasang baik ke internal atau langsung ke eksternal dari sana. // Jika Anda ingin mendiskusikan ini secara detail: Anda ingat pub kami, ahem, chat? :)
Izzy

4

Instal "Terminal Emulator untuk Android" di ponsel Anda dan buka

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

2
menarik, tetapi Anda harus memiliki root agar ini berfungsi
Robert S. Barnes

-2

Buka "Kelola aplikasi" dan kemudian pilih tab "Semua" dan cari "Google Play Store". Ketuk padanya lalu tekan tombol "Copot pemasangan pembaruan". Setelah itu, buka Play Store semua aplikasi akan diinstal pada Kartu SD Anda. Ini adalah apa yang saya lakukan pada QMobile A110 (Android 4.2) saya.


1
Saya pikir Anda kehilangan langkah tengah di suatu tempat di mana Anda menetapkan lokasi instal default menjadi kartu SD dan bahkan kemudian, itu tidak selalu bekerja dengan cara ini untuk setiap aplikasi.
Enigma

-3

Masalahnya adalah Anda dapat mengubah direktori instal default jika ponsel Anda di-root. Unduh lucky patcher dan ketuk pada alat-alat di sana Anda dapat menemukan opsi untuk mengubah directort install default. ** Jangan lakukan ini untuk Android 4 atau di atasnya atau dapat menyebabkan perubahan yang tidak dapat diubah. **


2
Menurut Versi Android Market Share 2016 97,7% dari semua pengguna Android menggunakan Android 4.0 atau yang lebih baru pada tanggal ketika jawaban ini diposting dan karena itu Lucky Patcher dapat menyebabkan perubahan permanen pada hampir semua pengguna Android saat ini.
karel

2
Apa "perubahan yang tidak dapat diubah" itu? Saya tidak melihat mereka di perangkat Kitkat saya :) Tapi seperti yang ditunjukkan @karel: Jika Anda pikir itu tidak boleh digunakan, mengapa Anda merekomendasikannya?
Izzy
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.