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

เอกสารนี้มีคำตอบสำหรับคำถามทั่วไปเกี่ยวกับแพลตฟอร์ม 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-release manifest

ดูรายละเอียดเพิ่มเติมเกี่ยวกับการซิงค์สาขาได้ที่เริ่มต้นไคลเอ็นต์ Repo

ระบบจะผสานรวมโค้ดจาก android-latest-release เข้ากับ aosp-main ไหม

ไม่ได้ ระบบจะไม่ผสานรวมโค้ดกับ aosp-main ซึ่งเป็นสาขาแบบอ่านอย่างเดียว ณ วันที่ 27 มีนาคม 2025

ระบบจะพุชโค้ดสำหรับการเผยแพร่ครั้งถัดไปไปที่ใด

Google จะพุชโค้ดสำหรับการเผยแพร่ครั้งถัดไปไปยังBranch การเผยแพร่แบบสาธารณะล่าสุด และอัปเดตandroid-latest-release Manifest เพื่อชี้ไปยัง Branch นั้น

ระบบจะเลือกการเปลี่ยนแปลงที่ฉันขอจากสาขา android-latest-release ไปยัง Gerrit ภายในไหม

หลังจากที่คุณอัปโหลดการเปลี่ยนแปลงที่เสนอแล้ว Google จะตรวจสอบการเปลี่ยนแปลงดังกล่าว และหากยอมรับ เราจะ เลือกการเปลี่ยนแปลงนั้นลงใน Gerrit ภายใน

ฉันจะทราบได้อย่างไรว่าคำขอเปลี่ยนแปลงของฉันได้รับการยอมรับ

การเปลี่ยนแปลงที่ยอมรับและเลือกจะปรากฏในการพุชในอนาคตไปยังกิ่งก้านการเผยแพร่ในโฮสต์ Android และสามารถซิงค์กับ repo ได้โดยใช้ android-latest-release ไม่มีกลไกการแจ้งเตือนเมื่อมีการยอมรับหรือปฏิเสธการเปลี่ยนแปลงที่เสนอ

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

  1. ผู้มีส่วนร่วมภายนอกเสนอการเปลี่ยนแปลงใน android-latest-release (เมื่อใช้ Repo) หรือในสาขาการเผยแพร่ล่าสุดที่ระบุไว้ใน android-latest-release Manifest (เมื่อใช้ Git โดยตรง)

  2. Google จะตรวจสอบการเปลี่ยนแปลง หากการเปลี่ยนแปลงเป็นดังนี้

    • Google ยอมรับการเปลี่ยนแปลงนั้นและรวมเข้ากับสาขาการพัฒนาภายใน

    • ไม่ยอมรับ Google ไม่เลือกการเปลี่ยนแปลง

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

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

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