راه اندازی برای توسعه AOSP (2.3 - 8.0)

این صفحه نحوه‌ی راه‌اندازی برای توسعه با اندروید ۸.۰ یا نسخه‌های پایین‌تر را مورد بحث قرار می‌دهد. برای یادگیری نحوه‌ی ساخت اندروید ۹.۰ و بالاتر، به بخش راه‌اندازی برای توسعه‌ی AOSP مراجعه کنید.

برای توسعه AOSP (5.0 - 8.0) تنظیم شده است

برای اندروید ۵.۰ تا ۸.۰، برای سهولت نصب تمام بسته‌های مورد نیاز، استفاده از Dockerfile موجود را در نظر بگیرید.

سیستم‌های عامل

اندروید معمولاً با گنو لینوکس ساخته می‌شود. همچنین می‌توان اندروید را در یک ماشین مجازی روی سیستم‌های پشتیبانی نشده مانند Mac OS X ساخت.

گوگل توصیه می‌کند که روی گنو لینوکس ساخته شود. سیستم ساخت اندروید معمولاً ART را روی دستگاه ساخت اجرا می‌کند تا فایل‌های DEX سیستم را پیش‌کامپایل کند. ART فقط روی لینوکس قابل اجرا است، بنابراین سیستم ساخت، این مرحله پیش‌کامپایل را روی سیستم عامل‌های غیر لینوکسی نادیده می‌گیرد و در نتیجه، ساخت اندروید با عملکرد کاهش‌یافته حاصل می‌شود.

گنو لینوکس

  • اندروید ۶.۰ - اندروید ۸.۰: اوبونتو ۱۴.۰۴ (قابل اعتماد)
  • اندروید ۵.x: اوبونتو ۱۲.۰

مک او اس ایکس (اینتل/x86)

  • اندروید ۶.۰ - AOSP 8.0: مک او اس ایکس نسخه ۱۰.۱۰ (یوسمیتی) یا بالاتر به همراه Xcode 4.5.2 و ابزارهای خط فرمان
  • اندروید ۵.x: سیستم عامل مک ایکس نسخه ۱۰.۸ (شیر کوهی) به همراه Xcode 4.5.2 و ابزارهای خط فرمان

جی‌دی‌کی

آماده‌سازی برای توسعه AOSP (نسخه‌های ۲.۳ تا ۴.۴)

این بخش راهنمایی‌هایی در مورد نحوه راه‌اندازی اندروید ۲.۳ تا اندروید ۴.۴ ارائه می‌دهد.

سیستم‌های عامل

اندروید معمولاً با گنو لینوکس ساخته می‌شود. همچنین می‌توان اندروید را در یک ماشین مجازی روی سیستم‌های پشتیبانی نشده مانند ویندوز ساخت.

گوگل توصیه می‌کند که روی گنو لینوکس ساخته شود. سیستم ساخت اندروید معمولاً ART را روی دستگاه ساخت اجرا می‌کند تا فایل‌های DEX سیستم را پیش‌کامپایل کند. ART فقط روی لینوکس قابل اجرا است، بنابراین سیستم ساخت، این مرحله پیش‌کامپایل را روی سیستم عامل‌های غیر لینوکسی نادیده می‌گیرد و در نتیجه، ساخت اندروید با عملکرد کاهش‌یافته حاصل می‌شود.

گنو لینوکس

  • اندروید ۲.۳.x - اندروید ۴.۴: اوبونتو ۱۲.۰۴ (دقیق)

مک او اس ایکس (اینتل/x86)

  • اندروید ۴.۱.x - اندروید ۴.۴.x: سیستم عامل مک ایکس نسخه ۱۰.۶ (اسنو لئوپارد) یا مک ایکس ایکس نسخه ۱۰.۷ (لاین) و Xcode 4.2 (ابزارهای توسعه‌دهندگان اپل)
  • اندروید ۲.۳ - اندروید ۴.۰.x: مک او اس ایکس نسخه ۱۰.۵ (پلنگ) یا مک او اس ایکس نسخه ۱۰.۶ (پلنگ برفی) و کیت توسعه نرم‌افزار مک او اس ایکس نسخه ۱۰.۵

گنو را بسازید

برای اندروید ۴.۱.x تا ۴.۴ از GNU make (gmake) 3.82 استفاده کنید. برای اندروید ۲.۳ تا ۴.۰.x، برای جلوگیری از خطاهای ساخت، از gmake 3.82 برگردید .

Xcode و سایر بسته‌ها

برای Mac OS X نسخه ۱۰.۸ یا پایین‌تر، Xcode را از سایت توسعه‌دهندگان اپل نصب کنید. اگر قبلاً به عنوان توسعه‌دهنده اپل ثبت‌نام نکرده‌اید، برای دانلود باید یک Apple ID ایجاد کنید.

اگر از Mac OS X نسخه ۱۰.۴ استفاده می‌کنید، Bison را نیز نصب کنید:

POSIXLY_CORRECT=1 sudo port install bison

برای MacPorts، مشکل:

POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg

برای Homebrew، این مشکل را مطرح کنید:

brew install gmake libsdl git gnupg2

بازگشت از gmake 3.82

در اندروید ۴.۰.x و پایین‌تر، gmake 3.82 دارای یک باگ است که مانع از ساخت اندروید می‌شود. می‌توانید نسخه ۳.۸۱ را با استفاده از MacPorts و با طی کردن مراحل زیر نصب کنید:

  1. فایل /opt/local/etc/macports/sources.conf ‎ را ویرایش کنید و file:///Users/Shared/dports بالای خط rsync اضافه کنید.

  2. دایرکتوری dports را ایجاد کنید:

    mkdir /Users/Shared/dports
    
  3. در دایرکتوری جدید dports ، دستور زیر را اجرا کنید:

    svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/
    
  4. یک فهرست پورت برای مخزن محلی جدید خود ایجاد کنید:

    portindex /Users/Shared/dports
    
  5. نسخه پایین‌تر gmake را نصب کنید:

    sudo port install gmake @3.81
    

جی‌دی‌کی

JDK برای لینوکس

پروژه متن‌باز اندروید (AOSP) با نسخه‌های از پیش ساخته شده OpenJDK در prebuilts/jdk/ ارائه می‌شود، بنابراین نیازی به نصب اضافی نیست.

نسخه‌های قبلی اندروید نیاز به نصب جداگانه JDK دارند. در اوبونتو، از OpenJDK استفاده کنید.

برای اوبونتو ۱۵.۰۴ و بالاتر

دستور زیر را اجرا کنید:

sudo apt-get update
sudo apt-get install openjdk-8-jdk

برای اوبونتو LTS 14.04

هیچ بسته OpenJDK 8 پشتیبانی‌شده‌ای برای اوبونتو ۱۴.۰۴ وجود ندارد. بسته‌های OpenJDK 8 اوبونتو ۱۵.۰۴ با موفقیت در اوبونتو ۱۴.۰۴ استفاده شده‌اند. نسخه‌های بالاتر بسته (به عنوان مثال، نسخه‌های ۱۵.۱۰، ۱۶.۰۴) با استفاده از دستورالعمل‌های زیر روی ۱۴.۰۴ کار نمی‌کنند.

  1. بسته‌های .deb را برای معماری ۶۴ بیتی از old-releases.ubuntu.com دانلود کنید.

    • openjdk-8-jre-headless_8u45-b14-1_amd64.deb با SHA256 0f5aba8db39088283b51e00054813063173a4d8809f70033976f83e214ab56c0
    • openjdk-8-jre_8u45-b14-1_amd64.deb با SHA256 9ef76c4562d39432b69baf6c18f199707c5c56a5b4566847df908b7d74e15849
    • openjdk-8-jdk_8u45-b14-1_amd64.deb با SHA256 6e47215cf6205aa829e6a0a64985075bd29d1f428a4006a80c9db371c2fc3c4c
  2. در صورت تمایل، می‌توانید چک‌سام‌های فایل‌های دانلود شده را با رشته SHA256 ذکر شده در هر بسته از مرحله 1 تأیید کنید. برای مثال، با ابزار sha256sum :

    sha256sum {downloaded.deb file}
    
  3. بسته‌ها را نصب کنید:

    sudo apt-get update
    
  4. dpkg برای هر یک از فایل‌های .deb که دانلود کرده‌اید اجرا کنید. ممکن است به دلیل عدم وجود وابستگی‌ها، خطاهایی ایجاد شود:

    sudo dpkg -i {downloaded.deb file}
    
  5. برای رفع وابستگی‌های از دست رفته:

    sudo apt-get -f install
    

(اختیاری) نسخه پیش‌فرض جاوا را به‌روزرسانی کنید

به صورت اختیاری، برای نسخه‌های اوبونتو که قبلاً ذکر شد، نسخه پیش‌فرض جاوا را با اجرای دستور زیر به‌روزرسانی کنید:

sudo update-alternatives --config java
sudo update-alternatives --config javac

نصب بسته‌های مورد نیاز برای اوبونتو ۱۴.۰۴

برای نصب بسته‌های مورد نیاز برای اوبونتو ۱۴.۰۴، دستورات زیر را اجرا کنید:

$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip$

نصب بسته‌های مورد نیاز برای اوبونتو ۱۲.۰۴

برای نصب بسته‌های مورد نیاز برای اوبونتو ۱۲.۰۴، دستورات زیر را اجرا کنید:

$ sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so