อิมเมจระบบ Intel x86 Atom และ Atom_64 แตกต่างกันอย่างไร


98

ฉันใช้ Android SDK Manager เพื่อติดตั้งอิมเมจระบบสำหรับ Android M Preview อย่างไรก็ตามฉันสังเกตว่ามีภาพสองภาพแยกกันสำหรับแพลตฟอร์ม x86

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

อะไรคือความแตกต่างระหว่างทั้งสองและอันไหนที่ฉันควรเลือกสำหรับการติดตั้ง Ubuntu 15.04 64 บิตของฉัน (CPU ของฉันมี AMD-V และเปิดใช้งานใน BIOS ในกรณีที่สร้างความแตกต่าง)


5
AFAIK เป็นเพียงการเลียนแบบสถาปัตยกรรม CPU ที่แตกต่างกันเช่นเดียวกับ ARM, ARM64, MIPS และอื่น ๆ
CommonsWare

5
ไม่สำคัญว่าคุณจะใช้เครื่องอะไรเป็น IDE ของคุณ สิ่งนี้เกี่ยวข้องกับฮาร์ดแวร์ที่คุณกำลังเลียนแบบ ดังนั้นอิมเมจ Atom เทียบกับ Atom_64 คือคุณต้องการจำลองการเรียกใช้แอปของคุณบนอุปกรณ์ที่มี CPU Atom หรือ CPU แบบ 64 บิตของ Atom
Hungryghost

2
ดูเหมือนว่าภาพหนึ่งเป็นภาพ CPU 32 บิตและอีกภาพหนึ่งเป็นภาพ 64 บิต
Phantômaxx

ดูคำตอบด้านบนเพื่อคำถามที่คล้ายกันนี้ ; IMHO เป็นคำอธิบายที่ชัดเจนกว่าคำตอบด้านล่าง
ToolmakerSteve

คำตอบ:


68

ตามบทความนี้

ด้วยอิมเมจอีมูเลเตอร์ x86 64 บิต Android 5.0 รุ่นล่าสุดของ Google นักพัฒนาสามารถสร้างแอพ 64 บิตสำหรับอุปกรณ์ที่ใช้โปรเซสเซอร์ Intel Atom

Android 32 บิตเทียบกับ 64 บิต

แพลตฟอร์ม 64 บิตจำนวนมากในปัจจุบัน ได้แก่ Solaris, AIX *, HP-UX *, Linux *, OS X *, BSD และ IBM z / OS * ใช้รุ่น LP64 เนื่องจาก Android ใช้เคอร์เนล Linux แพลตฟอร์ม Android 64 บิตจึงใช้รุ่น LP64

ซีพียู Intel 64 บิตมีโหมดความเข้ากันได้ 32 บิต ในขณะที่แอปพลิเคชัน 32 บิตจะทำงานบนโปรเซสเซอร์64 บิต แต่การคอมไพล์ด้วยคอมไพเลอร์ที่ปรับให้เหมาะสม 64 บิตช่วยให้สามารถใช้ประโยชน์จากสถาปัตยกรรมของสภาพแวดล้อม 64 บิตได้

วิธีเรียกใช้แอพ 64 บิตบนอีมูเลเตอร์

สร้างอุปกรณ์เสมือน Android (AVD) ใหม่โดยใช้อิมเมจระบบ 64 บิตของโปรเซสเซอร์ Intel Atom และเปิด AVD Manager ใน SDK Manager หรือ ADT จากนั้นคลิก 'สร้าง' และกรอกข้อมูลในฟิลด์ดังแสดงในรูปภาพ ตอนนี้โปรแกรมจำลอง AVD 64 บิตพร้อมที่จะทำงานแล้ว

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

ระบบปฏิบัติการ Android * 64 บิต

ตามค่าเริ่มต้นแอปพลิเคชัน 32 บิตทั้งหมดจะทำงานโดยไม่มีข้อผิดพลาดในโปรเซสเซอร์ 64 บิต แต่อาจทำงานช้ากว่าแอปพลิเคชันที่ปรับให้ทำงานบนโปรเซสเซอร์ 64 บิต

Android พร้อมสำหรับการประมวลผล 64 บิต

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

สรุป

Android ที่มีเทคโนโลยี 64 บิตสำหรับแพลตฟอร์มที่ใช้โปรเซสเซอร์ Intel Atom สามารถช่วยนักพัฒนาในการปรับแต่งแอปพลิเคชันของตนได้ในขณะนี้ การสร้างแอปพลิเคชัน Android สำหรับ 64 บิตนั้นง่ายพอ ๆ กับการสร้างแอปพลิเคชัน Android 32 บิตแบบเดิม ตอนนี้คุณสามารถใช้โปรแกรมจำลอง Android 64 บิตอย่างเป็นทางการเพื่อเรียกใช้และดีบักแอป 64 บิตได้แล้ว

บางทีบทความนี้อาจช่วยให้คุณเข้าใจความแตกต่างระหว่างอิมเมจระบบนี้

อัปเดต

ตอนนี้ Google แนะนำให้ใช้โปรแกรมจำลอง x86 อย่างที่คุณเห็นในภาพนี้

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

ความแตกต่างคือเมื่อใช้ภาพ x86 ตอนนี้ใช้การจำลองเสมือนที่รวดเร็วและเร่งด้วยฮาร์ดแวร์ภายใต้สภาวะที่เหมาะสม ( HAXM ) ดังนั้นจึงไม่รู้สึกว่ามีชั้นกลางที่อ้วนอีกต่อไป


1
คุณกล่าวถึงแอปพลิเคชันที่ "คอมไพล์ด้วยคอมไพเลอร์เพิ่มประสิทธิภาพ 64 บิต" ดังนั้นวิธีการรวบรวมแอปพลิเคชันของฉันด้วยคอมไพเลอร์ 64 บิตและได้รับประโยชน์เมื่อทำงานในสภาพแวดล้อม 64 บิต?
Artem M

3
เราควรใช้ @Jorge Casariego intel x86 atom system imageระหว่างการพัฒนาโดย AVD เพื่อความเร็วที่ดีขึ้นของโปรแกรมจำลองหรือไม่?
iraj jelodari

11
แต่ถ้าเราไม่สนใจสถาปัตยกรรมเป้าหมายคำถามที่สำคัญก็คือโปรแกรมจำลอง "Atom_64" ทำงานได้เร็วขึ้นบน CPU 64 บิตของ Intel หรือไม่ ฉันไม่รู้จากคำตอบที่ยืดยาวของคุณ และการพูดถึง "x86" ของคุณเป็นเรื่องที่น่าสับสนเนื่องจากคำถามเกี่ยวกับตัวเลือกระหว่างภาพสองภาพซึ่งทั้งสองภาพกล่าวถึง x86 ซึ่งแตกต่างกันเพียงการกล่าวถึง Atom กับ Atom_64
ToolmakerSteve

@ToolmakerSteve ฉันมีข้อสงสัยเหมือนกัน นอกจากนี้ฉันกำลังเห็นว่าตอนนี้แต่ละแพ็คเกจมีขนาดค่อนข้างใหญ่ดังนั้นการเลือกที่เหมาะสมจึงมีความสำคัญเพื่อเติมเต็มข้อมูลที่ไม่จำเป็นในเส้นทาง
Carmine Tambascia

การอัปเดตที่ด้านล่างของโพสต์ของคุณหมายความว่า Atom ที่มี HAXM เร็วกว่า Atom_64 หรือไม่
Bink

15

FYI: ในสตูดิโออย่างเป็นทางการ Android เอกสารมันบอกว่า "ภาพระบบ x86 วิ่งเร็วที่สุดในการจำลอง."

ฉันยังไม่ได้ลอง 64 บิตดังนั้นฉันจึงไม่สามารถแสดงความคิดเห็นได้ อาจมีคนอื่นทำได้


1
ไม่ตอบคำถามซึ่งเกี่ยวกับการเลือกระหว่างอิมเมจระบบ "x86" สองภาพที่แตกต่างกันซึ่งหนึ่งในนั้นกล่าวถึง "atom_64" ซึ่งอีกภาพกล่าวถึง "อะตอม"
ToolmakerSteve

9

ฉันได้ลองทั้งคู่และ x86_64 ช้ากว่า x86 เล็กน้อย สิ่งที่ฉันค้นพบหลังจากการวิจัยเล็กน้อยคือ x86 สามารถทำงานบนชุดคำสั่งที่ใช้ 32 บิตและใช้ 64 บิตในขณะที่ x86_64 ทำงานบน 64 บิตเท่านั้นซึ่งต้องการการถอดรหัสเพิ่มเติม ...

คุณสามารถตรวจสอบได้ที่นี่https://developer.android.com/ndk/guides/x86-64.html สำหรับข้อมูลเพิ่มเติม ..


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

@ToolmakerSteve มีความสำคัญต่อวิธีการจำลองฮาร์ดแวร์โดยเฉพาะอย่างยิ่งหากโฮสต์ cpu สามารถใช้โดยตรงผ่านเทคโนโลยีการจำลองเสมือนของฮาร์ดแวร์
andho

@ และคุณสามารถอธิบายเพิ่มเติมได้หรือไม่? ฉันสับสน; แล้วอันไหนเร็วกว่า / เบากว่า / ง่ายกว่าในระบบของฉันในการเลียนแบบ? x86 หรือ x86_64
buncis

1
@buncis หาก CPU ของคุณรองรับ VT (ส่วนใหญ่ทำ) และคุณได้เปิดใช้งานใน BIOS และโมดูลที่จำเป็นที่ติดตั้งในระบบปฏิบัติการแล้วทั้ง x86 และ x86_64 ควรมีความเร็วใกล้เคียงกันเนื่องจากคำแนะนำของอีมูเลเตอร์ทำงานโดยตรงบนโฮสต์ CPU หากไม่มี VT จะใช้การจำลองซอฟต์แวร์ ในกรณีนี้ x86 จะเร็วกว่า / เบากว่า / ง่ายกว่าเนื่องจากพื้นที่แอดเดรสขนาดเล็กจำเป็นต้องจำลอง x86 มากกว่า x86_64 (เช่นรีจิสทรี 64 บิตเทียบกับรีจิสทรี 32 บิต)
andho

2

x86 หมายถึงระบบ 32 บิต ตอนนี้ฉันได้อ่านคำตอบข้างต้นทั้งหมดแล้วและฉันจะเข้าประเด็นโดยตรง

x86 Atom -> 32 บิต Intel CPU พร้อมการจำลอง Android 32 บิต

x86 Atom_64 -> CPU Intel 32 บิตพร้อมการจำลอง Android 64 บิต

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