การจัดการซอฟต์แวร์ Android

โครงการ Android Open Source (AOSP) ดูแลรักษาชุดซอฟต์แวร์ที่สมบูรณ์เพื่อพอร์ตโดย OEM และผู้ติดตั้งอุปกรณ์อื่นๆ และทำงานบนฮาร์ดแวร์ของตนเอง เพื่อรักษาคุณภาพของ Android นั้น Google ได้ให้การสนับสนุนวิศวกรเต็มเวลา ผู้จัดการผลิตภัณฑ์ นักออกแบบอินเทอร์เฟซผู้ใช้ ผู้ทดสอบประกันคุณภาพ และบทบาทอื่นๆ ทั้งหมดที่จำเป็นในการนำอุปกรณ์สมัยใหม่ออกสู่ตลาด

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

การจัดการรหัส AOSP

แผนภูมิด้านล่างแสดงแนวคิดเบื้องหลังการจัดการและการเผยแพร่โค้ด AOSP

แผนภาพโคเดไลน์
รูปที่ 1. รหัส AOSP และการเผยแพร่
  1. มีแพลตฟอร์ม Android รุ่นล่าสุดอยู่ในช่วงเวลาใดก็ตาม โดยทั่วไปจะอยู่ในรูปแบบของกิ่งก้านในต้นไม้
  2. ผู้สร้างและผู้มีส่วนร่วมทำงานร่วมกับรุ่นล่าสุดในปัจจุบัน แก้ไขจุดบกพร่อง เปิดตัวอุปกรณ์ใหม่ ทดลองใช้คุณสมบัติใหม่ และอื่นๆ
  3. ในขณะเดียวกัน Google ก็ทำงานภายในแพลตฟอร์มและเฟรมเวิร์ก Android เวอร์ชันถัดไปตามความต้องการและเป้าหมายของผลิตภัณฑ์ เราพัฒนา Android เวอร์ชันถัดไปโดยทำงานร่วมกับพันธมิตรด้านอุปกรณ์บนอุปกรณ์เรือธงซึ่งมีสเปกที่ได้รับเลือกให้ผลักดัน Android ไปในทิศทางที่เราเชื่อว่าควรจะไป
  4. เมื่อเวอร์ชัน n+1 พร้อมแล้ว เวอร์ชันดังกล่าวจะถูกเผยแพร่ไปยังแผนผังซอร์สสาธารณะและกลายเป็นเวอร์ชันล่าสุด

ข้อกำหนดและคำเตือน

  • การเผยแพร่ สอดคล้องกับเวอร์ชันที่เป็นทางการของแพลตฟอร์ม Android เช่น 1.5 หรือ 8.1 การเปิดตัวแพลตฟอร์มสอดคล้องกับเวอร์ชันในช่อง SdkVersion ของไฟล์ AndroidManifest.xml และกำหนดไว้ภายใน frameworks/base/api ในแผนผังต้นทาง
  • โปรเจ็กต์ อัปสตรีม เป็นโปรเจ็กต์โอเพ่นซอร์สที่สแต็ก Android ดึงโค้ด นอกเหนือจากโปรเจ็กต์ต่างๆ เช่น เคอร์เนล Linux และ WebKit แล้ว เรายังย้ายโปรเจ็กต์ Android กึ่งอิสระบางโปรเจ็กต์ต่อไป เช่น ART, เครื่องมือ Android SDK และ Bionic เพื่อทำงานเป็นโปรเจ็กต์อัปสตรีม โดยทั่วไปแล้ว โครงการเหล่านี้ได้รับการพัฒนาในแผนผังสาธารณะทั้งหมด สำหรับโปรเจ็กต์ต้นน้ำบางโปรเจ็กต์ นักพัฒนาจะมีส่วนร่วมโดยตรงกับโปรเจ็กต์ต้นน้ำ สำหรับรายละเอียด โปรดดูที่ โครงการต้นน้ำ ในทั้งสองกรณี สแนปชอตจะถูกดึงเข้าสู่การเผยแพร่เป็นระยะๆ
  • ตลอดเวลา รหัสการเผยแพร่ (ซึ่งอาจประกอบด้วยมากกว่าหนึ่งสาขาในคอมไพล์) ถือเป็นซอร์สโค้ดมาตรฐานเพียงรหัสเดียวสำหรับเวอร์ชันแพลตฟอร์ม Android ที่กำหนด OEM และกลุ่มอื่นๆ ที่สร้างอุปกรณ์ควรดึงมาจากสาขาที่วางจำหน่ายเท่านั้น
  • รหัสการทดลองได้รับการจัดตั้งขึ้นเพื่อบันทึกการเปลี่ยนแปลงจากชุมชน เพื่อให้สามารถทำซ้ำได้โดยคำนึงถึงความเสถียร
  • การเปลี่ยนแปลงที่พิสูจน์ได้ว่ามีเสถียรภาพจะถูกดึงเข้าสู่สาขาการเผยแพร่ในที่สุด สิ่งนี้ใช้ได้กับการแก้ไขข้อบกพร่อง การปรับปรุงแอปพลิเคชัน และการเปลี่ยนแปลงอื่น ๆ ที่ไม่ส่งผลกระทบต่อ API ของแพลตฟอร์มเท่านั้น
  • การเปลี่ยนแปลงจะถูกดึงเข้าสู่สาขาที่เผยแพร่จากโปรเจ็กต์อัปสตรีม (รวมถึงโปรเจ็กต์ต้นทางของ Android) ตามความจำเป็น
  • เวอร์ชัน n+1 (เวอร์ชันหลักถัดไปของเฟรมเวิร์กและ API แพลตฟอร์ม) ได้รับการพัฒนาโดย Google ภายใน สำหรับรายละเอียด โปรดดูที่ โค้ดไลน์ส่วนตัว
  • การเปลี่ยนแปลงจะถูกดึงจากสาขาอัปสตรีม การเผยแพร่ และการทดลองไปยังสาขาส่วนตัวของ Google ตามความจำเป็น
  • เมื่อ API แพลตฟอร์มสำหรับเวอร์ชันถัดไปมีเสถียรภาพและทดสอบโดยสมบูรณ์แล้ว Google จะตัดการเปิดตัวแพลตฟอร์มเวอร์ชันถัดไป (โดยเฉพาะ SdkVersion ใหม่) สิ่งนี้สอดคล้องกับโค้ดไลน์ภายในที่ได้รับการเผยแพร่ต่อสาธารณะและโค้ดไลน์แพลตฟอร์มใหม่ในปัจจุบัน
  • เมื่อเวอร์ชันแพลตฟอร์มใหม่ถูกตัด โคเดไลน์การทดลองที่เกี่ยวข้องจะถูกสร้างขึ้นในเวลาเดียวกัน

รหัสส่วนตัว

กลยุทธ์การจัดการแหล่งที่มาข้างต้นมีโค้ดไลน์ที่ Google เก็บไว้เป็นส่วนตัวเพื่อมุ่งความสนใจไปที่ Android เวอร์ชันสาธารณะในปัจจุบัน

OEM และผู้สร้างอุปกรณ์อื่นๆ มักจะต้องการจัดส่งอุปกรณ์ที่ใช้ Android เวอร์ชันล่าสุด ในทำนองเดียวกัน นักพัฒนาแอปพลิเคชันไม่ต้องการจัดการกับเวอร์ชันแพลตฟอร์มมากเกินความจำเป็น ในขณะเดียวกัน Google ยังคงรับผิดชอบต่อทิศทางเชิงกลยุทธ์ของ Android ในฐานะแพลตฟอร์มและผลิตภัณฑ์ แนวทางของเรามุ่งเน้นไปที่อุปกรณ์เรือธงจำนวนไม่มากเพื่อขับเคลื่อนคุณสมบัติต่างๆ ในขณะเดียวกันก็ปกป้องทรัพย์สินทางปัญญาที่เกี่ยวข้องกับ Android

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

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