คำถามที่พบบ่อยเกี่ยวกับ 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) จะมีสาขาที่เกี่ยวข้องในต้นไม้โอเพนซอร์ส ระบบจะถือว่าเวอร์ชันล่าสุดเป็นเวอร์ชันปัจจุบันของสาขาที่เสถียร ซึ่งเป็นสาขาที่ผู้ผลิตพอร์ตไปยังอุปกรณ์ของตน สาขานี้จะเหมาะสำหรับการเผยแพร่เสมอ

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

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

โปรดดูรายละเอียดเกี่ยวกับสาขาและรุ่นที่หัวข้อวงจรการเผยแพร่

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

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

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

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

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

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

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

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

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

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

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

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

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

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

โปรแกรมความเข้ากันได้กับ 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 แต่ผู้อนุมัติคนเดียวกันจะรับผิดชอบต่อข้อมูลที่ส่งเข้ามาทั้งหมด ไม่ว่าต้นทางจะมาจากที่ใดก็ตาม

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