ทำไม Java ถึงถูกเลือกสำหรับ Android?


46

เหตุใดจึงเลือก Java สำหรับ Android แทนที่จะเป็น C ++ ฉันเคยได้ยินว่า Java ใช้หน่วยความจำค่อนข้างมากและฉันจะสันนิษฐานว่าการใช้หน่วยความจำต่ำจะค่อนข้างสำคัญสำหรับอุปกรณ์มือถือ มีข้อได้เปรียบที่แท้จริงในการใช้ Java แทนภาษาอย่าง C ++ บนอุปกรณ์มือถือหรือไม่?


29
จุดเล็กน้อย, Android ไม่ได้เริ่มต้นโดย Google Google ซื้อ Android รวมถึงการใช้ Java
วิศวกรโลก

2
@ZJR: ภาษาหลักที่ใช้ใน Google นั้นเป็น Java, Python และ C ++ เสมอ Java อยู่ที่นั่นเสมอก่อนที่ Android
UncleZeiv

15
Android ใช้ภาษาจาวาและไม่ใช่ Java Virtual Machine มีความแตกต่างใหญ่มันยังใช้รูปแบบรหัสไบต์ของตัวเอง คำถามนี้มีข้อบกพร่องในความตั้งใจและไม่สร้างสรรค์อย่างใดอย่างหนึ่ง!

8
@JarrodRoberson ฉันคิดว่ามันสร้างสรรค์ตราบใดที่มันไม่ได้กลายเป็นความโกลาหล แต่ชุมชนพูด ...
maple_shaft

5
ฉันเปิดอยู่บนพื้นฐานของการอภิปราย Meta เกี่ยวกับคำถามที่สำคัญทางประวัติศาสตร์ คำถามเกี่ยวกับประวัติความเป็นมาของการพัฒนาซอฟต์แวร์และหัวข้อที่เกี่ยวข้องอยู่ในหัวข้อและเพิ่มคุณค่า ด้วยการใช้ถ้อยคำของคำถามนี้และคำตอบของคำถามนี้ฉันคิดว่าคำถามนี้เหมาะสำหรับชุมชนนี้
โธมัสโอเวนส์

คำตอบ:


40

นี้บทความเพิงบางอย่างเกี่ยวกับสถานการณ์ การเชื่อมโยงที่เกี่ยวข้องมากที่สุดในบทความที่เป็นนี้ ดังนั้นคุณมีฐานการติดตั้งจำนวนมากที่มีโปรแกรมเมอร์จำนวนมากที่รู้ภาษาและมันได้รับการสอนอย่างกว้างขวางในมหาวิทยาลัย C ++ หลุดออกจากหลักสูตรของโรงเรียน Java ยังอยู่ที่นี่ Java มี Java ME ซึ่งมีการติดตั้งจำนวนมากบนมือถืออื่น ๆ Pantec Ease ที่ฉันมีในกระเป๋าของฉันตอนนี้มีถ้วยกาแฟเล็ก ๆ ที่มุมของหน้าจอ ใครสนใจที่จะเดาว่าคืออะไร?

นี้คำตอบในกองมากเกินครอบคลุมมันสวยดีเกินไป

สรุปคำตอบ SO:

java เป็นภาษาที่รู้จักกันดีนักพัฒนารู้จักและไม่จำเป็นต้องเรียนรู้

มันยากที่จะยิงตัวเองด้วยจาวามากกว่ากับรหัส c, c ++ เพราะมันไม่มีเลขคณิตตัวชี้

มันทำงานใน vm ดังนั้นไม่จำเป็นต้องคอมไพล์ใหม่สำหรับโทรศัพท์ทุกเครื่องที่นั่นและง่ายต่อการรักษาความปลอดภัย

เครื่องมือการพัฒนาจำนวนมากสำหรับ java (ดูก่อน)

โทรศัพท์มือถือหลายเครื่องใช้แล้วจาวาฉันดังนั้นจาวาเป็นที่รู้จักในอุตสาหกรรม

ความแตกต่างของความเร็วไม่ใช่ปัญหาสำหรับแอปพลิเคชั่นส่วนใหญ่หากเป็นคุณควรใช้รหัสในการประกอบ


1
อ่าคุณเอาชนะฉันไปแล้วฉันจะเพิ่มเข้าไปในรายการของคุณ ฉันพบคำถาม SO อื่น ๆ ที่เพิ่มอีกเหตุผลว่าทำไม Java จึงถูกเลือก (เป็นภาษาที่จัดการ) - stackoverflow.com/questions/5605575/…
Shauna

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

2
เมื่อพิจารณาจากจำนวนอุปกรณ์ Android ที่ตลาดแบ่งให้แล้วมันแทบจะเป็นไปไม่ได้เลยที่จะจัดการกับสิ่งอื่น
วิศวกรโลก

3
สิ่งนี้ถูกต้อง แต่พวกเขาสามารถเลือกภาษาใดก็ได้ พวกเขาสามารถเขียนใหม่แม้แต่; พวกเขาสร้าง VM Java มีข้อได้เปรียบของข้อมูลจำเพาะ VM ที่กำหนดไว้อย่างชัดเจนว่า
Michael K

18

ฉันจะเดาว่า Google เลือก Java เพื่อความคุ้นเคยหากไม่เป็นเช่นนั้น โครงการหลายแห่งของ Google นั้นมีแนวคิดเกี่ยวกับ Java schematics เป็นอย่างน้อย (ตัวอย่างเช่น GWT)

นอกจากนี้ยังเป็นภาษาที่สอนกันอย่างแพร่หลายในโรงเรียนเทคนิค (ต่างจากพูดว่า Javascript (ซึ่ง Android รองรับอย่างสุดซึ้ง)) แน่นอนว่า Java ไม่ใช่ภาษาที่ดีที่สุดสำหรับอุปกรณ์พกพาในแง่ของประสิทธิภาพและการผลิต แต่เป็นที่รู้จักกันดี

โปรดจำไว้ว่า Android มาสายในงานปาร์ตี้เล็กน้อย การบังคับให้นักพัฒนาใช้ภาษา C ++ ซึ่งเป็นภาษาที่รวบรวมในระดับต่ำจะทำให้การสร้างปัจจัย 'wow' ยากขึ้นและหากไม่มีอะไรอื่น Android จำเป็นต้องใช้ตัวเลข (ของแอพ) และความฉาบฉวย


3
ฉันชอบความคิดของคุณเกี่ยวกับการพัฒนาแอพ ฉันไม่เคยคิดถึงเรื่องนี้มาก่อน แต่มันก็สมเหตุสมผล +1
รัสเซลล์

6
ฉันคิดว่าการเกลียดชัง C ++ เหนือ Java ในกรณีนี้มีน้อยกว่าเกี่ยวกับความว่องไวและปัจจัยว้าวและอีกมากมายที่เกี่ยวข้องกับความสามารถสำหรับนักพัฒนาในการเขียนแอพพลิเคชั่นสำหรับตลาดได้รวดเร็วและง่ายดาย ในขณะที่เขียนข้อกำหนดความรู้ทั่วไปก็คือความสำเร็จของ iPhone มีความสัมพันธ์กับความสำเร็จของ Apple ที่ทำให้การพัฒนาแอพน่าสนใจสำหรับนักพัฒนา C ++ คงเป็นเรื่องยากเกินไปที่นักพัฒนาส่วนใหญ่จะกลืนดังนั้นการสูญเสียประสิทธิภาพขั้นต่ำของ Java จึงคุ้มค่า
maple_shaft

8
@maple_shaft: จริงเหรอ? สำหรับผมมันดูเหมือนว่าความสำเร็จของ iPhone จะเป็นอย่างไรแม้ว่าการพัฒนาแอพพลิเคชั่นไม่น่าสนใจไม่ใช่เพราะความน่าดึงดูดใจของมัน!
Carson63000

3
@maple_shaft: ต้องเห็นด้วยกับ Carson ที่นี่ การพัฒนา iOS เป็นฝันร้าย มีเหตุผลที่ไม่มีใครนอกระบบนิเวศของ Apple กำลังใช้ Objective-C และนั่นคือก่อนที่คุณจะสัมผัสกับคำศัพท์ที่ชั่วร้ายของ Apple เมื่อมันเกิดขึ้นจริง ๆ แล้วพยายามปรับใช้แอพที่คุณสร้างขึ้น ...
Mason Wheeler

@Jeffrey ทำไมคุณถึงพูดว่า Android รองรับ JavaScript?
Pacerier

9

ไม่แน่ใจว่าทำไมเลือก Java ทั้งหมด แต่อาจเป็นเพราะสาเหตุหลายประการ

  1. เพื่อจับภาพกลุ่มนักพัฒนาขนาดใหญ่ที่คุ้นเคยและใช้ Java

  2. เติมช่องว่างมือถือใน Java ที่เทคโนโลยีเช่น J2ME ที่ขาด Java

ประการที่สองไม่ได้ระบุ Java Virtual Machine สำหรับ Android แต่โค้ด Java ทั้งหมดจะถูกคอมไพล์เพื่อให้ทำงานบนDalvikซึ่งเป็น VM ที่มีน้ำหนักเบาและปรับให้เหมาะสมได้รับการออกแบบมาโดยเฉพาะสำหรับการใช้งานในสภาพแวดล้อมมือถือ ช่วยเพิ่มอายุการใช้งานแบตเตอรี่และเพิ่มประสิทธิภาพการใช้ทรัพยากรให้สูงสุด

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