اندروید یک سیستم عامل برای طیف وسیعی از دستگاهها با فرم فکتورهای مختلف است. مستندات و کد منبع اندروید به عنوان پروژه متنباز اندروید (AOSP) در دسترس همه قرار دارد. میتوانید از AOSP برای ایجاد انواع سفارشی سیستم عامل اندروید برای دستگاههای خود استفاده کنید.
AOSP به گونهای طراحی شده است که هیچ نقطه شکست مرکزی وجود نداشته باشد، جایی که یک بازیگر صنعت، نوآوریهای بازیگر دیگر را محدود یا کنترل کند. بنابراین، AOSP یک محصول توسعهدهنده کامل و با کیفیت تولید بالا است که کد منبع آن برای سفارشیسازی و انتقال باز است.
این بخش از مستندات به توسعهدهندگان جدید AOSP کمک میکند تا کار با این پلتفرم را شروع کنند و وظایف ضروری توسعه را انجام دهند.
شرایط لازم
در ادامه فهرستی از اصطلاحات و تعاریف استفاده شده در سراسر مستندات شروع به کار آمده است. قبل از ادامه، باید هر تعریف را مطالعه کنید.
- توسعهدهنده اپلیکیشن اندروید
توسعهدهندگان اپلیکیشن اندروید ، اپلیکیشنهای اندروید یا اپلیکیشنهایی که روی اندروید اجرا میشوند را مینویسند. دو نوع توسعهدهنده اپلیکیشن وجود دارد: توسعهدهندگان اپلیکیشن شخص ثالث (1p) و توسعهدهندگان اپلیکیشن شخص ثالث (3p).
- توسعهدهنده اپلیکیشنهای شخص ثالث اندروید
- یک توسعهدهنده اپلیکیشن اندروید که به APIهای سیستم AOSP دسترسی دارد و اپلیکیشنهای ممتاز و مخصوص سازنده دستگاه مینویسد.
- توسعهدهنده اپلیکیشنهای شخص ثالث اندروید
- یک توسعهدهنده اپلیکیشن اندروید که صرفاً از SDK عمومی اندروید برای ساخت اپلیکیشنهای اندروید استفاده میکند.
اگر میخواهید برنامههای شخص ثالث برای اندروید توسعه دهید، به developer.android.com مراجعه کنید. اطلاعات موجود در این وبسایت صرفاً برای کسانی است که مستقیماً با AOSP کار میکنند.
- پل اشکالزدایی اندروید (adb)
- یک ابزار خط فرمان (
adb) که به ایستگاه کاری شما اجازه میدهد با یک دستگاه مجازی، شبیهسازی شده توسط نرمافزار یا فیزیکی ارتباط برقرار کند. - دستگاه سازگار با اندروید
- دستگاهی که میتواند هر برنامه شخص ثالث نوشته شده توسط توسعهدهندگان شخص ثالث را با استفاده از SDK و NDK اندروید اجرا کند. دستگاههای سازگار با اندروید باید الزامات سند تعریف سازگاری (CDD) را رعایت کنند و مجموعه تست سازگاری (CTS) را با موفقیت پشت سر بگذارند. دستگاههای سازگار با اندروید واجد شرایط شرکت در اکوسیستم اندروید هستند که شامل مجوز بالقوه فروشگاه Play اندروید، مجوز بالقوه مجموعه برنامهها و APIهای Google Mobile Services (GMS) و استفاده از علامت تجاری اندروید میشود. هر کسی میتواند از کد منبع اندروید استفاده کند، اما برای اینکه بخشی از اکوسیستم اندروید محسوب شود، یک دستگاه باید با اندروید سازگار باشد. برای اطلاعات بیشتر در مورد سازگاری و CTS، به نمای کلی برنامه سازگاری اندروید مراجعه کنید.
- سند تعریف سازگاری (CDD)
- سندی که نیازمندیهای نرمافزاری و سختافزاری یک دستگاه سازگار با اندروید را فهرست میکند.
- مشارکتکننده
شخصی که در کد منبع AOSP مشارکت میکند. مشارکتکنندگان میتوانند کارمندان گوگل، کارمندان سایر شرکتها و افرادی بدون وابستگی به شرکت باشند. هر مشارکتکننده AOSP از ابزارهای یکسانی استفاده میکند، از فرآیند بررسی کد یکسانی پیروی میکند و تابع سبک کدنویسی یکسانی است. برای استفاده از AOSP لازم نیست مشارکتکننده باشید؛ میتوانید AOSP را دانلود کنید، آن را برای نیازهای خود تغییر دهید و بدون مشارکت در کد برای استفاده دیگران، آن را روی دستگاهی مستقر کنید.
محدودیتهایی در نوع مشارکتهای کدی که گوگل میپذیرد وجود دارد. برای مثال، ممکن است بخواهید یک API برنامه جایگزین، مانند یک محیط کاملاً مبتنی بر C++، را ارائه دهید. گوگل این مشارکت را رد میکند زیرا اندروید برنامهها را تشویق میکند که در زمان اجرای ART اجرا شوند. به طور مشابه، گوگل مشارکتهایی مانند کتابخانههای GPL یا LGPL را که با اهداف صدور مجوز ناسازگار هستند، نمیپذیرد.
اگر به ارائه کد منبع علاقهمند هستید، قبل از شروع کار با گوگل تماس بگیرید .
- مجموعه تست سازگاری (CTS)
یک مجموعه تست رایگان و تجاری، که به صورت باینری یا سورس در AOSP برای دانلود موجود است. CTS مجموعهای از تستهای واحد است که برای ادغام در گردش کار روزانه شما طراحی شده است. هدف CTS آشکار کردن ناسازگاریها و اطمینان از سازگاری نرمافزار در طول فرآیند توسعه است.
- ده پا
یک دستگاه مجازی مبتنی بر اندروید که قابلیت پیکربندی دارد و میتواند از راه دور، با استفاده از سرویسهای ابری شخص ثالث مانند Google Cloud Engine و به صورت محلی روی دستگاههای لینوکس x86 اجرا شود.
- توسعهدهنده
در زمینه AOSP، توسعهدهنده به هر کسی گفته میشود که به هر نحوی با AOSP کار میکند. اصطلاح «توسعهدهنده» به طور کلی برای اشاره به افراد مختلفی که ممکن است این مستندات را بخوانند، مانند تولیدکنندگان تجهیزات اصلی (OEMها)، سازندگان گوشی، اپراتورهای تلفن همراه و سازندگان سیستم روی تراشه (SoC) استفاده میشود.
- سرویسهای موبایل گوگل (GMS)
مجموعهای از برنامهها و APIهای گوگل که میتوانند از قبل روی دستگاهها نصب شوند.
- هدف
یک جایگشت از یک دستگاه، مانند یک مدل یا فرم فاکتور خاص. برای مثال،
aosp_cf_x86_64_only_phone-userdebugنشان دهنده یک گوشی x86 65MB با اطلاعات اشکال زدایی است که برای اجرا روی شبیه ساز cuttlefish طراحی شده است.
فلسفه حکومتداری
گروهی از شرکتها که با نام اتحاد گوشیهای باز (OHA) شناخته میشوند، به رهبری گوگل، اندروید را پایهگذاری کردند. امروزه، بسیاری از شرکتها - چه اعضای اصلی OHA و چه سایرین - سرمایهگذاریهای هنگفتی در اندروید انجام دادهاند. این شرکتها منابع مهندسی قابل توجهی را برای بهبود اندروید و عرضه دستگاههای اندرویدی به بازار اختصاص دادهاند.
شرکتهایی که در اندروید سرمایهگذاری کردهاند، این کار را انجام دادهاند زیرا معتقدند که یک پلتفرم باز ضروری است. اندروید عمداً و صریحاً یک تلاش متنباز است (برخلاف نرمافزار آزاد)؛ گروهی از سازمانها با نیازهای مشترک، منابع خود را برای همکاری در پیادهسازی واحد یک محصول مشترک، جمعآوری کردهاند. اول و مهمتر از همه، فلسفه اندروید عملگرایانه است. هدف، یک محصول مشترک است که هر مشارکتکننده بتواند آن را متناسب با نیاز خود تنظیم و سفارشیسازی کند.
البته، سفارشیسازی کنترلنشده میتواند منجر به پیادهسازیهای ناسازگار شود. برای جلوگیری از ناسازگاری، پروژه متنباز اندروید (AOSP) برنامه سازگاری اندروید را حفظ میکند که در آن معنای سازگاری با اندروید و الزامات سازندگان دستگاه برای دستیابی به این وضعیت توضیح داده شده است. هر کسی میتواند از کد منبع اندروید برای هر منظوری استفاده کند و گوگل از همه استفادههای مشروع استقبال میکند. با این حال، برای شرکت در اکوسیستم مشترک برنامههایی که اعضای OHA در حال ساخت پیرامون اندروید هستند، سازندگان دستگاه باید در برنامه سازگاری اندروید شرکت کنند.
AOSP توسط گوگل رهبری میشود که اندروید را نگهداری و توسعه میدهد. اگرچه اندروید از چندین زیرپروژه تشکیل شده است، AOSP صرفاً مدیریت پروژه است. گوگل اندروید را به عنوان یک محصول نرمافزاری واحد و جامع میبیند و مدیریت میکند، نه یک توزیع، مشخصات یا مجموعهای از قطعات قابل تعویض. هدف گوگل این است که سازندگان دستگاه، اندروید را به یک دستگاه منتقل کنند؛ آنها مشخصات را پیادهسازی نمیکنند یا توزیعی را انتخاب نمیکنند.
بعدش چی؟
اگر در AOSP تازهکار هستید و میخواهید یک آموزش در مورد توسعه AOSP را طی کنید، با آموزش AOSP ادامه دهید.
اگر معتقدید که دستگاه شما باید با اندروید سازگار باشد، به برنامه سازگاری اندروید مراجعه کنید.
اگر میخواهید درباره پیشینه AOSP، از جمله مشارکت گوگل در این پلتفرم، اطلاعات کسب کنید، به سوالات متداول AOSP مراجعه کنید.