เอกสารนี้มีคำตอบสำหรับคำถามทั่วไปเกี่ยวกับแพลตฟอร์มโอเพนซอร์ส Android (AOSP)
เกี่ยวกับ android-latest-release
Why can't I submit to 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-release
ไฟล์ Manifest
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการซิงค์สาขาได้ที่หัวข้อเริ่มต้นใช้งานไคลเอ็นต์ Repo
ระบบจะรวมโค้ดจาก android-latest-release เข้ากับ aosp-main ไหม
ไม่ได้ ระบบจะไม่ผสานโค้ดไปยัง aosp-main
ซึ่งเป็นสาขาที่อ่านอย่างเดียว ณ วันที่ 27 มีนาคม 2025
ระบบจะพุชโค้ดสำหรับรุ่นถัดไปไว้ที่ใด
Google จะพุชโค้ดสำหรับรุ่นถัดไปไปยังสาขารุ่นสาธารณะล่าสุด และอัปเดต android-latest-release
Manifest ให้ชี้ไปยังสาขานั้น
คำขอเปลี่ยนแปลงของฉันจะได้รับการคัดสรรจากสาขา android-latest-release ไปยัง Gerrit ภายในไหม
หลังจากคุณอัปโหลดการเปลี่ยนแปลงที่เสนอแล้ว Google จะตรวจสอบการเปลี่ยนแปลงดังกล่าว และหากยอมรับ ก็จะเลือกการเปลี่ยนแปลงนั้นมาใส่ใน Gerrit ภายใน
ฉันจะทราบได้อย่างไรว่าคำขอเปลี่ยนแปลงของฉันได้รับอนุมัติแล้ว
การเปลี่ยนแปลงที่ยอมรับและเลือกมาจะปรากฏในการพุชไปยังสาขารุ่นในอนาคตบนโฮสต์ Android และซิงค์กับรีโปได้โดยใช้ android-latest-release
ไม่มีกลไกการแจ้งเตือนเมื่อการเปลี่ยนแปลงที่เสนอได้รับการยอมรับหรือถูกปฏิเสธ
เวิร์กโฟลว์ทั่วไปตั้งแต่ที่ผู้มีส่วนร่วมภายนอกเสนอการเปลี่ยนแปลงไปจนถึงเวลาที่ผสานการเปลี่ยนแปลงนั้นลงในสาขารุ่นล่าสุดคืออะไร
ผู้มีส่วนร่วมภายนอกเสนอการเปลี่ยนแปลงใน
android-latest-release
(เมื่อใช้ Repo) หรือในสาขารุ่นล่าสุดที่ระบุไว้ในไฟล์ Manifest ของandroid-latest-release
(เมื่อใช้ 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 แต่ผู้อนุมัติคนเดียวกันจะรับผิดชอบต่อข้อมูลที่ส่งทั้งหมด ไม่ว่าต้นทางจะมาจากที่ใดก็ตาม
โปรดดูรายละเอียดที่หัวข้อการส่งแพตช์