AOSP বিকাশের জন্য সেট আপ করুন (9.0 বা তার পরে)

অ্যান্ড্রয়েড সোর্সের সর্বশেষ রিলিজ শাখা (android16-qpr1-release) ডাউনলোড এবং তৈরি করার আগে, নিশ্চিত করুন যে আপনার হার্ডওয়্যার প্রয়োজনীয় প্রয়োজনীয়তা পূরণ করে এবং প্রয়োজনীয় সফ্টওয়্যারটি সঠিকভাবে ইনস্টল করা আছে। আপনার নিম্নলিখিত শর্তাবলীর সাথেও পরিচিত হওয়া উচিত:

গিট
গিট একটি ফ্রি এবং ওপেন সোর্স ডিস্ট্রিবিউটেড ভার্সন কন্ট্রোল সিস্টেম। অ্যান্ড্রয়েড স্থানীয় ক্রিয়াকলাপ যেমন ব্রাঞ্চিং, কমিট, ডিফ এবং এডিট করার জন্য গিট ব্যবহার করে। গিট শেখার জন্য, গিট ডকুমেন্টেশন দেখুন।
রেপো
রেপো হলো গিটের চারপাশে একটি পাইথন র‍্যাপার যা একাধিক গিট রিপোজিটরিতে জটিল ক্রিয়াকলাপ সম্পাদনকে সহজ করে তোলে। রেপো সমস্ত সংস্করণ নিয়ন্ত্রণ ক্রিয়াকলাপের জন্য গিটকে প্রতিস্থাপন করে না, এটি কেবল জটিল গিট ক্রিয়াকলাপগুলি সম্পন্ন করা সহজ করে তোলে। রেপো গিট প্রকল্পগুলিকে অ্যান্ড্রয়েড সুপারপ্রজেক্টে একত্রিত করতে ম্যানিফেস্ট ফাইল ব্যবহার করে।
ম্যানিফেস্ট ফাইল
একটি ম্যানিফেস্ট ফাইল হল একটি XML ফাইল যা নির্দিষ্ট করে যে অ্যান্ড্রয়েড সোর্সের বিভিন্ন গিট প্রজেক্টগুলি একটি AOSP সোর্স ট্রির মধ্যে কোথায় স্থাপন করা হয়েছে।

হার্ডওয়্যারের প্রয়োজনীয়তা পূরণ করুন

আপনার ডেভেলপমেন্ট ওয়ার্কস্টেশনের এই হার্ডওয়্যার প্রয়োজনীয়তাগুলি পূরণ করা উচিত বা অতিক্রম করা উচিত:

  • একটি ৬৪-বিট x86 সিস্টেম।

  • কোডটি পরীক্ষা করে তৈরি করার জন্য কমপক্ষে ৪০০ গিগাবাইট ফ্রি ডিস্ক স্পেস (চেক করার জন্য ২৫০ গিগাবাইট + তৈরি করার জন্য ১৫০ গিগাবাইট)।

  • সর্বনিম্ন ৬৪ জিবি র‍্যাম। অ্যান্ড্রয়েড তৈরি করতে গুগল ৬৪ জিবি র‍্যাম সহ ৭২-কোর মেশিন ব্যবহার করে। এই হার্ডওয়্যার কনফিগারেশনের সাহায্যে, অ্যান্ড্রয়েডের সম্পূর্ণ বিল্ড তৈরি করতে প্রায় ৪০ মিনিট সময় লাগে এবং অ্যান্ড্রয়েডের ক্রমবর্ধমান বিল্ড তৈরি করতে মাত্র কয়েক মিনিট সময় লাগে। বিপরীতে, ৬৪ জিবি র‍্যাম সহ ৬-কোর মেশিনের সম্পূর্ণ বিল্ড তৈরি করতে প্রায় ৬ ঘন্টা সময় লাগে।

অপারেটিং সিস্টেমের প্রয়োজনীয়তা পূরণ করুন

আপনার ডেভেলপমেন্ট ওয়ার্কস্টেশনে অবশ্যই GNU C Library (glibc) 2.17 বা তার পরবর্তী সংস্করণ সহ যেকোনো 64-বিট Linux ডিস্ট্রিবিউশন চালানো উচিত।

প্রয়োজনীয় প্যাকেজ ইনস্টল করুন

অ্যান্ড্রয়েড ১১ বা তার পরবর্তী সংস্করণ তৈরি করতে, আপনাকে অবশ্যই উবুন্টু ১৮.০৪ বা তার পরবর্তী সংস্করণ ব্যবহার করতে হবে। উবুন্টু ১৮.০৪ বা তার পরবর্তী সংস্করণের জন্য প্রয়োজনীয় প্যাকেজ ইনস্টল করতে, নিম্নলিখিত কমান্ডটি চালান:

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

ইনস্টল করা প্যাকেজগুলির মধ্যে, এই কমান্ডটি Git ইনস্টল করে, যা AOSP উৎস ডাউনলোড করতে ব্যবহৃত হয়।

প্রয়োজনীয় সফ্টওয়্যার ইনস্টল করুন

AOSP এর সাথে কাজ করার আগে, আপনার OpenJDK, Make, Python 3 এবং Repo এর ইনস্টলেশন থাকা আবশ্যক। অ্যান্ড্রয়েডের সর্বশেষ রিলিজ শাখাটি OpenJDK, Make এবং Python 3 এর পূর্বনির্মিত সংস্করণগুলির সাথে আসে, তাই অতিরিক্ত ইনস্টলেশন পদক্ষেপের প্রয়োজন হয় না। নিম্নলিখিত বিভাগে Repo কীভাবে ইনস্টল করবেন তা ব্যাখ্যা করা হয়েছে।

রেপো ইনস্টল করুন

রেপো ইনস্টল করতে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. বর্তমান প্যাকেজের তথ্য ডাউনলোড করুন:

    sudo apt-get update
  2. রেপো লঞ্চার ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:

    sudo apt-get install repo

    রেপো লঞ্চারটি একটি পাইথন স্ক্রিপ্ট প্রদান করে যা একটি চেকআউট শুরু করে এবং সম্পূর্ণ রেপো টুল ডাউনলোড করে।

    সফল হলে, ধাপ ৪ এ যান।

  3. (ঐচ্ছিক) নিম্নলিখিত কমান্ড সিরিজ ব্যবহার করে ম্যানুয়ালি Repo ইনস্টল করুন:

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo

    প্রথম তিনটি কমান্ড একটি টেম্প ফাইল সেট আপ করে, ফাইলটিতে রেপো ডাউনলোড করে এবং প্রদত্ত কীটি প্রয়োজনীয় কী-এর সাথে মেলে কিনা তা যাচাই করে। যদি এই কমান্ডগুলি সফল হয়, তাহলে চূড়ান্ত কমান্ডটি রেপো লঞ্চার ইনস্টল করে।

  4. রেপো লঞ্চার সংস্করণটি যাচাই করুন:

    repo version

    আউটপুটটি 2.4 বা তার বেশি সংস্করণ নির্দেশ করবে, উদাহরণস্বরূপ:

    repo launcher version 2.45

একটি বিকল্প আউটপুট ডিরেক্টরি সেট করুন

ডিফল্টরূপে, প্রতিটি বিল্ডের আউটপুট ম্যাচিং সোর্স ট্রির out/ সাবডিরেক্টরিতে সংরক্ষণ করা হয়। আপনি OUT_DIR এনভায়রনমেন্ট ভেরিয়েবল এক্সপোর্ট করে এই ডিরেক্টরিটি ওভাররাইড করতে পারেন। উদাহরণস্বরূপ, যদি আপনি আপনার আউটপুটটি অন্য কোনও ড্রাইভে সংরক্ষণ করতে চান, তাহলে আপনি OUT_DIR কে সেই ড্রাইভে নির্দেশ করতে পারেন:

export OUT_DIR=my_other_drive

এরপর কী?