เอกสารนี้มีคำตอบสำหรับคำถามทั่วไปเกี่ยวกับแพลตฟอร์ม Android Open Source (AOSP)
เกี่ยวกับ android-latest-release
เหตุใดฉันจึงส่งไปยัง aosp-main ไม่ได้
คุณส่งไปยัง aosp-main ไม่ได้เนื่องจากตอนนี้สาขานั้นเป็นแบบอ่านอย่างเดียว
ฉันควรเสนอการเปลี่ยนแปลงใน AOSP ที่ใด
คุณควรเสนอการเปลี่ยนแปลงใหม่ๆ ให้กับ android-latest-release (เมื่อใช้ Repo) หรือ
ให้กับสาขาการแก้ไขเริ่มต้นที่ระบุไว้ในไฟล์ Manifest ของ android-latest-release (เมื่อใช้ Git โดยตรง) การเปลี่ยนแปลงที่เสนอที่มีอยู่แล้วในสาขาอื่นๆ
(เช่น aosp-main) ไม่จําเป็นต้องย้าย
ดูข้อมูลเพิ่มเติมได้ที่อัปโหลดการเปลี่ยนแปลงเพื่อรับการตรวจสอบ
ฉันควรซิงค์กับสาขาใด
เมื่อใช้ Repo ให้ซิงค์กับ
android-latest-releaseโดยใช้คำสั่งต่อไปนี้repo init --partial-clone --no-use-superproject -b android-latest-release -u https://android.googlesource.com/platform/manifestเมื่อใช้ Git โดยตรง ให้ซิงค์กับกิ่งการแก้ไขเริ่มต้นที่ระบุไว้ใน
android-latest-releasemanifest
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการซิงค์สาขาได้ที่เริ่มต้นไคลเอ็นต์ Repo
ระบบจะผสานรวมโค้ดจาก android-latest-release เข้ากับ aosp-main ไหม
ไม่ได้ ระบบจะไม่ผสานรวมโค้ดกับ aosp-main ซึ่งเป็นสาขาแบบอ่านอย่างเดียว ณ วันที่ 27 มีนาคม 2025
ระบบจะพุชโค้ดสำหรับการเผยแพร่ครั้งถัดไปไปที่ใด
Google จะพุชโค้ดสำหรับการเผยแพร่ครั้งถัดไปไปยังสาขาการเผยแพร่ต่อสาธารณะล่าสุด
และอัปเดตandroid-latest-release Manifest เพื่อชี้ไปยังสาขานั้น
ระบบจะเลือกการเปลี่ยนแปลงที่ฉันขอจากสาขา android-latest-release ไปยัง Gerrit ภายในไหม
หลังจากที่คุณอัปโหลดการเปลี่ยนแปลงที่เสนอแล้ว Google จะตรวจสอบการเปลี่ยนแปลงดังกล่าว และหากยอมรับ เราจะ เลือกการเปลี่ยนแปลงนั้นลงใน Gerrit ภายใน
ฉันจะทราบได้อย่างไรว่าคำขอเปลี่ยนแปลงของฉันได้รับการยอมรับ
การเปลี่ยนแปลงที่ยอมรับและเลือกจะปรากฏในการพุชในอนาคตไปยังสาขาการเผยแพร่ใน
โฮสต์ Android และสามารถซิงค์กับ repo ได้โดยใช้ android-latest-release
ไม่มีกลไกการแจ้งเตือนเมื่อมีการยอมรับหรือปฏิเสธการเปลี่ยนแปลงที่เสนอ
เวิร์กโฟลว์ทั่วไปตั้งแต่เมื่อผู้ร่วมให้ข้อมูลภายนอกเสนอการเปลี่ยนแปลงไปจนถึงเมื่อมีการผสานรวมเข้ากับสาขาการเผยแพร่ล่าสุดเป็นอย่างไร
ผู้ร่วมให้ข้อมูลภายนอกเสนอการเปลี่ยนแปลงใน
android-latest-release(เมื่อใช้ Repo) หรือในสาขาการเผยแพร่ล่าสุดที่ระบุไว้ในไฟล์android-latest-releaseManifest (เมื่อใช้ Git โดยตรง)Google จะตรวจสอบการเปลี่ยนแปลง หากการเปลี่ยนแปลงเป็นดังนี้
Google ยอมรับการเปลี่ยนแปลงดังกล่าวและรวมเข้ากับสาขาการพัฒนาภายใน
ไม่ยอมรับ Google ไม่เลือกการเปลี่ยนแปลง
ผู้ร่วมให้ข้อมูลภายนอกตรวจสอบการเปลี่ยนแปลงของตนใน
android-latest-release
จะเกิดอะไรขึ้นหากฉันไม่ต้องการการเปลี่ยนแปลงที่เสนออีกต่อไป
หากไม่ต้องการการเปลี่ยนแปลงที่เสนออีกต่อไป ไม่ต้องการผสานรวมการเปลี่ยนแปลง หรือทราบว่า Google ได้ตรวจสอบการเปลี่ยนแปลงแล้ว ให้ยกเลิกการเปลี่ยนแปลงเพื่อให้ การเปลี่ยนแปลงดังกล่าวอยู่ในประวัติการเปลี่ยนแปลงที่เสนอในโฮสต์ Android
คำถามโอเพนซอร์ส
ทำไม 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) จะมีกิ่งที่สอดคล้องกัน
ในโครงสร้างโอเพนซอร์ส สาขาที่อัปเดตล่าสุดถือเป็นเวอร์ชันสาขาที่เสถียรปัจจุบัน ซึ่ง Manifest android-latest-release ชี้ไปที่
นี่คือสาขาที่ผู้ผลิตพอร์ตไปยังอุปกรณ์ของตน
เราจะดูแลให้สาขานี้พร้อมสำหรับการเผยแพร่ตลอดเวลา
สุดท้ายนี้ Google ทำงานบนแพลตฟอร์ม Android เวอร์ชันถัดไปควบคู่ไปกับการพัฒนาอุปกรณ์เรือธง
เหตุใดจึงมีการพัฒนา Android บางส่วนแบบส่วนตัว
โดยปกติแล้วจะใช้เวลามากกว่า 1 ปีในการนำอุปกรณ์ออกสู่ตลาด และแน่นอนว่าผู้ผลิตอุปกรณ์ต้องการจัดส่งซอฟต์แวร์เวอร์ชันล่าสุดเท่าที่จะทำได้ ในขณะเดียวกัน นักพัฒนาแอปก็ไม่ต้องการติดตามแพลตฟอร์มเวอร์ชันใหม่อยู่ตลอดเวลาเมื่อเขียนแอป ทั้ง 2 กลุ่มต่างก็มีความตึงเครียดระหว่างการจัดส่งผลิตภัณฑ์กับการไม่อยากตกยุค
เพื่อแก้ไขปัญหานี้ เราจึงพัฒนาบางส่วนของ Android เวอร์ชันถัดไป รวมถึง API ของแพลตฟอร์มหลักในสาขาแบบส่วนตัว API เหล่านี้ประกอบขึ้นเป็น Android เวอร์ชันถัดไป เป้าหมายของเราคือการมุ่งเน้นไปที่ซอร์สโค้ด Android เวอร์ชันเสถียรปัจจุบัน ในขณะที่เราสร้างแพลตฟอร์มเวอร์ชันถัดไป ซึ่งช่วยให้นักพัฒนาแอปและ OEM ใช้เวอร์ชันเดียวได้โดยไม่ต้อง ติดตามงานในอนาคตที่ยังไม่เสร็จเพียงเพื่อตามให้ทัน
มีการเผยแพร่ซอร์สโค้ดเมื่อใด
เมื่อพร้อมแล้ว การเผยแพร่ซอร์สโค้ดเป็นกระบวนการที่ค่อนข้างซับซ้อน 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 แต่ผู้อนุมัติคนเดียวกันจะ รับผิดชอบต่อการส่งทั้งหมด ไม่ว่าจะมีที่มาใดก็ตาม
โปรดดูรายละเอียดที่หัวข้อการส่งแพตช์