الإعداد لتطوير AOSP (من 2.3 إلى 8.0)

تتناول هذه الصفحة كيفية الإعداد للتطوير باستخدام Android 8.0 أو الإصدارات الأقدم. للتعرّف على كيفية إنشاء الإصدار 9.0 من نظام التشغيل Android والإصدارات الأحدث، اطّلِع على مقالة الإعداد لتطوير AOSP.

الإعداد لتطوير AOSP (من الإصدار 5.0 إلى الإصدار 8.0)

بالنسبة إلى الإصدارات من Android 5.0 إلى 8.0، ننصحك باستخدامملف Dockerfile المضمّن لسهولة تثبيت جميع الحِزم المطلوبة.

أنظمة التشغيل

عادةً ما يكون نظام التشغيل Android مزوّدًا بـ GNU Linux. من الممكن أيضًا إنشاء نظام Android في جهاز افتراضي على أنظمة غير متوافقة، مثل Mac OS X.

تنصح Google بإنشاء التطبيق على GNU Linux. عادةً ما يشغِّل نظام إنشاء Android ملف ‎VMART على جهاز الإنشاء لتجميع ملفات DEX الخاصة بالنظام مسبقًا. لا يمكن تشغيل مكتبة ART إلا على نظام التشغيل Linux، لذلك يتخطّى نظام الإصدار خطوة التجميع المسبق هذه على أنظمة تشغيل غير Linux، ما يؤدي إلى إصدار Android ذي أداء منخفض.

GNU Linux

  • Android 6.0 - Android 8.0: Ubuntu 14.04 (موثوق به)
  • ‫Android 5.x: Ubuntu 12.0

‫Mac OS X (Intel/x86)

  • ‫Android 6.0 - AOSP 8.0: الإصدار 10.10 من نظام التشغيل Mac OS X (Yosemite) أو الإصدارات الأحدث مع Xcode 4.5.2 وأدوات سطر الأوامر
  • Android 5.x: الإصدار Mac OS X v10.8 (Mountain Lion) مع Xcode 4.5.2 وأدوات سطر الأوامر

JDK

الإعداد لتطوير AOSP (من الإصدار 2.3 إلى 4.4)

يوفّر هذا القسم بعض الإرشادات حول كيفية إعداد الإصدارات من Android 2.3 إلى Android 4.4.

أنظمة التشغيل

يتم عادةً إنشاء نظام التشغيل Android باستخدام GNU Linux. يمكن أيضًا إنشاء Android في جهاز افتراضي يعمل على أنظمة غير متوافقة مثل Windows.

توصي Google بالإنشاء على GNU Linux. عادةً ما يشغِّل نظام إنشاء Android ملف ‎VMART على جهاز الإنشاء لتجميع ملفات DEX الخاصة بالنظام مسبقًا. لا يمكن تشغيل مكتبة ART إلا على نظام التشغيل Linux، لذلك يتخطّى نظام الإصدار خطوة التجميع المسبق هذه على أنظمة تشغيل غير Linux، ما يؤدي إلى إصدار Android ذي أداء منخفض.

GNU Linux

  • Android 2.3.x - Android 4.4: Ubuntu 12.04 (دقيق)

Mac OS X (Intel/x86)

  • ‫Android 4.1.x - Android 4.4.x: الإصدار 10.6 من نظام التشغيل Mac OS X (Snow Leopard) أو الإصدار 10.7 من نظام التشغيل Mac OS X (Lion) وXcode 4.2 (أدوات مطوّري البرامج من Apple)
  • ‫Android 2.3 - Android 4.0.x: الإصدار Mac OS X ‏10.5 (Leopard) أو الإصدار Mac OS X‏ 10.6 (Snow Leopard) وحزمة تطوير البرامج (SDK) للإصدار Mac OS X‏ 10.5

GNU make

بالنسبة إلى الإصدارات من Android 4.1.x إلى 4.4، استخدِم GNU make (gmake) 3.82. بالنسبة إلى الإصدارات من Android 2.3 إلى 4.0.x، عليك الرجوع إلى الإصدار 3.82 من gmake لتجنُّب أخطاء الإنشاء.

حِزم Xcode وغيرها

بالنسبة إلى الإصدار 10.8 من نظام التشغيل Mac OS X أو الإصدارات الأقدم، يمكنك تثبيت Xcode من موقع مطوّري تطبيقات Apple الإلكتروني. إذا لم تكن مسجلاً من قبل كمطوّر Apple، عليك إنشاء معرّف Apple لتنزيله.

في حال استخدام الإصدار 10.4 من نظام التشغيل 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

التراجع عن استخدام الإصدار 3.82 من gmake

في الإصدار 4.0.x من Android والإصدارات الأقدم، يتضمّن الإصدار 3.82 من gmake خطأً يمنع إنشاء Android. يمكنك تثبيت الإصدار 3.81 باستخدام 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

  • Android 2.3.x - Android 4.4.x:

JDK لنظام التشغيل Linux

ينطوي المشروع المفتوح المصدر لنظام Android (AOSP) على إصدارات مُعدّة مسبقًا من OpenJDK ضمن prebuilts/jdk/، لذا لا يلزم إجراء عملية تثبيت إضافية.

تتطلب الإصدارات السابقة من Android تثبيت JDK بشكل منفصل. على Ubuntu، استخدِم OpenJDK.

لنظام التشغيل Ubuntu 15.04 والإصدارات الأحدث

شغِّل ما يلي:

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

لنظام التشغيل Ubuntu LTS 14.04

لا تتوفّر حِزم OpenJDK 8 متوافقة لنظام التشغيل Ubuntu 14.04. تم استخدام حِزم Ubuntu 15.04 OpenJDK 8 بنجاح مع Ubuntu 14.04. لا تعمل الإصدارات الأحدث من الحِزم (مثل الإصدارات المخصّصة لنظام التشغيل 15.10 16.04) على الإصدار 14.04 باستخدام التعليمات التالية.

  1. نزِّل حِزم .deb للبنية 64 بت من 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
    

(اختياري) تحديث إصدار Java التلقائي

بشكل اختياري، بالنسبة لإصدارات Ubuntu المذكورة سابقًا، قم بتحديث إصدار Java الافتراضي بتشغيل:

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

تثبيت الحزم المطلوبة لنظام التشغيل Ubuntu 14.04

شغِّل الأوامر التالية لتثبيت الحِزم المطلوبة لنظام التشغيل Ubuntu 14.04:

$ 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$

تثبيت الحِزم المطلوبة لنظام التشغيل Ubuntu 12.04

شغّل الأوامر التالية لتثبيت الحزم المطلوبة لنظام التشغيل Ubuntu 12.04:

$ 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