این سند حاوی پاسخ هایی به سوالات کلی در مورد پلتفرم متن باز اندروید (AOSP) است.
سوالات متن باز
چرا گوگل کد منبع اندروید را باز کرد؟
گوگل AOSP را در پاسخ به تجربیات خودمان در راه اندازی اپلیکیشن های موبایل راه اندازی کرد. ما میخواستیم مطمئن شویم که همیشه یک پلتفرم باز برای اپراتورها، OEMها و توسعهدهندگان برای تحقق ایدههای نوآورانهشان وجود دارد. ما همچنین می خواستیم از هر نقطه اصلی شکست جلوگیری کنیم، بنابراین هیچ بازیگر صنعتی نمی تواند نوآوری های دیگری را محدود یا کنترل کند. مهمترین هدف ما با AOSP این است که مطمئن شویم نرمافزار متنباز اندروید تا حد امکان گسترده و سازگار اجرا میشود و به نفع همه است.
اندروید چه نوع پروژه منبع باز است؟
Google بر توسعه هسته AOSP نظارت دارد و برای ایجاد جوامع توسعهدهنده و کاربر قوی کار میکند. در بیشتر موارد، کد منبع اندروید به جای مجوز کپیلفت ، تحت مجوز مجاز Apache 2.0 مجوز دارد. ما مجوز Apache 2.0 را انتخاب کردیم زیرا معتقدیم که این مجوز پذیرش گسترده نرم افزار اندروید را تشویق می کند. برای جزئیات، مجوزها را ببینید.
چرا گوگل مسئول اندروید است؟
راه اندازی یک پلتفرم نرم افزاری پیچیده است. باز بودن برای موفقیت بلندمدت یک پلت فرم حیاتی است، زیرا باز بودن، سرمایه گذاری توسعه دهندگان را جذب می کند و زمینه بازی برابر را تضمین می کند. این پلتفرم همچنین باید محصولی جذاب برای کاربران باشد.
گوگل منابع مهندسی حرفه ای لازم را برای اطمینان از اینکه اندروید یک پلت فرم نرم افزاری کاملا رقابتی است متعهد کرده است. گوگل با پروژه اندروید به عنوان یک عملیات توسعه محصول در مقیاس کامل برخورد می کند و معاملات تجاری لازم را انجام می دهد تا مطمئن شود دستگاه های عالی دارای Android به بازار عرضه می شوند.
با اطمینان از موفقیت اندروید در میان کاربران، ما به اطمینان از سرزندگی اندروید به عنوان یک پلتفرم و به عنوان یک پروژه منبع باز کمک می کنیم. پس از همه، چه کسی کد منبع را برای یک محصول ناموفق می خواهد؟
هدف ما تضمین یک اکوسیستم موفق در اطراف اندروید است. ما کد منبع اندروید را باز کردیم تا هر کسی بتواند نرم افزار را تغییر دهد و توزیع کند تا نیازهای خود را برآورده کند.
استراتژی کلی گوگل برای توسعه محصول اندروید چیست؟
ما دستگاه های عالی را در یک بازار رقابتی عرضه می کنیم. سپس نوآوریها و پیشرفتهایی را که ایجاد کردهایم در پلتفرم اصلی به عنوان نسخه بعدی ترکیب میکنیم.
در عمل، این بدان معناست که تیم مهندسی اندروید بر روی تعداد کمی از دستگاههای «پر سرسبد» تمرکز میکند و نسخه بعدی نرمافزار اندروید را برای پشتیبانی از عرضههای آن محصول توسعه میدهد. این دستگاههای پرچمدار بیشتر ریسک محصول را جذب میکنند و مسیری را برای جامعه گسترده OEM ایجاد میکنند که دستگاههای بیشتری را دنبال میکنند که از ویژگیهای جدید بهره میبرند. به این ترتیب، ما مطمئن می شویم که پلتفرم اندروید مطابق با نیازهای دستگاه های دنیای واقعی تکامل می یابد.
نرم افزار اندروید چگونه توسعه می یابد؟
هر نسخه پلتفرم اندروید (مانند 1.5 یا 8.1) دارای یک شاخه مربوطه در درخت منبع باز است. آخرین شاخه، نسخه فعلی شاخه پایدار در نظر گرفته می شود. این شاخه ای است که سازندگان به دستگاه های خود منتقل می کنند. این شاخه همیشه برای رهاسازی مناسب نگهداری می شود.
به طور همزمان، یک شاخه آزمایشی فعلی وجود دارد که در آن مشارکت های گمانه زنی، مانند ویژگی های بزرگ نسل بعدی، توسعه می یابد. رفع اشکال و سایر مشارکتها را میتوان در شاخه پایدار فعلی از شاخه تجربی در صورت لزوم گنجاند.
در نهایت، گوگل روی نسخه بعدی پلتفرم اندروید همزمان با توسعه یک دستگاه پرچمدار کار می کند. این شاخه تغییرات را از شاخه های آزمایشی و پایدار در صورت لزوم اعمال می کند.
برای جزئیات بیشتر درباره خطوط کد، شاخهها و نسخهها، به مدیریت نرمافزار Android مراجعه کنید.
چرا بخش هایی از اندروید به صورت خصوصی توسعه می یابند؟
معمولا بیش از یک سال طول می کشد تا یک دستگاه به بازار عرضه شود. و البته، سازندگان دستگاهها میخواهند جدیدترین نرمافزاری را که میتوانند عرضه کنند. در همین حال، توسعه دهندگان نمی خواهند به طور مداوم نسخه های جدید پلتفرم را هنگام نوشتن برنامه ها ردیابی کنند. هر دو گروه تنش بین حمل و نقل محصولات و عدم تمایل به عقب افتادن را تجربه می کنند.
برای رفع این مشکل، برخی از بخشهای نسخه بعدی اندروید از جمله APIهای پلتفرم اصلی در یک شعبه خصوصی توسعه داده شدهاند. این API ها نسخه بعدی اندروید را تشکیل می دهند. هدف ما این است که هنگام ایجاد نسخه بعدی پلتفرم، توجه را روی نسخه پایدار فعلی کد منبع اندروید متمرکز کنیم. این به توسعه دهندگان و OEM ها اجازه می دهد تا از یک نسخه واحد بدون ردیابی کارهای ناتمام آینده استفاده کنند و فقط به دنبال آن باشند. سایر بخشهای سیستم اندروید که به سازگاری برنامهها مرتبط نیستند، بهصورت باز توسعه داده میشوند. ما قصد داریم در طول زمان تعداد بیشتری از این قطعات را به سمت توسعه باز سوق دهیم.
انتشار کد منبع چه زمانی ساخته می شود؟
وقتی آماده شدند. انتشار کد منبع یک فرآیند نسبتاً پیچیده است. برخی از بخشهای اندروید به صورت باز توسعه داده میشوند و کد منبع همیشه در دسترس است. بخشهای دیگر ابتدا در یک درخت خصوصی توسعه داده میشوند و کد منبع زمانی که نسخه پلتفرم بعدی آماده شد منتشر میشود.
در برخی از نسخهها، APIهای پلتفرم اصلی به اندازه کافی از قبل آماده هستند تا بتوانیم کد منبع را برای بررسی اولیه قبل از انتشار دستگاه بیرون بیاوریم. در نسخه های دیگر، این امکان پذیر نیست. در همه موارد، زمانی که احساس می کنیم نسخه پایدار است و زمانی که فرآیند توسعه اجازه می دهد، منبع پلتفرم را آزاد می کنیم.
انتشار کد منبع نسخه جدید اندروید چه چیزی را شامل می شود؟
انتشار کد منبع برای نسخه جدید پلتفرم اندروید فرآیند مهمی است. ابتدا، این نرمافزار در یک تصویر سیستم برای یک دستگاه ساخته میشود و از طریق اشکال مختلف گواهینامه، از جمله گواهینامه نظارتی دولتی برای مناطقی که تلفنها مستقر خواهند شد، قرار میگیرد. کد همچنین از طریق تست اپراتور می رود. این مرحله مهمی از فرآیند است، زیرا به شناسایی اشکالات نرم افزار کمک می کند.
هنگامی که انتشار توسط تنظیم کننده ها و اپراتورها تایید شد، سازنده شروع به تولید انبوه دستگاه ها می کند و ما شروع به انتشار کد منبع می کنیم.
همزمان با تولید انبوه، تیم گوگل چندین تلاش را برای آماده سازی نسخه متن باز آغاز می کند. این تلاشها شامل ایجاد تغییرات نهایی API، بهروزرسانی اسناد (برای انعکاس هرگونه تغییری که در طول آزمایش صلاحیت انجام شد، برای مثال)، آمادهسازی یک SDK برای نسخه جدید، و راهاندازی اطلاعات سازگاری پلت فرم است.
تیم حقوقی ما یک امضای نهایی را برای انتشار کد به منبع باز انجام می دهد. همانطور که مشارکتکنندگان متنباز ملزم به امضای قرارداد مجوز مشارکتکنندگان هستند که مالکیت معنوی مشارکتشان را تأیید میکند، Google نیز باید تأیید کند که منبع برای مشارکت پاک شده است.
از زمانی که تولید انبوه شروع میشود، فرآیند انتشار نرمافزار معمولاً حدود یک ماه طول میکشد، بنابراین انتشار کد منبع اغلب تقریباً همزمان با دسترسی دستگاهها به کاربران اتفاق میافتد.
AOSP چگونه با برنامه سازگاری اندروید ارتباط دارد؟
AOSP نرم افزار اندروید را نگهداری می کند و نسخه های جدیدی را توسعه می دهد. از آنجایی که این نرمافزار متنباز است، میتوان از این نرمافزار برای هر هدفی، از جمله توسعه دستگاههایی که با دستگاههای دیگر بر اساس همان منبع سازگار نیستند، استفاده کرد.
عملکرد برنامه سازگاری اندروید این است که یک پیاده سازی پایه اندروید را تعریف کند که با برنامه های شخص ثالث نوشته شده توسط توسعه دهندگان سازگار باشد. دستگاههایی که با Android سازگار هستند، واجد شرایط شرکت در اکوسیستم Android، از جمله Google Play هستند. دستگاه هایی که الزامات سازگاری را برآورده نمی کنند خارج از آن اکوسیستم وجود دارند.
به عبارت دیگر، برنامه سازگاری Android نحوه جداسازی دستگاههای سازگار با Android از دستگاههایی است که صرفاً مشتقات کد منبع را اجرا میکنند. ما از همه استفادهها از کد منبع اندروید استقبال میکنیم، اما برای مشارکت در اکوسیستم اندروید، دستگاهی باید بهعنوان سازگار با اندروید توسط برنامه شناسایی شود.
چگونه می توانم به اندروید کمک کنم؟
میتوانید اشکالات را گزارش کنید، برنامههایی برای Android بنویسید یا کد منبع را به AOSP اضافه کنید.
محدودیتهایی برای انواع مشارکتهای کدی که ما میپذیریم وجود دارد. به عنوان مثال، ممکن است شخصی بخواهد یک API برنامه جایگزین، مانند یک محیط کامل مبتنی بر C++، به اشتراک بگذارد. ما این مشارکت را رد میکنیم، زیرا Android برنامهها را تشویق میکند تا در زمان اجرای ART اجرا شوند. به طور مشابه، ما مشارکت هایی مانند کتابخانه های GPL یا LGPL را که با اهداف صدور مجوز ما سازگاری ندارند، نمی پذیریم.
ما علاقهمندان به مشارکت در کد منبع را تشویق میکنیم تا قبل از شروع هر کاری از طریق کانالهای فهرستشده در انجمن Android با ما تماس بگیرند. برای جزئیات، به مشارکت مراجعه کنید.
چگونه می توانم یک committer اندروید شوم؟
AOSP واقعاً مفهومی از committer ندارد. همه مشارکتها (از جمله مواردی که توسط کارمندان Google نوشته شدهاند) از طریق یک سیستم مبتنی بر وب به نام Gerrit انجام میشود که بخشی از فرآیند مهندسی Android است. این سیستم با سیستم مدیریت کد منبع Git برای مدیریت پاک مشارکت های کد منبع کار می کند.
یک تأیید کننده تعیین شده باید همه تغییرات ارسال شده را بپذیرد. تأییدکنندگان معمولاً کارمندان Google هستند، اما تأییدکنندگان یکسان مسئول همه موارد ارسالی، صرف نظر از مبدا، هستند.
برای جزئیات، به ارسال پچ ها مراجعه کنید.