การติดตั้งไปยัง SDCard โดยค่าเริ่มต้น


29

ฉันต้องการทราบว่ามีวิธีบอก Android ให้ติดตั้งแอปพลิเคชันบนการ์ด micro SD โดยค่าเริ่มต้นแทนที่จะต้องดาวน์โหลดแอปพลิเคชันไปยังหน่วยความจำภายในก่อนหรือไม่จากนั้นจึงย้ายไปยังการ์ด SD ด้วยตนเอง

ขอบคุณ



โดยเฉพาะเนื่องจาก @Yeradis ตอบandroid.stackexchange.com/a/4976/156
GAThrawn

4
@Grawhn ไม่ไม่นั่นเป็นสิ่งที่ล่อลวง คำถามที่คุณเชื่อมโยงค่อนข้าง "สามารถย้ายแอพไปที่ SD ได้" อันนี้คือ "วิธีการระบุตำแหน่งการติดตั้งเริ่มต้น" ถนนเดียวกันบ้านที่แตกต่างกัน
Izzy

คำตอบ:


33

บทความที่ HowtoGeek นี้อธิบายวิธีการใช้ :

คำสั่งนี้จะตั้งค่าเป้าหมายการติดตั้งเริ่มต้นของอุปกรณ์เป็น SDCard ของคุณ ไม่ได้หมายความว่าทุกอย่างจะติดตั้งที่นั่น: เฉพาะแอปที่รองรับสิ่งนี้จะไปที่นั่นและผู้พัฒนาสามารถ "ลบล้าง" สิ่งนี้ในรายการแอพของพวกเขาหากพวกเขาคิดว่าจำเป็น จากการอ้างอิง API ที่เชื่อมโยง :

เปลี่ยนตำแหน่งการติดตั้งเริ่มต้น ค่าที่ตั้ง:

  • 0: อัตโนมัติ - ให้ระบบตัดสินตำแหน่งที่ดีที่สุด
  • 1: ภายใน - ติดตั้งบนที่เก็บอุปกรณ์ภายใน
  • 2: ภายนอก - ติดตั้งบนสื่อภายนอก

หมายเหตุ:นี่มีไว้สำหรับการดีบักเท่านั้น การใช้สิ่งนี้อาจทำให้แอปพลิเคชันหยุดพักและพฤติกรรมที่ไม่พึงประสงค์อื่น ๆ

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ ADB และวิธีที่คุณจะได้รับเช่นรุ่นที่น้อยที่สุดของมันไปยังเครื่องคอมพิวเตอร์ของคุณ (โดยไม่ overkill ของการติดตั้ง SDK ทั้งหมด) คุณสามารถใช้เวลาดูที่ แท็กวิกิพีเดีย


ปรับปรุง:เพื่อหลีกเลี่ยงความสับสนกับคำตอบของ t0mm13bมีการอนุญาตบางอย่างในกระบวนการติดตั้ง:

  1. คุณพบแอพบางตัวในและตัดสินใจที่จะติดตั้ง
  2. หลังจากที่คุณได้คลิก "ติดตั้ง" และตกลงกันในแง่ / สิทธิ์ที่จะถูกดาวน์โหลดไป/data/localคือที่คุณจัดเก็บข้อมูลภายในคุณไม่สามารถเปลี่ยนแปลงได้
  3. เมื่อการดาวน์โหลดเสร็จสิ้น.apkจะทำการติดตั้งโดยอัตโนมัติ จะขึ้นอยู่กับหลายสิ่ง:
    • หาก dev ไม่ได้ระบุandroid:installLocationคุณสมบัติในแอพของเขาManifestแอพจะถูกติดตั้งลงในเรื่องราวภายใน หยุดเต็มไม่มีตัวเลือกอื่น (ดู: การอ้างอิง API )
    • หากandroid:installLocationตั้งค่าเป็นpreferExternalและที่จัดเก็บข้อมูลภายนอกจะพร้อมใช้งาน
    • ถ้ามันถูกตั้งค่าautoมันขึ้นอีกครั้ง:
      1. แอพพลิเคชั่นมีวิดเจ็ต, บริการ, ต้องการเริ่มต้นเมื่อบูทและสิ่งอื่น ๆ อีกมากมายมันไปยังที่เก็บข้อมูลภายใน หยุดเต็มไม่มีทางเลือกอื่น
      2. มันจะไปที่ตำแหน่ง "ตำแหน่งการติดตั้งเริ่มต้น" ของอุปกรณ์

อาจช่วยในการรวมคำเตือน - มันไม่รับประกันว่าจะทำงานโดยเฉพาะอย่างยิ่งหากแอปมีวิดเจ็ตของตัวเอง ... :)
t0mm13b

อย่างที่ฉันเขียน: เฉพาะแอปที่สนับสนุนสิ่งนี้จะไปที่นั่น :) วิดเจ็ตบริการและอื่น ๆ กำลังบอกว่ามันไม่รองรับ :)
อิซซี่

หลังจากรันคำสั่ง adb shell pm ข้อผิดพลาด setInstallLocation 2: ไม่พบอุปกรณ์
moudrick

1
ดูเหมือนว่าคุณจะข้ามสองขั้นตอนแรก (เปิดใช้งานการแก้ไขข้อบกพร่อง USB และเชื่อมต่ออุปกรณ์หลังจากนั้น) - หรือคุณใช้ Windows และไม่ได้ติดตั้งไดรเวอร์ที่เกี่ยวข้อง โปรดติดตามลิงก์ที่เกี่ยวข้องและดำเนินการต่อจากนั้น @moudrick
อิซซี

5

ไม่สามารถเปลี่ยนแปลงได้! นั่นคือวิธีที่ Android ใช้งาน

การดาวน์โหลดทั้งหมดจาก Google Play ไปที่ระบบไฟล์ภายในจากนั้น:

  • การตั้งค่า> จัดการแอปพลิเคชัน
  • แตะที่แอพดังกล่าวตรวจสอบว่าปุ่มย้ายไปที่ SDCardเปิดใช้งานอยู่จากนั้นคุณสามารถทำได้

หากปุ่มย้ายไปที่ SDCardถูกปิดใช้งานหรือเป็นสีเทาปุ่มอาจจะป้องกันไม่ให้แอปทำงานเช่นวิดเจ็ตของตัวเองบนหน้าจอหลัก

ดูคำตอบนี้ในแถบด้านข้างที่เกี่ยวข้องทางด้านขวาของหน้านี้ :)


1
คุณแน่ใจหรือว่า t0mm13b ไม่มีคำสั่ง ADB สำหรับadb shell pm setInstallLocation 2(เช่น SDCard) ตามที่อธิบายไว้ที่นี่ใช่ไหม
Izzy

1
นักพัฒนาสามารถระบุได้ว่าใน Manifest เพื่อให้แอปมีความสามารถในการย้ายไปยัง SDCard android:installLocation="auto"ยังไม่เห็นadb shell pm setInstallLocation 2สมมุติว่าคุณระบุชื่อแพ็คเกจในกรณีนั้น ...
t0mm13b

1
ไม่, t0mm13b - ดูคำตอบและบทความที่เชื่อมโยงของฉัน เป็นการตั้งค่าตำแหน่งการติดตั้งเริ่มต้นของอุปกรณ์ ดังนั้นถ้าManifestพูดว่า "อัตโนมัติ" นั่นคือที่ที่มันจะไป ถ้าManifestพูดว่านอกเหนือจาก "อัตโนมัติ" มันจะไปที่Manifestพูดว่า ดูเพิ่มเติมที่: การอ้างอิง APIและที่นี่สำหรับpm set-install-locationคำสั่ง (ไวยากรณ์ใหม่)
Izzy

1
อิซซี่ - สิ่งที่ฉันระบุเกี่ยวกับ AndroidManifest ของandroid:installLocation- จริงช่วยให้การเคลื่อนย้ายไปยัง SDCardจากการตั้งค่า app จัดการ ... devs บางคนไม่ได้ระบุว่าการแสดงผลและปุ่มเป็นคนพิการ แต่ฉันยอมรับ - ไม่เคยเห็นคำสั่ง adb ที่จะทำอย่างใดอย่างหนึ่ง
t0mm13b

1
อ่าตอนนี้ผมได้รับมัน - โฟกัสที่แตกต่างกัน: คุณได้พูดว่า "ถ้าแอปไม่ได้มีวัตถุประสงค์ที่จะติดตั้งใน SD คุณจะไม่สามารถทำเช่นนั้น" - ในขณะที่ผมมุ่งเน้นไปที่ที่มันจะไปโดยปริยายนอกจากที่ระบุไว้ แต่โปรดตรวจสอบคำตอบของคุณ 4 บรรทัดแรกพวกเขาพูดอะไรที่แตกต่างออกไป อย่างไรก็ตามคุณถูกต้อง: การดาวน์โหลดครั้งแรกไปที่/data/localแล้วติดตั้งแอพ แต่ขึ้นอยู่กับการตั้งค่าและรายการจะถูกติดตั้งทั้งภายในหรือภายนอกโดยตรงจากที่นั่น // ถ้าคุณชอบที่จะพูดถึงในรายละเอียด: คุณจำผับอะแฮ่มแชทของเราได้ไหม :)
Izzy

4

ติดตั้ง "Terminal Emulator สำหรับ Android" ในมือถือของคุณและเปิด

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

2
น่าสนใจ แต่คุณต้องมีรากเพื่อให้สิ่งนี้ทำงานได้
Robert S. Barnes

-2

ไปที่ "จัดการแอพ" จากนั้นเลือกแท็บ "ทั้งหมด" และค้นหา "Google Play Store" เลือกที่มันแล้วกดปุ่ม "ถอนการติดตั้งการปรับปรุง" หลังจากนั้นไปที่ Play Store แอพทั้งหมดจะถูกติดตั้งบนการ์ด SD ของคุณ นี่คือสิ่งที่ฉันทำใน QMobile A110 (Android 4.2)


1
ฉันคิดว่าคุณพลาดขั้นตอนกลางที่ซึ่งคุณตั้งค่าตำแหน่งการติดตั้งเริ่มต้นให้เป็นการ์ด SD และถึงตอนนั้นมันก็ไม่ได้ทำงานแบบนี้สำหรับแอปพลิเคชันทุกครั้ง
Enigma

-3

สิ่งที่เป็นคุณสามารถเปลี่ยนไดเรกทอรีติดตั้งเริ่มต้นหากโทรศัพท์ของคุณรูท ดาวน์โหลด lucky patcher และเลือกเครื่องมือที่นั่นคุณสามารถหาตัวเลือกในการเปลี่ยนเส้นทางการติดตั้งเริ่มต้น ** อย่าทำเช่นนี้สำหรับ Android 4 หรือสูงกว่าหรืออาจทำให้เกิดการเปลี่ยนแปลงกลับไม่ได้ **


2
ตามส่วนแบ่งการตลาดของ Android เวอร์ชั่น 2016 97.7%ของผู้ใช้ Android ทั้งหมดกำลังใช้ Android 4.0 หรือใหม่กว่า ณ วันที่คำตอบนี้ถูกโพสต์ดังนั้น Lucky Patcher อาจทำให้ผู้ใช้ Android เกือบทั้งหมดเปลี่ยนแปลงไม่ได้
karel

2
"การเปลี่ยนแปลงที่กลับไม่ได้" นั้นจะเป็นเช่นไร? ฉันไม่ได้สังเกตเห็นพวกเขาในอุปกรณ์ Kitkat ของฉัน :) แต่อย่างที่ @karel ชี้ให้เห็น: ถ้าคุณคิดว่ามันไม่ควรใช้ทำไมคุณถึงแนะนำ
Izzy
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.