الإعداد لتطوير البرامج باستخدام حِزم AOSP (من الإصدار 2.3 إلى 8.0)

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

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

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

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

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

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

GNU Linux

  • ‫Android 6.0 - Android 8.0: Ubuntu 14.04 (Trusty)
  • ‫Android 5.x: Ubuntu 12.0

‫Mac OS X (معالج Intel/x86)

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

JDK

إعداد بيئة تطوير AOSP (الإصدارات 2.3 إلى 4.4)

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

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

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

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

GNU Linux

  • ‫Android 2.3.x - Android 4.4: Ubuntu 12.04 (Precise)

‫Mac OS X (معالج Intel/x86)

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

GNU make

بالنسبة إلى الإصدارات من 4.1.x إلى 4.4 من نظام التشغيل Android، استخدِم 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

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 التلقائي

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

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