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

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

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

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

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

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

ข้อกำหนดและข้อควรระวัง

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

รหัสส่วนตัว

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

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

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

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