โฟลเดอร์ Android SDK มีพื้นที่ดิสก์มาก เราจำเป็นต้องเก็บอิมเมจระบบทั้งหมดหรือไม่


247

มีอิมเมจระบบจำนวนมากซ้อนอยู่บนดิสก์ของฉันในโฟลเดอร์ android sdk ฉันแทบจะไม่ใช้โปรแกรมจำลอง อาจจะครั้งเดียวใน 6 เดือน การพัฒนาส่วนใหญ่ของฉันอยู่บนอุปกรณ์โดยตรง สิ่งที่ฉันต้องการตรวจสอบคือจะลบอิมเมจระบบ (อย่างน้อยสำหรับ APIS เก่าเช่น <22) ส่งผลกระทบต่อการพัฒนาหรือไม่

นอกจากนี้โฟลเดอร์ google apis ที่เห็นด้านล่าง ฉันควรจะเก็บมันไว้สำหรับทุกเวอร์ชั่นหรือเพียงอันเดียวในเวอร์ชั่นล่าสุด?

ป้อนคำอธิบายรูปภาพที่นี่

ภาพด้านบนมาจากเครื่องมือ WinDirStat - https://windirstat.net


ขอบคุณ! โฟลเดอร์ google_apis นั้นเกี่ยวกับอะไร .... ฉันจะลบมันออกได้ไหม จะส่งผลกระทบต่อการดีบักบนอุปกรณ์ของฉันหรือไม่
AndroidMechanic - Viral Patel

25
ถ้าใครมีความสนใจในการวิเคราะห์พื้นที่ดิสก์ที่ภาพเรียกว่าWinDirStat
Tomáš Zato - Reinstate Monica

4
หมายเหตุด้านข้าง: ทำได้ง่ายเหมือนการใช้ du -sh * บนกล่อง Linux!
User3

บน linux เพื่อดู dirs ที่ใหญ่ที่สุด: du -m ~ / src / android-sdk-linux | sort -n | tail -100
Scott Stensland

@lijo อัปเดตคำถาม
AndroidMechanic - Viral Patel

คำตอบ:


204

ภาพระบบมีการติดตั้งระบบปฏิบัติการ Android และมีเพียงใช้โดยการเลียนแบบ หากคุณใช้อุปกรณ์ Android จริงสำหรับการดีบักคุณไม่จำเป็นต้องใช้อุปกรณ์เหล่านั้นอีกต่อไปดังนั้นคุณสามารถลบได้ทั้งหมด

วิธีที่สะอาดที่สุดในการลบออกคือการใช้ SDK Manager เปิด SDK Manager และยกเลิกการเลือกอิมเมจระบบเหล่านั้นจากนั้นนำไปใช้

และอย่าลังเลที่จะลบส่วนประกอบอื่น ๆ (เช่นระดับ SDK เก่า) ที่ไม่มีประโยชน์


ขอขอบคุณสำหรับคำตอบอย่างละเอียดซึ่งบังคับใช้ ... ทำให้ชัดเจน หนึ่งข้อสงสัยสุดท้าย โฟลเดอร์ google_apis ที่เห็นในหุ่นยนต์แต่ละรุ่นในภาพหน้าจอด้านบนนั้นจำเป็นสำหรับภาพระบบเท่านั้นใช่ไหม พวกเขาสามารถลบได้เช่นกัน?
AndroidMechanic - Viral Patel

เราสามารถย้ายไฟล์เหล่านั้นไปยังไดรฟ์อื่นได้หรือไม่ถ้าใช่การตั้งค่าทั้งหมดจะต้องทำอย่างไรเมื่อโพสต์ย้ายรูปภาพ
Sameer

@sameer คุณสามารถย้ายมันแล้วชี้ IDE ของคุณไปยังตำแหน่งที่ตัวจัดการ SDK อยู่ ฉันลองครั้งหนึ่ง แต่มันทำให้ Eclipse ของฉันใช้เวลา 5 นาทีในการเปิดทุกครั้ง ... การลบภาพระบบช่วยฉัน 40GB บน SSD ของฉัน!
Demonslay335

มีเครื่องมือ SDK ของ Android SDK มากมายในตัวจัดการ sdk ของฉันการลบการแก้ไขเก่าอาจทำให้เกิดข้อผิดพลาดหรือมีผลกระทบต่อประสิทธิภาพการทำงานหรือไม่
Shima Erfan

140

คุณไม่จำเป็นต้องเก็บอิมเมจระบบไว้จนกว่าคุณจะต้องการใช้อีมูเลเตอร์บนเดสก์ท็อปของคุณ คุณสามารถลบสิ่งที่ไม่ต้องการอื่น ๆ เพื่อล้างพื้นที่ดิสก์ได้

การเพิ่มเป็นคำตอบสำหรับคำถามของฉันเองเนื่องจากฉันต้องบรรยายเรื่องนี้ให้กับผู้คนในทีมของฉันมากกว่าสองสามครั้ง ดังนั้นคำตอบนี้เป็นข้อมูลอ้างอิงที่จะแบ่งปันกับคนที่อยากรู้อยากเห็นอื่น ๆ

ในช่วงไม่กี่สัปดาห์ที่ผ่านมามีเพื่อนร่วมงานหลายคนที่ถามฉันว่าจะกำจัดสิ่งที่ไม่พึงประสงค์เพื่อปล่อยพื้นที่ดิสก์ได้อย่างปลอดภัย (ส่วนใหญ่เป็นผู้เริ่มต้น) ฉันเปลี่ยนเส้นทางพวกเขาไปที่คำถามนี้ แต่พวกเขากลับมาหาฉันเพื่อทำตามขั้นตอน ดังนั้นสำหรับผู้เริ่มต้นใช้ Android ที่นี่เป็นคำแนะนำทีละขั้นตอนเพื่อลบสิ่งที่ไม่ต้องการออกอย่างปลอดภัย

บันทึก

  • อย่าสุ่มสี่สุ่มห้าลบทุกสิ่งโดยตรงจากดิสก์ที่คุณ "คิด" ไม่จำเป็นต้องครอบครอง ฉันทำครั้งนั้นและต้องดาวน์โหลดใหม่
  • ตรวจสอบให้แน่ใจว่าคุณมีรายการของโปรเจ็กต์ที่ใช้งานอยู่ทั้งหมดที่มีอีมูเลเตอร์ (ถ้ามี) และ API Levels and Build tools ที่จำเป็นสำหรับการทำงาน / การคอมไพล์อย่างต่อเนื่อง

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

ขั้นตอนในการล้างสิ่งที่ไม่ต้องการออกอย่างปลอดภัยจากโฟลเดอร์ Android SDK บนดิสก์

  1. เปิดตัวจัดการ SDK Android แบบสแตนด์อะโลน หากต้องการเปิดให้ทำหนึ่งอย่างต่อไปนี้:
  • คลิกปุ่มตัวจัดการ SDK บนแถบเครื่องมือใน android studio หรือ eclipse
  • ใน Android Studio ไปที่การตั้งค่าและค้นหา "Android SDK" คลิก Android SDK -> "เปิดตัวจัดการ SDK แบบสแตนด์อโลน"
  • ใน Eclipse ให้เปิดเมนู "Window" และเลือก "Android SDK Manager"
  • นำทางไปยังตำแหน่งของไดเรกทอรี android-sdk บนคอมพิวเตอร์ของคุณและเรียกใช้ "SDK Manager.exe"

.

  1. ยกเลิกการเลือกรายการทั้งหมดที่ลงท้ายด้วย "System Image" แต่ละระดับ API จะมีมากกว่าสองสาม ในกรณีที่คุณต้องการบางส่วนและได้คิดรายการแล้วปล่อยให้พวกเขาตรวจสอบเพื่อหลีกเลี่ยงการสูญเสียพวกเขาและต้องดาวน์โหลดอีกครั้ง

.

  1. ตัวเลือก (อาจช่วยประหยัดพื้นที่ดิสก์จำนวนเล็กน้อย): เพื่อเพิ่มพื้นที่ว่างคุณสามารถยกเลิกการเลือกระดับ API ที่ไม่จำเป็นทั้งหมดได้ ระวังอีกครั้งเพื่อหลีกเลี่ยงการดาวน์โหลดสิ่งที่คุณใช้จริงในโครงการอื่น

.

  1. ในที่สุดให้แน่ใจว่าคุณมีอย่างน้อยต่อไปนี้ (ตรวจสอบภาพด้านล่าง) สำหรับระดับ API ที่เหลือเพื่อให้สามารถทำงานร่วมกับอุปกรณ์ทางกายภาพของคุณได้อย่างราบรื่น

ในที่สุดส่วนประกอบ sdk ที่ติดตั้ง Android สะอาดควรมีลักษณะเช่นนี้ในตัวจัดการ SDK

ป้อนคำอธิบายรูปภาพที่นี่


9
การลบอิมเมจระบบในตัวจัดการ SDK เป็นโซลูชันที่สะอาดที่สุด อย่างน้อยควรมี upvotes มากกว่านี้หรือแม้กระทั่งเป็นคำตอบที่ยอมรับได้
Levite

4
ขอบคุณ @Levit นี่คือคำตอบสำหรับคำถามของฉันที่ฉันโพสต์ในภายหลังเพราะฉันคิดว่าคนจะได้รับประโยชน์จากการรู้วิธีนี้ คำตอบที่ฉันทำเครื่องหมายว่ายอมรับนั้นเป็นคำตอบที่ช่วยฉันได้ในเวลานั้น
AndroidMechanic - Viral Patel

1
มันมีประโยชน์มากขอบคุณ การดัดแปลงเพียงก้าวเดียวกับที่คุณอยากแนะนำคือขั้นตอนที่ 2 คุณต้องการตรวจสอบรายการที่คุณต้องการลบแล้วคลิกปุ่มลบแพ็คเกจที่ด้านล่างขวา ขอบคุณอีกครั้ง!
Adam Plocher

ขอบคุณมากฉันไม่ทราบว่า sdk กำลังดาวน์โหลดภาพจำลอง (แม็คของฉันร้องไห้จนไม่มีที่ว่างจนกว่าฉันจะเห็นโพสต์นี้)
ScarletMerlin

คำถามคือ " เราจำเป็นต้องเก็บอิมเมจระบบทั้งหมดหรือไม่ " และนี่ไม่ได้ตอบคำถามนั้น
user34660

8

ฉันมี 20.8 GB ใน C: \ Users \ ggo \ AppData \ Local \ Android \ Sdk \ system-images โฟลเดอร์ (6 ภาพ android: - android-10 - android-15 - android-15 - android-23 - android-25 - android-26)

ฉันบีบอัดโฟลเดอร์ C: \ Users \ ggo \ AppData \ Local \ Android \ Sdk \ system-images

ตอนนี้ใช้เวลาเพียง 4.65 GB

C: \ Users \ GGO \ AppData \ Local \ Android \ SDK ของ \ ระบบภาพ

ฉันไม่พบปัญหาใด ๆ จนถึงตอนนี้ ...

การบีบอัดดูเหมือนจะแตกต่างกันไปตั้งแต่ 2/3 ถึง 6 บางครั้งก็มีมากขึ้น:

หุ่นยนต์-10

หุ่นยนต์-23

หุ่นยนต์-25

หุ่นยนต์-26


1
คุณบีบอัดมันได้อย่างไร
krv

1
คลิกขวาที่โฟลเดอร์เพื่อบีบอัด (โฟลเดอร์ภาพระบบที่นี่) => Properties => ขั้นสูง => เปิดใช้งาน "บีบอัดเนื้อหาเพื่อประหยัดเนื้อที่ดิสก์" => ตกลง => ใช้ => เลือก "ใช้การเปลี่ยนแปลงกับโฟลเดอร์โฟลเดอร์ย่อยและไฟล์นี้ "(ควรเลือกตามค่าเริ่มต้น) แล้วคลิกตกลง (อาจเป็นการดีกว่าที่จะออกจาก Android Studio และปิดตัวจำลองที่ทำงานอยู่ก่อนบีบอัดเนื่องจากไฟล์บางไฟล์อาจถูกล็อค)
ggo

3
สิ่งนี้จะส่งผลกระทบต่อประสิทธิภาพดังนั้นควรใช้เฉพาะกับไฟล์ที่ไม่ค่อยได้ใช้ (ยกเว้นไฟล์บีบอัดที่มีอยู่แล้วเช่นภาพถ่ายวิดีโอซิปไฟล์ jar เป็นต้น)
Leon

6

ฉันแนะนำสองขั้นตอนเพื่อแก้ไขปัญหา SDK ที่ป่อง

ก่อนอื่นฉันลบ Android ทั้งหมดยกเว้นสองรุ่น:

  1. รุ่นปัจจุบันเช่น 6.0 Marshmallow ณ วันที่เขียนนี้ รุ่นนี้เป็นการทดสอบและพัฒนาล่าสุดและยิ่งใหญ่ที่สุดที่โทรศัพท์มือถือ Nexus ปัจจุบันใช้งานอยู่รวมถึงแบรนด์อื่น ๆ อีกสองสามรุ่น

  2. รุ่นที่เก่ากว่าเช่น 4.04 Ice Cream Sandwich นี่คือเพื่อให้เข้ากันได้กับโทรศัพท์มือถือส่วนใหญ่ คุณสูญเสียฟังก์ชันการทำงานของเวอร์ชันที่ใหม่กว่า แต่คุณจะได้รับความเข้ากันได้ที่ต่ำที่สุด

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

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

สภาพแวดล้อม Android ของฉันใช้งานได้ถึง 32 กิกะไบต์ใน Macbook Air ขนาด 128 กิกะไบต์ ไม่สามารถทำสิ่งนี้ได้ สักวันพวกเขาจะสร้าง Macbook Air Terabyte แต่จนถึงตอนนี้ก็ต้องผอมลง


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

5

นี่คือสิ่งที่น้อยที่สุดที่ฉันเก็บไว้สำหรับการพัฒนา Android แบบวันต่อวัน (รวมถึงรหัสการผลิต) เวอร์ชันล่าสุดจาก API 25 ถึง API 27 (Nougat ถึง Android P) มีเฉพาะและคุณสามารถใช้งานได้ดี

  • หากต้องการย่อให้เล็กที่สุดให้เก็บรุ่นใดรุ่นหนึ่งต่อไปนี้ไว้เหมือนกันและรุ่นที่ต่ำกว่าเช่น API 16 ด้วยไฟล์เดียวกันที่ดาวน์โหลดไว้ด้านล่าง


4

มีวิธีลบอิมเมจระบบอย่างปลอดภัย

เข้าไปใน SDK Manager ในแถบเครื่องมือ:

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

ไปใน Android SDK:

ป้อนคำอธิบายรูปภาพที่นี่

ในแท็บแพลตฟอร์ม SDK ให้ยกเลิกการเลือกแพลตฟอร์มที่คุณต้องการถอนการติดตั้ง:

ป้อนคำอธิบายรูปภาพที่นี่

คลิกตกลงและยืนยันการลบ:

ป้อนคำอธิบายรูปภาพที่นี่


1

นอกเหนือจากคำตอบอื่น ๆ แล้วไดเรกทอรีต่อไปนี้ยังมีอิมเมจระบบที่ลบได้บน Mac สำหรับ Android Studio 2.3.3 ฉันสามารถลบไดเรกทอรี android-16 และ android-17 ได้โดยไม่มีปัญหาใด ๆ เพราะฉันไม่มีตัวเลียนแบบที่ใช้มัน (ฉันใช้ android-24 ซึ่งใช้งานอยู่)

$ pwd
/Users/gareth/Library/Android/sdk/system-images

$ du -h
2.5G    ./android-16/default/x86
2.5G    ./android-16/default
2.5G    ./android-16/google_apis/x86
2.5G    ./android-16/google_apis
5.1G    ./android-16
2.5G    ./android-17/default/x86
2.5G    ./android-17/default
2.5G    ./android-17
3.0G    ./android-24/default/x86_64
3.0G    ./android-24/default
3.0G    ./android-24
 11G    .

1

ด้วยการลบตัวจำลองทั้งหมดหน่วยความจำบางครั้งจะไม่ลดลงไปถึงความคาดหวังของเรา ดังนั้นเปิดด้านล่างพูดถึงเส้นทางในไดรฟ์ c คุณ

C: \ Users {ชื่อผู้ใช้} .android \ AVD

ในโฟลเดอร์ avd นี้คุณสามารถดู avd ทั้งหมดที่คุณสร้างไว้ก่อนหน้านี้ ดังนั้นคุณต้องลบ avd ทั้งหมดที่จะลบช่องว่างที่ไม่ได้ใช้ทั้งหมดที่คว้าโดยอีมูเลเตอร์ของคุณ กว่าสร้างอีมูเลเตอร์สดใหม่สำหรับคุณทำงาน


0

ในโฟลเดอร์นี้มีภาพจำลองทั้งหมด ถ้าคุณไม่ใช้อีมูเลเตอร์คุณสามารถลบโฟลเดอร์นี้ได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.