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

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

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

codelines ส่วนตัว

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

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

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

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