این صفحه به برخی از سوالات متداول (FAQ) پاسخ می دهد.
متن باز
پروژه متن باز اندروید چیست؟
پروژه متن باز اندروید (AOSP) به افراد، فرآیندها و کد منبعی که اندروید را تشکیل می دهند اشاره دارد.
مردم بر پروژه نظارت می کنند و کد منبع را توسعه می دهند. فرآیندها ابزارها و رویه هایی هستند که برای مدیریت توسعه نرم افزار از آنها استفاده می کنیم. نتیجه خالص کد منبع است که می توانید از آن در تلفن های همراه و سایر دستگاه ها استفاده کنید.
چرا کد منبع اندروید را باز کردیم؟
گوگل پروژه اندروید را در پاسخ به تجربیات خودمان در راه اندازی اپلیکیشن های موبایل آغاز کرد. ما میخواستیم مطمئن شویم که همیشه یک پلتفرم باز برای اپراتورها، OEMها و توسعهدهندگان برای تحقق ایدههای نوآورانهشان وجود دارد. ما همچنین می خواستیم از هر نقطه اصلی شکست جلوگیری کنیم، بنابراین هیچ بازیگر صنعتی نمی تواند نوآوری های دیگری را محدود یا کنترل کند. مهمترین هدف ما با AOSP این است که مطمئن شویم نرمافزار متنباز اندروید تا حد امکان به طور گسترده و سازگار پیادهسازی میشود تا به نفع همه باشد.
اندروید چه نوع پروژه منبع باز است؟
گوگل بر توسعه پلتفرم اصلی اندروید منبع باز نظارت دارد و برای ایجاد جوامع توسعهدهنده و کاربر قوی کار میکند. در بیشتر موارد، کد منبع اندروید تحت مجوز مجاز Apache 2.0 به جای مجوز کپیلفت مجوز دارد. ما مجوز Apache 2.0 را انتخاب کردیم زیرا معتقدیم که این مجوز پذیرش گسترده نرم افزار اندروید را تشویق می کند. برای جزئیات، مجوزها را ببینید.
چرا گوگل مسئول اندروید است؟
راه اندازی یک پلتفرم نرم افزاری پیچیده است. باز بودن برای موفقیت بلندمدت یک پلت فرم حیاتی است، زیرا باز بودن، سرمایه گذاری توسعه دهندگان را جذب می کند و زمینه بازی برابر را تضمین می کند. این پلتفرم همچنین باید محصولی جذاب برای کاربران باشد.
گوگل منابع مهندسی حرفه ای لازم را برای اطمینان از اینکه اندروید یک پلت فرم نرم افزاری کاملا رقابتی است متعهد کرده است. گوگل با پروژه اندروید به عنوان یک عملیات توسعه محصول در مقیاس کامل برخورد می کند و معاملات تجاری لازم را انجام می دهد تا مطمئن شود دستگاه های عالی دارای Android به بازار عرضه می شوند.
با اطمینان از موفقیت اندروید در میان کاربران، به اطمینان از سرزندگی اندروید به عنوان یک پلتفرم و به عنوان یک پروژه منبع باز کمک می کنیم. پس از همه، چه کسی کد منبع را برای یک محصول ناموفق می خواهد؟
هدف گوگل تضمین یک اکوسیستم موفق در اطراف اندروید است. ما کد منبع اندروید را باز کردیم تا هر کسی بتواند نرم افزار را تغییر دهد و توزیع کند تا نیازهای خود را برآورده کند.
استراتژی کلی گوگل برای توسعه محصول اندروید چیست؟
ما دستگاه های عالی را در یک بازار رقابتی عرضه می کنیم. سپس نوآوریها و پیشرفتهایی را که ایجاد کردهایم در پلتفرم اصلی به عنوان نسخه بعدی ترکیب میکنیم.
در عمل، این بدان معناست که تیم مهندسی اندروید بر روی تعداد کمی از دستگاههای «پر سرسبد» تمرکز میکند و نسخه بعدی نرمافزار اندروید را برای پشتیبانی از عرضههای آن محصول توسعه میدهد. این دستگاههای پرچمدار بیشتر ریسک محصول را جذب میکنند و مسیری را برای جامعه گسترده OEM ایجاد میکنند که دستگاههای بیشتری را دنبال میکنند که از ویژگیهای جدید بهره میبرند. به این ترتیب، ما مطمئن می شویم که پلتفرم اندروید مطابق با نیازهای دستگاه های دنیای واقعی تکامل می یابد.
نرم افزار اندروید چگونه توسعه می یابد؟
هر نسخه پلتفرم اندروید (مانند 1.5 یا 8.1) دارای یک شاخه مربوطه در درخت متن باز است. آخرین شاخه، نسخه فعلی شاخه پایدار در نظر گرفته می شود. این شاخه ای است که سازندگان به دستگاه های خود منتقل می کنند. این شاخه همیشه برای رهاسازی مناسب نگهداری می شود.
به طور همزمان، یک شاخه آزمایشی فعلی وجود دارد، جایی که مشارکت های گمانه زنی، مانند ویژگی های بزرگ نسل بعدی، توسعه می یابد. رفع اشکال و سایر مشارکتها را میتوان در شاخه پایدار فعلی از شاخه تجربی در صورت لزوم گنجاند.
در نهایت، گوگل روی نسخه بعدی پلتفرم اندروید همزمان با توسعه یک دستگاه پرچمدار کار می کند. این شاخه تغییرات را از شاخه های آزمایشی و پایدار در صورت لزوم اعمال می کند.
برای جزئیات بیشتر در مورد خطوط کد، شاخهها و نسخهها، به مدیریت کد AOSP مراجعه کنید.
چرا بخش هایی از اندروید به صورت خصوصی توسعه می یابند؟
معمولا بیش از یک سال طول می کشد تا یک دستگاه به بازار عرضه شود. و البته، سازندگان دستگاهها میخواهند جدیدترین نرمافزاری را که میتوانند عرضه کنند. در همین حال، توسعه دهندگان نمی خواهند به طور مداوم نسخه های جدید پلتفرم را هنگام نوشتن برنامه ها ردیابی کنند. هر دو گروه تنش بین حمل و نقل محصولات و عدم تمایل به عقب افتادن را تجربه می کنند.
برای رفع این مشکل، برخی از بخشهای نسخه بعدی اندروید از جمله APIهای پلتفرم اصلی در یک شعبه خصوصی توسعه داده شدهاند. این API ها نسخه بعدی اندروید را تشکیل می دهند. هدف ما این است که هنگام ایجاد نسخه بعدی پلتفرم، توجه را روی نسخه پایدار فعلی کد منبع اندروید متمرکز کنیم. این به توسعه دهندگان و OEM ها اجازه می دهد تا از یک نسخه واحد بدون ردیابی کارهای ناتمام آینده استفاده کنند و فقط به دنبال آن باشند. سایر بخشهای سیستم اندروید که به سازگاری برنامهها مربوط نمیشوند، به صورت آزاد توسعه داده میشوند. قصد ما این است که در طول زمان تعداد بیشتری از این قطعات را به سمت توسعه باز سوق دهیم.
انتشار کد منبع چه زمانی ساخته می شود؟
وقتی آماده شدند. انتشار کد منبع یک فرآیند نسبتاً پیچیده است. برخی از بخشهای اندروید به صورت باز توسعه داده میشوند و کد منبع همیشه در دسترس است. بخشهای دیگر ابتدا در یک درخت خصوصی توسعه داده میشوند و کد منبع زمانی که نسخه پلتفرم بعدی آماده شد منتشر میشود.
در برخی از نسخهها، APIهای پلتفرم اصلی به اندازه کافی از قبل آماده هستند تا بتوانیم کد منبع را برای بررسی اولیه قبل از انتشار دستگاه بیرون بیاوریم. در نسخه های دیگر، این امکان پذیر نیست. در همه موارد، زمانی که احساس می کنیم نسخه پایدار است و زمانی که فرآیند توسعه اجازه می دهد، منبع پلتفرم را آزاد می کنیم.
انتشار کد منبع نسخه جدید اندروید چه چیزی را شامل می شود؟
انتشار کد منبع برای نسخه جدید پلتفرم اندروید فرآیند مهمی است. ابتدا، این نرمافزار در یک تصویر سیستم برای یک دستگاه ساخته میشود و از طریق اشکال مختلف گواهینامه، از جمله گواهینامه نظارتی دولتی برای مناطقی که تلفنها مستقر خواهند شد، قرار میگیرد. کد همچنین از طریق تست اپراتور می رود. این مرحله مهمی از فرآیند است، زیرا به شناسایی اشکالات نرم افزاری کمک می کند.
هنگامی که انتشار توسط تنظیم کننده ها و اپراتورها تایید شد، سازنده شروع به تولید انبوه دستگاه ها می کند و ما شروع به انتشار کد منبع می کنیم.
همزمان با تولید انبوه، تیم گوگل چندین تلاش را برای آماده سازی نسخه متن باز آغاز می کند. این تلاشها شامل ایجاد تغییرات نهایی API، بهروزرسانی اسناد (برای انعکاس هرگونه تغییری که در طول آزمایش صلاحیت انجام شد، برای مثال)، آمادهسازی یک SDK برای نسخه جدید، و راهاندازی اطلاعات سازگاری پلت فرم است.
تیم حقوقی ما یک امضای نهایی را برای انتشار کد به منبع باز انجام می دهد. همانطور که مشارکتکنندگان منبع باز ملزم به امضای قرارداد مجوز مشارکتکنندگان هستند که مالکیت معنوی مشارکت آنها را تأیید میکند، Google نیز باید تأیید کند که منبع برای مشارکت پاک شده است.
از زمانی که تولید انبوه شروع میشود، فرآیند انتشار نرمافزار معمولاً حدود یک ماه طول میکشد، بنابراین انتشار کد منبع اغلب تقریباً همزمان با دسترسی دستگاهها به کاربران اتفاق میافتد.
AOSP چگونه با برنامه سازگاری اندروید ارتباط دارد؟
پروژه متن باز اندروید نرم افزار اندروید را نگهداری می کند و نسخه های جدیدی را توسعه می دهد. از آنجایی که این نرم افزار منبع باز است، می توان از این نرم افزار برای هر هدفی استفاده کرد، از جمله توسعه دستگاه هایی که با دستگاه های دیگر بر اساس همان منبع سازگار نیستند.
عملکرد برنامه سازگاری اندروید این است که یک پیاده سازی پایه اندروید را تعریف کند که با برنامه های شخص ثالث نوشته شده توسط توسعه دهندگان سازگار باشد. دستگاههایی که با Android سازگار هستند، واجد شرایط شرکت در اکوسیستم Android، از جمله Google Play هستند. دستگاه هایی که الزامات سازگاری را برآورده نمی کنند خارج از آن اکوسیستم وجود دارند.
به عبارت دیگر، برنامه سازگاری Android نحوه جداسازی دستگاههای سازگار با Android از دستگاههایی است که صرفاً مشتقات کد منبع را اجرا میکنند. ما از همه استفادهها از کد منبع اندروید استقبال میکنیم، اما برای مشارکت در اکوسیستم اندروید، دستگاهی باید بهعنوان سازگار با اندروید توسط برنامه شناسایی شود.
چگونه می توانم به اندروید کمک کنم؟
میتوانید اشکالات را گزارش کنید، برنامههایی برای Android بنویسید، یا کد منبع را به پروژه منبع باز Android کمک کنید.
محدودیتهایی برای انواع مشارکتهای کدی که ما میپذیریم وجود دارد. به عنوان مثال، ممکن است شخصی بخواهد یک API برنامه جایگزین، مانند یک محیط کامل مبتنی بر C++ را ارائه دهد. ما این مشارکت را رد میکنیم، زیرا Android برنامهها را تشویق میکند تا در زمان اجرای ART اجرا شوند. به طور مشابه، ما مشارکت هایی مانند کتابخانه های GPL یا LGPL را که با اهداف صدور مجوز ما سازگاری ندارند، نمی پذیریم.
ما علاقه مندان به مشارکت در کد منبع را تشویق می کنیم تا قبل از شروع هر کاری از طریق کانال های فهرست شده در صفحه انجمن Android با ما تماس بگیرند. برای جزئیات، به مشارکت مراجعه کنید.
چگونه می توانم یک committer اندروید شوم؟
پروژه متن باز اندروید واقعاً مفهومی از committer ندارد. همه مشارکتها (از جمله مواردی که توسط کارمندان Google نوشته شدهاند) از طریق یک سیستم مبتنی بر وب به نام Gerrit انجام میشود که بخشی از فرآیند مهندسی Android است. این سیستم همراه با سیستم مدیریت کد منبع git کار می کند تا مشارکت کد منبع را به طور پاک مدیریت کند.
هنگام ارسال، تغییرات باید توسط یک تایید کننده تعیین شده پذیرفته شوند. تأییدکنندگان معمولاً کارمندان Google هستند، اما تأییدکنندگان یکسان مسئول همه موارد ارسالی، صرف نظر از مبدا، هستند.
برای جزئیات، به ارسال پچ ها مراجعه کنید.
بازگشت به بالاسازگاری
"سازگاری" اندروید چیست؟
ما یک دستگاه سازگار با Android را به عنوان دستگاهی تعریف می کنیم که می تواند هر برنامه ای را که توسط توسعه دهندگان شخص ثالث با استفاده از Android SDK و NDK نوشته شده است اجرا کند. ما از این بهعنوان فیلتری برای جدا کردن دستگاههایی که میتوانند در اکوسیستم برنامه اندروید شرکت کنند و آنهایی که نمیتوانند شرکت کنند، استفاده میکنیم. برای دستگاههایی که به درستی سازگار هستند، سازندگان دستگاه میتوانند برای استفاده از علامت تجاری Android تأییدیه بگیرند. دستگاههایی که سازگار نیستند از کد منبع Android مشتق شدهاند و مجاز به استفاده از علامت تجاری Android نیستند.
به عبارت دیگر، سازگاری پیش نیاز مشارکت در اکوسیستم اپلیکیشن های اندروید است. هر کسی می تواند از کد منبع اندروید استفاده کند. اما اگر دستگاه سازگار نباشد، بخشی از اکوسیستم اندروید در نظر گرفته نمی شود.
نقش گوگل پلی در سازگاری چیست؟
سازندگان دستگاه با دستگاههای سازگار با Android میتوانند به دنبال مجوز نرمافزار مشتری Google Play باشند. دستگاههای دارای مجوز به بخشی از اکوسیستم برنامه اندروید تبدیل میشوند و به کاربران خود امکان میدهند برنامههای توسعهدهندگان را از کاتالوگی به اشتراک گذاشته شده توسط همه دستگاههای سازگار دانلود کنند. مجوز برای دستگاههای ناسازگار در دسترس نیست.
چه نوع دستگاه هایی می توانند با اندروید سازگار باشند؟
نرم افزار اندروید را می توان به بسیاری از دستگاه های مختلف منتقل کرد، از جمله برخی از آنها که برنامه های شخص ثالث به درستی اجرا نمی شوند. سند تعریف سازگاری اندروید (CDD) پیکربندیهای دستگاه خاصی را که سازگار در نظر گرفته میشوند، توضیح میدهد.
برای مثال، اگرچه کد منبع اندروید را میتوان برای اجرا بر روی تلفنی که دوربین ندارد، منتقل کرد، CDD به همه تلفنها نیاز دارد که دوربین داشته باشند. این به توسعه دهندگان این امکان را می دهد که در هنگام نوشتن برنامه های خود به مجموعه ای ثابت از قابلیت ها تکیه کنند.
CDD همچنان به تکامل خود ادامه می دهد تا واقعیت های بازار را منعکس کند. به عنوان مثال، نسخه 1.6 CDD فقط از تلفن های همراه پشتیبانی می کند. اما نسخه 2.1 به دستگاهها اجازه میدهد تا سختافزار تلفن را حذف کنند و دستگاههای غیر تلفنی مانند پخشکنندههای موسیقی به سبک تبلت را قادر میسازد که سازگار باشند. همانطور که ما این تغییرات را انجام می دهیم، Google Play را نیز تقویت خواهیم کرد تا به توسعه دهندگان اجازه دهیم کنترل مکان هایی که برنامه هایشان در دسترس است را حفظ کنند. برای ادامه مثال تلفن، برنامهای که پیامهای متنی SMS را مدیریت میکند در پخشکننده رسانه مفید نیست، بنابراین Google Play به توسعهدهنده اجازه میدهد آن برنامه را منحصراً به دستگاههای تلفن محدود کند.
اگر دستگاه من سازگار است، آیا به طور خودکار به Google Play و نام تجاری دسترسی دارد؟
خیر. دسترسی خودکار نیست. گوگل پلی سرویسی است که توسط گوگل اداره می شود. دستیابی به سازگاری یک پیش نیاز برای دسترسی به نرم افزار Google Play و نام تجاری است. پس از اینکه دستگاهی به عنوان یک دستگاه سازگار با Android واجد شرایط شد ، سازنده دستگاه باید فرم تماس موجود در مجوز خدمات Google Mobile را برای دسترسی به Google Play تکمیل کند. اگر بتوانیم به شما کمک کنیم با شما تماس خواهیم گرفت.
اگر سازنده نیستم، چگونه می توانم Google Play را دریافت کنم؟
Google Play فقط برای دستگاه های حمل و نقل تولید کنندگان گوشی مجوز دارد. برای سؤال در مورد موارد خاص، با android-partnerships@google.com تماس بگیرید.
چگونه می توانم به برنامه های Google برای اندروید مانند Maps دسترسی داشته باشم؟
برنامههای Google برای Android مانند YouTube، Google Maps و Gmail داراییهای Google هستند که بخشی از Android نیستند و مجوز جداگانه دارند. برای سوالات مربوط به این برنامه ها با android-partnerships@google.com تماس بگیرید.
آیا سازگاری اجباری است؟
خیر. برنامه سازگاری Android اختیاری است. کد منبع اندروید باز است، بنابراین هر کسی می تواند از آن برای ساخت هر نوع دستگاهی استفاده کند. با این حال، اگر تولیدکنندگان بخواهند از نام Android برای محصولات خود استفاده کنند یا میخواهند به Google Play دسترسی داشته باشند، ابتدا باید نشان دهند که دستگاههایشان سازگار است.
هزینه صدور گواهینامه سازگاری چقدر است؟
هیچ هزینه ای برای به دست آوردن سازگاری Android برای یک دستگاه وجود ندارد. مجموعه تست سازگاری منبع باز است و برای آزمایش دستگاه در دسترس همه است.
سازگاری چقدر طول می کشد؟
فرآیند به صورت خودکار انجام می شود. مجموعه تست سازگاری گزارشی تولید میکند که میتواند برای تأیید سازگاری به Google ارائه شود. در نهایت قصد داریم ابزارهای سلف سرویس را برای آپلود این گزارش ها در یک پایگاه داده عمومی ارائه کنیم.
چه کسی تعریف سازگاری را تعیین می کند؟
Google مسئول هدایت کلی اندروید به عنوان یک پلتفرم و محصول است، بنابراین Google سند تعریف سازگاری (CDD) را برای هر نسخه نگهداری میکند. ما CDD را برای نسخه جدید Android با مشورت با OEM های مختلف که ورودی ارائه می کنند، پیش نویس می کنیم.
هر نسخه اندروید تا چه زمانی برای دستگاه های جدید پشتیبانی می شود؟
کد اندروید منبع باز است، بنابراین نمیتوانیم مانع از استفاده شخصی از نسخه قدیمی برای راهاندازی دستگاه شویم. در عوض، Google تصمیم می گیرد نرم افزار سرویس گیرنده Google Play را برای استفاده در نسخه هایی که منسوخ تلقی می شوند مجوز ندهد. این به هر کسی اجازه میدهد به ارسال نسخههای قدیمی Android ادامه دهد، اما آن دستگاهها از نام Android استفاده نمیکنند و خارج از اکوسیستم برنامههای Android وجود دارند، درست مثل اینکه با آنها سازگار نیستند.
آیا دستگاهی می تواند رابط کاربری متفاوتی داشته باشد و همچنان سازگار باشد؟
برنامه سازگاری Android تعیین می کند که آیا دستگاه می تواند برنامه های شخص ثالث را اجرا کند یا خیر. اجزای رابط کاربری که با یک دستگاه ارسال می شوند (مانند صفحه اصلی، شماره گیر و طرح رنگ) معمولاً تأثیر زیادی روی برنامه های شخص ثالث ندارند. به این ترتیب، سازندگان دستگاه برای سفارشی کردن رابط کاربری آزادند. سند تعریف سازگاری، درجه ای را که OEM ها مجاز به تغییر رابط کاربری سیستم برای مناطقی هستند که بر برنامه های شخص ثالث تأثیر می گذارند، محدود می کند.
چه زمانی تعاریف سازگاری برای نسخه های جدید اندروید منتشر می شود؟
هدف ما انتشار نسخه جدیدی از سند تعریف سازگاری اندروید (CDD) زمانی است که نسخه پلتفرم مربوطه آندروید به اندازه کافی همگرا شود که اجازه دهد. در حالی که نمیتوانیم پیشنویس نهایی CDD را برای نسخه نرمافزار اندرویدی قبل از عرضه اولین دستگاه پرچمدار با آن نرمافزار منتشر کنیم، CDDهای نهایی همیشه پس از اولین دستگاه منتشر میشوند. با این حال، هر جا عملی باشد، نسخههای پیشنویس CDD را منتشر میکنیم.
ادعاهای سازگاری سازندگان دستگاه چگونه تأیید می شود؟
هیچ فرآیند تأیید اعتبار برای سازگاری دستگاه Android وجود ندارد. با این حال، اگر قرار است دستگاه شامل Google Play باشد، Google معمولاً قبل از موافقت با مجوز نرمافزار مشتری Google Play، دستگاه را از نظر سازگاری تأیید میکند.
اگر بعداً مشخص شود که دستگاهی که ادعای سازگاری دارد مشکل سازگاری دارد، چه اتفاقی میافتد؟
به طور معمول، روابط Google با دارندگان مجوز Google Play به ما این امکان را می دهد که از سازنده دستگاه بخواهیم تصاویر سیستم به روز شده ای را منتشر کند که مشکلات را برطرف می کند.
بازگشت به بالامجموعه تست سازگاری
هدف از CTS چیست؟
مجموعه تست سازگاری ابزاری است که توسط سازندگان دستگاه برای اطمینان از سازگاری دستگاههایشان و گزارش نتایج آزمایش برای تأیید اعتبار استفاده میشود. در نظر گرفته شده است که CTS به طور مکرر توسط OEM ها در طول فرآیند مهندسی اجرا شود تا مشکلات سازگاری را زودتر تشخیص دهد.
آزمایش CTS چه نوع چیزهایی را انجام می دهد؟
CTS در حال حاضر آزمایش میکند که همه APIهای پشتیبانیشده با تایپ قوی Android وجود دارند و به درستی رفتار میکنند. همچنین سایر رفتارهای سیستم غیر API مانند چرخه عمر برنامه و عملکرد را آزمایش می کند. ما قصد داریم در نسخههای CTS آینده برای آزمایش API های نرمافزاری مانند Intent پشتیبانی اضافه کنیم.
آیا گزارش های CTS عمومی می شود؟
آره. در حالی که در حال حاضر پیاده سازی نشده است، گوگل قصد دارد ابزارهای سلف سرویس مبتنی بر وب را برای OEM ها ارائه کند تا گزارش های CTS را منتشر کنند تا همه بتوانند آنها را مشاهده کنند. تولیدکنندگان می توانند گزارش های CTS را با مخاطبان گسترده ای که دوست دارند به اشتراک بگذارند.
مجوز CTS چگونه است؟
CTS تحت مجوز نرم افزار Apache 2.0 که اکثر اندرویدها از آن استفاده می کنند مجوز دارد.
آیا CTS کمک ها را می پذیرد؟
بله لطفا! پروژه متن باز Android کمک هایی را برای بهبود CTS مانند هر مؤلفه دیگری می پذیرد. در واقع، بهبود پوشش و کیفیت موارد تست CTS یکی از بهترین راه ها برای کمک به اندروید است.
آیا کسی می تواند از CTS در دستگاه های موجود استفاده کند؟
سند تعریف سازگاری مستلزم آن است که دستگاه های سازگار ابزار اشکال زدایی adb
را پیاده سازی کنند. این بدان معنی است که هر دستگاه سازگار (از جمله دستگاه های موجود در خرده فروشی) باید بتواند آزمایش های CTS را اجرا کند.
آیا کدک ها توسط CTS تأیید می شوند؟
آره. همه کدک های اجباری توسط CTS تأیید می شوند.
بازگشت به بالا