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

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

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

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

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

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

Google ดูแลการพัฒนา AOSP หลักและพยายามสร้างชุมชนนักพัฒนาซอฟต์แวร์และผู้ใช้ที่มีประสิทธิภาพ ส่วนใหญ่แล้ว ซอร์สโค้ด Android ได้รับอนุญาตภายใต้สัญญาอนุญาต Apache 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 จะต้องยืนยันว่าแหล่งที่มาได้รับอนุญาตให้มีส่วนร่วม

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

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