نمای کلی AOSP، نمای کلی AOSP

اندروید یک سیستم عامل برای مجموعه وسیعی از دستگاه ها با فاکتورهای فرم متفاوت است. اسناد و کد منبع برای Android به عنوان پروژه منبع باز Android (AOSP) در دسترس همه است. می توانید از AOSP برای ایجاد انواع سفارشی سیستم عامل اندروید برای دستگاه های خود استفاده کنید.

AOSP طوری طراحی شده است که هیچ نقطه اصلی شکستی وجود نداشته باشد، جایی که یک بازیگر صنعت نوآوری های دیگری را محدود یا کنترل می کند. بنابراین، AOSP یک محصول توسعه‌دهنده کامل و با کیفیت تولید است که کد منبع آن برای سفارشی‌سازی و انتقال باز است.

این بخش از مستندات به توسعه‌دهندگان جدید AOSP کمک می‌کند تا با پلتفرم شروع کنند و وظایف توسعه ضروری را انجام دهند.

شرایط مورد نیاز

در زیر فهرستی از اصطلاحات و تعاریف مورد استفاده در این مستندات شروع آمده است. شما باید هر تعریف را قبل از ادامه بیشتر مطالعه کنید.

برنامه نویس اندروید

توسعه دهندگان برنامه اندروید، برنامه های اندروید یا برنامه هایی را می نویسند که روی اندروید اجرا می شوند. دو طبقه بندی از توسعه دهندگان برنامه وجود دارد: توسعه دهندگان برنامه شخص اول (1p) و توسعه دهندگان شخص ثالث (3p).

برنامه نویس اندروید 1p
یک برنامه‌نویس Android که به AOSP System API دسترسی دارد و برنامه‌های ممتاز و سازنده دستگاه را می‌نویسد.
برنامه نویس اندروید 3p
یک توسعه‌دهنده برنامه Android که تنها از SDK عمومی Android برای ایجاد برنامه‌های Android استفاده می‌کند.

اگر می‌خواهید برنامه‌های 3p برای Android ایجاد کنید، به developers.android.com مراجعه کنید. اطلاعات این وب سایت فقط برای کسانی است که مستقیماً با AOSP کار می کنند.

پل اشکال زدایی اندروید (ADB)
یک ابزار خط فرمان ( adb ) که به ایستگاه کاری شما اجازه می دهد با یک دستگاه مجازی، شبیه سازی شده با نرم افزار یا فیزیکی ارتباط برقرار کند.
دستگاه سازگار با اندروید
دستگاهی که می تواند هر برنامه شخص ثالث نوشته شده توسط توسعه دهندگان شخص ثالث را با استفاده از Android SDK و NDK اجرا کند. دستگاه‌های سازگار با Android باید از الزامات سند تعریف سازگاری (CDD) پیروی کنند و مجموعه تست سازگاری (CTS) را بگذرانند. دستگاه‌های سازگار با Android واجد شرایط شرکت در اکوسیستم Android هستند که شامل مجوز بالقوه فروشگاه Play Android، مجوز بالقوه مجموعه برنامه‌ها و API های سرویس‌های موبایل Google (GMS) و استفاده از علامت تجاری Android است. هر کسی می‌تواند از کد منبع اندروید استفاده کند، اما برای اینکه بخشی از اکوسیستم اندروید در نظر گرفته شود، دستگاه باید با اندروید سازگار باشد. برای اطلاعات بیشتر در مورد سازگاری و CTS، به نمای کلی برنامه سازگاری Android مراجعه کنید
تصویب کننده
اعضای باتجربه جامعه AOSP که کمک های فنی و طراحی قابل توجهی به پلتفرم کرده اند. در فرآیند بررسی کد، یک تایید کننده تصمیم می گیرد که آیا تغییری را لحاظ کند یا خیر. رهبران پروژه (که معمولاً توسط Google استخدام می‌شوند) تأییدکنندگان را انتخاب می‌کنند و گاهی اوقات تأییدکننده‌ها را هنگامی که تخصص خود را در بخش خاصی از AOSP نشان می‌دهند به سمت تأییدکننده ارتقا می‌دهند.
سند تعریف سازگاری (CDD)
سندی که نرم‌افزار و سخت‌افزار مورد نیاز دستگاه‌های سازگار با Android را برمی‌شمارد.
مشارکت کننده

شخصی که به کد منبع AOSP نیز کمک می کند. مشارکت‌کنندگان می‌توانند کارمندان Google، کارمندان سایر شرکت‌ها و افرادی بدون وابستگی به شرکت باشند. هر مشارکت‌کننده AOSP از ابزارهای یکسانی استفاده می‌کند، فرآیند بررسی کد یکسانی را دنبال می‌کند و تابع همان سبک کدنویسی است. برای استفاده از AOSP لازم نیست مشارکت کننده باشید. شما می توانید AOSP را دانلود کنید، آن را برای نیازهای خود تغییر دهید، و بدون استفاده از کد برای دیگران، آن را در یک دستگاه مستقر کنید.

محدودیت هایی برای نوع مشارکت کدهایی که Google می پذیرد وجود دارد. برای مثال، ممکن است بخواهید یک API برنامه جایگزین، مانند یک محیط کامل مبتنی بر C++، مشارکت دهید. گوگل این کمک را رد می کند زیرا اندروید برنامه ها را تشویق می کند تا در زمان اجرا ART اجرا شوند. به طور مشابه، Google مشارکت‌هایی مانند کتابخانه‌های GPL یا LGPL را که با اهداف صدور مجوز ناسازگار هستند، نمی‌پذیرد.

اگر علاقه مند به مشارکت در کد منبع هستید، قبل از شروع کار با Google تماس بگیرید .

مجموعه تست سازگاری (CTS)

یک مجموعه آزمایشی رایگان و تجاری، که برای دانلود به صورت باینری یا منبع در AOSP در دسترس است. CTS مجموعه‌ای از تست‌های واحد است که برای ادغام در گردش کار روزانه شما طراحی شده است. هدف CTS آشکار کردن ناسازگاری‌ها و اطمینان از سازگاری نرم‌افزار در طول فرآیند توسعه است.

کاسه ماهی

یک دستگاه مجازی مبتنی بر Android قابل تنظیم که می‌تواند از راه دور، با استفاده از خدمات ابری شخص ثالث، مانند Google Cloud Engine، و به صورت محلی در ماشین‌های Linux x86 اجرا شود.

توسعه دهنده

در زمینه AOSP، توسعه دهنده هر کسی است که به هر نحوی با AOSP کار می کند. اصطلاح «توسعه‌دهنده» به طور کلی برای اشاره به افراد مختلفی استفاده می‌شود که ممکن است این مستندات را بخوانند، مانند سازندگان تجهیزات اصلی (OEM)، سازندگان گوشی، حامل‌ها و سازندگان سیستم روی یک تراشه (SoC).

خدمات تلفن همراه گوگل (GMS)

مجموعه‌ای از برنامه‌ها و APIهای Google که می‌توانند از قبل روی دستگاه‌ها نصب شوند.

هدف

جایگشت یک دستگاه، مانند یک مدل خاص یا فاکتور فرم. به عنوان مثال، aosp_cf_x86_64_phone-userdebug یک تلفن x86 65 مگابایتی با اطلاعات اشکال زدایی را نشان می دهد که برای اجرا بر روی شبیه ساز cuttlefish طراحی شده است.

تایید کننده

یک مشارکت‌کننده ارزشمند در انجمن Android که تغییرات AOSP را دانلود و تأیید می‌کند. پس از اینکه مقدار قابل توجهی از کد با کیفیت بالا را به AOSP ارسال کردید، مدیران پروژه ممکن است از شما دعوت کنند تا یک تأیید کننده شوید.

فلسفه حکمرانی

گروهی از شرکت‌های معروف به Open Handset Alliance (OHA) به رهبری گوگل، مبدأ اندروید هستند. امروزه، بسیاری از شرکت‌ها – هم اعضای اصلی OHA و هم سایرین – سرمایه‌گذاری زیادی در اندروید کرده‌اند. این شرکت ها منابع مهندسی قابل توجهی را برای بهبود اندروید و عرضه دستگاه های اندرویدی به بازار اختصاص داده اند.

شرکت هایی که روی اندروید سرمایه گذاری کرده اند این کار را انجام داده اند زیرا معتقدند یک پلت فرم باز ضروری است. اندروید عمداً و آشکارا یک تلاش منبع باز است (برخلاف نرم افزار رایگان). گروهی از سازمان‌ها با نیازهای مشترک منابعی را برای همکاری در اجرای یک محصول مشترک جمع‌آوری کرده‌اند. اول و مهمتر از همه، فلسفه اندروید عملگرایانه است. هدف یک محصول مشترک است که هر مشارکت کننده می تواند آن را تنظیم و سفارشی کند.

البته، سفارشی سازی کنترل نشده می تواند منجر به پیاده سازی های ناسازگار شود. برای جلوگیری از ناسازگاری، پروژه منبع باز Android (AOSP) برنامه سازگاری Android را حفظ می کند، که به معنای سازگاری با Android و آنچه از سازندگان دستگاه برای دستیابی به این وضعیت نیاز است را توضیح می دهد. هر کسی می‌تواند از کد منبع اندروید برای هر هدفی استفاده کند، و Google از همه استفاده‌های قانونی استقبال می‌کند. با این حال، برای شرکت در اکوسیستم مشترک برنامه‌هایی که اعضای OHA پیرامون اندروید می‌سازند، سازندگان دستگاه باید در برنامه سازگاری Android شرکت کنند.

AOSP توسط گوگل هدایت می شود که اندروید را نگهداری و توسعه می دهد. اگرچه Android از چندین پروژه فرعی تشکیل شده است، AOSP کاملاً مدیریت پروژه است. Google Android را به‌عنوان یک محصول نرم‌افزاری جامع و منفرد مشاهده و مدیریت می‌کند، نه توزیع، مشخصات یا مجموعه‌ای از قطعات قابل تعویض. هدف گوگل این است که سازندگان دستگاه اندروید را به یک دستگاه منتقل کنند. آنها مشخصاتی را پیاده سازی نمی کنند یا توزیعی را مدیریت نمی کنند.

بعدش چی؟

  • اگر با AOSP تازه کار هستید و می خواهید آموزش توسعه AOSP را اجرا کنید، با آموزش AOSP ادامه دهید.

  • اگر فکر می کنید که دستگاه شما باید با Android سازگار باشد، به برنامه سازگاری Android مراجعه کنید.

  • اگر می‌خواهید درباره پیشینه AOSP، از جمله مشارکت Google در این پلتفرم، اطلاعات کسب کنید، به سؤالات متداول AOSP مراجعه کنید.

،

اندروید یک سیستم عامل برای مجموعه وسیعی از دستگاه ها با فاکتورهای فرم متفاوت است. اسناد و کد منبع برای Android به عنوان پروژه منبع باز Android (AOSP) در دسترس همه است. می توانید از AOSP برای ایجاد انواع سفارشی سیستم عامل اندروید برای دستگاه های خود استفاده کنید.

AOSP طوری طراحی شده است که هیچ نقطه اصلی شکستی وجود نداشته باشد، جایی که یک بازیگر صنعت نوآوری های دیگری را محدود یا کنترل می کند. بنابراین، AOSP یک محصول توسعه‌دهنده کامل و با کیفیت تولید است که کد منبع آن برای سفارشی‌سازی و انتقال باز است.

این بخش از مستندات به توسعه‌دهندگان جدید AOSP کمک می‌کند تا با پلتفرم شروع کنند و وظایف توسعه ضروری را انجام دهند.

شرایط مورد نیاز

در زیر فهرستی از اصطلاحات و تعاریف مورد استفاده در این مستندات شروع آمده است. شما باید هر تعریف را قبل از ادامه بیشتر مطالعه کنید.

برنامه نویس اندروید

توسعه دهندگان برنامه اندروید، برنامه های اندروید یا برنامه هایی را می نویسند که روی اندروید اجرا می شوند. دو طبقه بندی از توسعه دهندگان برنامه وجود دارد: توسعه دهندگان برنامه شخص اول (1p) و توسعه دهندگان شخص ثالث (3p).

برنامه نویس اندروید 1p
یک برنامه‌نویس Android که به AOSP System API دسترسی دارد و برنامه‌های ممتاز و سازنده دستگاه را می‌نویسد.
برنامه نویس اندروید 3p
یک توسعه‌دهنده برنامه Android که تنها از SDK عمومی Android برای ایجاد برنامه‌های Android استفاده می‌کند.

اگر می‌خواهید برنامه‌های 3p برای Android ایجاد کنید، به developers.android.com مراجعه کنید. اطلاعات این وب سایت فقط برای کسانی است که مستقیماً با AOSP کار می کنند.

پل اشکال زدایی اندروید (ADB)
یک ابزار خط فرمان ( adb ) که به ایستگاه کاری شما اجازه می دهد با یک دستگاه مجازی، شبیه سازی شده با نرم افزار یا فیزیکی ارتباط برقرار کند.
دستگاه سازگار با اندروید
دستگاهی که می تواند هر برنامه شخص ثالث نوشته شده توسط توسعه دهندگان شخص ثالث را با استفاده از Android SDK و NDK اجرا کند. دستگاه‌های سازگار با Android باید از الزامات سند تعریف سازگاری (CDD) پیروی کنند و مجموعه تست سازگاری (CTS) را بگذرانند. دستگاه‌های سازگار با Android واجد شرایط شرکت در اکوسیستم Android هستند که شامل مجوز بالقوه فروشگاه Play Android، مجوز بالقوه مجموعه برنامه‌ها و API های سرویس‌های موبایل Google (GMS) و استفاده از علامت تجاری Android است. هر کسی می‌تواند از کد منبع اندروید استفاده کند، اما برای اینکه بخشی از اکوسیستم اندروید در نظر گرفته شود، دستگاه باید با اندروید سازگار باشد. برای اطلاعات بیشتر در مورد سازگاری و CTS، به نمای کلی برنامه سازگاری Android مراجعه کنید
تصویب کننده
اعضای باتجربه جامعه AOSP که کمک های فنی و طراحی قابل توجهی به پلتفرم کرده اند. در فرآیند بررسی کد، یک تایید کننده تصمیم می گیرد که آیا تغییری را لحاظ کند یا خیر. رهبران پروژه (که معمولاً توسط Google استخدام می‌شوند) تأییدکنندگان را انتخاب می‌کنند و گاهی اوقات تأییدکننده‌ها را هنگامی که تخصص خود را در بخش خاصی از AOSP نشان می‌دهند به سمت تأییدکننده ارتقا می‌دهند.
سند تعریف سازگاری (CDD)
سندی که نرم‌افزار و سخت‌افزار مورد نیاز دستگاه‌های سازگار با Android را برمی‌شمارد.
مشارکت کننده

شخصی که به کد منبع AOSP نیز کمک می کند. مشارکت‌کنندگان می‌توانند کارمندان Google، کارمندان سایر شرکت‌ها و افرادی بدون وابستگی به شرکت باشند. هر مشارکت‌کننده AOSP از ابزارهای یکسانی استفاده می‌کند، فرآیند بررسی کد یکسانی را دنبال می‌کند و تابع همان سبک کدنویسی است. برای استفاده از AOSP لازم نیست مشارکت کننده باشید. شما می توانید AOSP را دانلود کنید، آن را برای نیازهای خود تغییر دهید، و بدون استفاده از کد برای دیگران، آن را در یک دستگاه مستقر کنید.

محدودیت هایی برای نوع مشارکت کدهایی که Google می پذیرد وجود دارد. برای مثال، ممکن است بخواهید یک API برنامه جایگزین، مانند یک محیط کامل مبتنی بر C++، مشارکت دهید. گوگل این کمک را رد می کند زیرا اندروید برنامه ها را تشویق می کند تا در زمان اجرا ART اجرا شوند. به طور مشابه، Google مشارکت‌هایی مانند کتابخانه‌های GPL یا LGPL را که با اهداف صدور مجوز ناسازگار هستند، نمی‌پذیرد.

اگر علاقه مند به مشارکت در کد منبع هستید، قبل از شروع کار با Google تماس بگیرید .

مجموعه تست سازگاری (CTS)

یک مجموعه آزمایشی رایگان و تجاری، که برای دانلود به صورت باینری یا منبع در AOSP در دسترس است. CTS مجموعه‌ای از تست‌های واحد است که برای ادغام در گردش کار روزانه شما طراحی شده است. هدف CTS آشکار کردن ناسازگاری‌ها و اطمینان از سازگاری نرم‌افزار در طول فرآیند توسعه است.

کاسه ماهی

یک دستگاه مجازی مبتنی بر Android قابل تنظیم که می‌تواند از راه دور، با استفاده از خدمات ابری شخص ثالث، مانند Google Cloud Engine، و به صورت محلی در ماشین‌های Linux x86 اجرا شود.

توسعه دهنده

در زمینه AOSP، توسعه دهنده هر کسی است که به هر نحوی با AOSP کار می کند. اصطلاح «توسعه‌دهنده» به طور کلی برای اشاره به افراد مختلفی استفاده می‌شود که ممکن است این مستندات را بخوانند، مانند سازندگان تجهیزات اصلی (OEM)، سازندگان گوشی، حامل‌ها و سازندگان سیستم روی یک تراشه (SoC).

خدمات تلفن همراه گوگل (GMS)

مجموعه‌ای از برنامه‌ها و APIهای Google که می‌توانند از قبل روی دستگاه‌ها نصب شوند.

هدف

جایگشت یک دستگاه، مانند یک مدل خاص یا فاکتور فرم. به عنوان مثال، aosp_cf_x86_64_phone-userdebug یک تلفن x86 65 مگابایتی با اطلاعات اشکال زدایی را نشان می دهد که برای اجرا بر روی شبیه ساز cuttlefish طراحی شده است.

تایید کننده

یک مشارکت‌کننده ارزشمند در انجمن Android که تغییرات AOSP را دانلود و تأیید می‌کند. پس از اینکه مقدار قابل توجهی از کد با کیفیت بالا را به AOSP ارسال کردید، مدیران پروژه ممکن است از شما دعوت کنند تا یک تأیید کننده شوید.

فلسفه حکمرانی

گروهی از شرکت‌های معروف به Open Handset Alliance (OHA) به رهبری گوگل، مبدأ اندروید هستند. امروزه، بسیاری از شرکت‌ها – هم اعضای اصلی OHA و هم سایرین – سرمایه‌گذاری زیادی در اندروید کرده‌اند. این شرکت ها منابع مهندسی قابل توجهی را برای بهبود اندروید و عرضه دستگاه های اندرویدی به بازار اختصاص داده اند.

شرکت هایی که روی اندروید سرمایه گذاری کرده اند این کار را انجام داده اند زیرا معتقدند یک پلت فرم باز ضروری است. اندروید عمداً و آشکارا یک تلاش منبع باز است (برخلاف نرم افزار رایگان). گروهی از سازمان‌ها با نیازهای مشترک منابعی را برای همکاری در اجرای یک محصول مشترک جمع‌آوری کرده‌اند. اول و مهمتر از همه، فلسفه اندروید عملگرایانه است. هدف یک محصول مشترک است که هر مشارکت کننده می تواند آن را تنظیم و سفارشی کند.

البته، سفارشی سازی کنترل نشده می تواند منجر به پیاده سازی های ناسازگار شود. برای جلوگیری از ناسازگاری، پروژه منبع باز Android (AOSP) برنامه سازگاری Android را حفظ می کند، که به معنای سازگاری با Android و آنچه از سازندگان دستگاه برای دستیابی به این وضعیت نیاز است را توضیح می دهد. هر کسی می‌تواند از کد منبع اندروید برای هر هدفی استفاده کند، و Google از همه استفاده‌های قانونی استقبال می‌کند. با این حال، برای شرکت در اکوسیستم مشترک برنامه‌هایی که اعضای OHA پیرامون اندروید می‌سازند، سازندگان دستگاه باید در برنامه سازگاری Android شرکت کنند.

AOSP توسط گوگل هدایت می شود که اندروید را نگهداری و توسعه می دهد. اگرچه Android از چندین پروژه فرعی تشکیل شده است، AOSP کاملاً مدیریت پروژه است. Google Android را به‌عنوان یک محصول نرم‌افزاری جامع و منفرد مشاهده و مدیریت می‌کند، نه توزیع، مشخصات یا مجموعه‌ای از قطعات قابل تعویض. هدف گوگل این است که سازندگان دستگاه اندروید را به یک دستگاه منتقل کنند. آنها مشخصاتی را پیاده سازی نمی کنند یا توزیعی را مدیریت نمی کنند.

بعدش چی؟

  • اگر با AOSP تازه کار هستید و می خواهید آموزش توسعه AOSP را اجرا کنید، با آموزش AOSP ادامه دهید.

  • اگر فکر می کنید که دستگاه شما باید با Android سازگار باشد، به برنامه سازگاری Android مراجعه کنید.

  • اگر می‌خواهید درباره پیشینه AOSP، از جمله مشارکت Google در این پلتفرم، اطلاعات کسب کنید، به سؤالات متداول AOSP مراجعه کنید.