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