คำถามที่พบบ่อยเกี่ยวกับ AOSP

เอกสารนี้มีคำตอบสำหรับคำถามทั่วไปเกี่ยวกับแพลตฟอร์มโอเพนซอร์ส Android (AOSP)

คำถามแบบโอเพนซอร์ส

เหตุผลที่ Google เปิดซอร์สโค้ด Android

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

Android เป็นโปรเจ็กต์โอเพนซอร์สประเภทใด

Google ดูแลการพัฒนา AOSP หลักและพยายามสร้างชุมชนนักพัฒนาซอฟต์แวร์และผู้ใช้ที่มีประสิทธิภาพ โดยส่วนใหญ่แล้ว ซอร์สโค้ด Android จะได้รับใบอนุญาตภายใต้ Apache License 2.0 ที่ได้รับอนุญาตแทนที่จะเป็นใบอนุญาต copyleft เราเลือกสัญญาอนุญาต Apache 2.0 เนื่องจากเชื่อว่าสัญญาอนุญาตนี้จะส่งเสริมให้ซอฟต์แวร์ Android ได้รับการนำไปใช้งานอย่างแพร่หลาย โปรดดูรายละเอียดที่หัวข้อใบอนุญาต

เหตุใด Google จึงเป็นผู้ดูแล Android

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

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

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

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

กลยุทธ์โดยรวมของ Google สำหรับการพัฒนาผลิตภัณฑ์ Android คืออะไร

เราเปิดตัวอุปกรณ์ที่ยอดเยี่ยมในตลาดที่มีการแข่งขันสูง จากนั้นเราจะนํานวัตกรรมและการปรับปรุงที่เราทําไว้ในแพลตฟอร์มหลักเป็นเวอร์ชันถัดไป

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

ซอฟต์แวร์ Android พัฒนาขึ้นอย่างไร

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

ในขณะเดียวกัน มีBranch ของการทดสอบปัจจุบัน ซึ่งเป็นการพัฒนาการมีส่วนร่วมแบบคาดเดา เช่น ฟีเจอร์รุ่นถัดไปขนาดใหญ่ การแก้ไขข้อบกพร่องและการมีส่วนร่วมอื่นๆ สามารถรวมไว้ในสาขาปัจจุบันซึ่งเป็นสาขาที่เสถียรจากสาขาทดลองตามความเหมาะสม

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

ดูรายละเอียดเกี่ยวกับบรรทัดโค้ด สาขา และรุ่นได้ที่การจัดการซอฟต์แวร์ Android

เหตุใดจึงมีการพัฒนาบางส่วนของ Android เป็นการส่วนตัว

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

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

มีการเผยแพร่ซอร์สโค้ดเมื่อใด

เมื่อพร้อมแล้ว การเผยแพร่ซอร์สโค้ดเป็นกระบวนการที่ซับซ้อนพอสมควร Android บางส่วนพัฒนาแบบเปิดและซอร์สโค้ดนั้นพร้อมใช้งานเสมอ ส่วนอื่นๆ จะพัฒนาในทรีส่วนตัวก่อน และเราจะเผยแพร่ซอร์สโค้ดนั้นเมื่อแพลตฟอร์มเวอร์ชันถัดไปพร้อมใช้งาน

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

อะไรเกี่ยวข้องกับการเผยแพร่ซอร์สโค้ดสำหรับ Android เวอร์ชันใหม่

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

เมื่อการเผยแพร่ได้รับอนุมัติจากหน่วยงานกำกับดูแลและผู้ให้บริการ ผู้ผลิตจะเริ่มผลิตอุปกรณ์จำนวนมาก และเราจะเริ่มเผยแพร่ซอร์สโค้ด

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

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

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

AOSP เกี่ยวข้องกับโปรแกรมความเข้ากันได้กับ Android อย่างไร

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

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

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

ฉันจะมีส่วนร่วมในการพัฒนา Android ได้อย่างไร

คุณสามารถรายงานข้อบกพร่อง เขียนแอปสำหรับ Android หรือร่วมให้ซอร์สโค้ดใน AOSP

เราจำกัดประเภทของโค้ดที่รับ ตัวอย่างเช่น ผู้ใช้อาจต้องการมีส่วนร่วมด้วย API แอปทางเลือก เช่น สภาพแวดล้อมที่ใช้ C++ แบบสมบูรณ์ เราขอปฏิเสธการมีส่วนร่วมดังกล่าว เนื่องจาก Android สนับสนุนให้แอปทำงานในรันไทม์ ART ในทำนองเดียวกัน เราจะไม่ยอมรับการมีส่วนร่วม เช่น ไลบรารี GPL หรือ LGPL ที่ไม่เข้ากันได้กับเป้าหมายการออกใบอนุญาตของเรา

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

ฉันจะเป็นตัวแทนจำหน่าย Android ได้อย่างไร

AOSP ไม่ได้มี ความคิดเห็นของคณะกรรมการเลย ผลงานทั้งหมด (รวมถึงผลงานที่เขียนโดยพนักงาน Google) จะผ่านระบบบนเว็บที่เรียกว่า Gerrit ซึ่งเป็นส่วนหนึ่งของกระบวนการวิศวกรรม Android ระบบนี้ทำงานร่วมกับระบบการจัดการซอร์สโค้ด Git เพื่อจัดการการมีส่วนร่วมของซอร์สโค้ดอย่างมีประสิทธิภาพ

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

โปรดดูรายละเอียดที่หัวข้อการส่งแพตช์