অ্যান্ড্রয়েড সোর্স ফাইলগুলি তৈরি করতে আপনার স্থানীয় কাজের পরিবেশ কীভাবে সেট আপ করবেন তা এই বিভাগটি বর্ণনা করে৷ আপনাকে অবশ্যই লিনাক্স ব্যবহার করতে হবে; MacOS বা Windows এর অধীনে বিল্ডিং সমর্থিত নয়। পাশাপাশি /usr/bin/python
বাইনারিতে গুরুত্বপূর্ণ পরিবর্তনের কথা মনে রাখবেন।
সম্পূর্ণ কোড-পর্যালোচনা এবং কোড-আপডেট প্রক্রিয়ার একটি সংক্ষিপ্ত বিবরণের জন্য, একটি প্যাচের জীবন দেখুন।
একটি শাখা নির্বাচন
বিল্ড এনভায়রনমেন্টের জন্য কিছু প্রয়োজনীয়তা সোর্স কোডের সংস্করণ দ্বারা নির্ধারিত হয় যা আপনি কম্পাইল করার পরিকল্পনা করছেন। উপলব্ধ শাখাগুলির সম্পূর্ণ তালিকার জন্য, বিল্ড নম্বর দেখুন। আপনি সর্বশেষ সোর্স কোড ডাউনলোড এবং তৈরি করতেও বেছে নিতে পারেন (যাকে main
বলা হয়), সেক্ষেত্রে আপনি সংগ্রহস্থল শুরু করার সময় শাখা স্পেসিফিকেশনটি বাদ দেন।
একটি শাখা নির্বাচন করার পরে, আপনার বিল্ড এনভায়রনমেন্ট সেট আপ করতে নীচের যথাযথ নির্দেশাবলী অনুসরণ করুন।
একটি লিনাক্স বিল্ড পরিবেশ সেট আপ করা হচ্ছে
এই নির্দেশাবলী main
সহ সকল শাখায় প্রযোজ্য।
অ্যান্ড্রয়েড বিল্ড নিয়মিতভাবে উবুন্টু এলটিএস (14.04) এবং ডেবিয়ান টেস্টিং-এ বাড়িতে পরীক্ষা করা হয়। বেশিরভাগ অন্যান্য বিতরণে প্রয়োজনীয় বিল্ড টুল উপলব্ধ থাকা উচিত।
জিঞ্জারব্রেড (2.3.x) এবং main
শাখা সহ উচ্চতর সংস্করণগুলির জন্য, একটি 64-বিট পরিবেশ প্রয়োজন৷ পুরানো সংস্করণ 32-বিট সিস্টেমে কম্পাইল করা যেতে পারে।
প্রয়োজনীয় প্যাকেজ ইনস্টল করা হচ্ছে (উবুন্টু 18.04 এবং উচ্চতর)
আপনার উবুন্টুর একটি 64-বিট সংস্করণ প্রয়োজন।
sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
প্রয়োজনীয় প্যাকেজ ইনস্টল করা হচ্ছে (উবুন্টু 14.04)
আপনার উবুন্টুর একটি 64-বিট সংস্করণ প্রয়োজন (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
প্রয়োজনীয় প্যাকেজ ইনস্টল করা হচ্ছে (উবুন্টু 12.04)
আপনি Android এর পুরানো সংস্করণ তৈরি করতে Ubuntu 12.04 ব্যবহার করতে পারেন। সংস্করণ 12.04 main
বা সাম্প্রতিক রিলিজে সমর্থিত নয়।
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
প্রয়োজনীয় প্যাকেজ ইনস্টল করা হচ্ছে (উবুন্টু 10.04-11.10)
উবুন্টু 10.04-11.10-এ বিল্ডিং আর সমর্থিত নয়, তবে AOSP-এর পুরানো রিলিজ তৈরির জন্য উপযোগী হতে পারে।
sudo apt-get install git gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils xsltproc
উবুন্টু 10.10 এ:
sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
উবুন্টু 11.10 এ:
sudo apt-get install libx11-dev:i386
USB অ্যাক্সেস কনফিগার করা হচ্ছে
ডেভেলপমেন্টের জন্য একটি ডিভাইস সেট আপ করার নির্দেশাবলী অনুসরণ করে সমস্ত Android ডিভাইসের জন্য একটি সম্প্রদায়-রক্ষণাবেক্ষণ করা ডিফল্ট সেট udev
নিয়মগুলি ইনস্টল করুন৷
একটি পৃথক আউটপুট ডিরেক্টরি ব্যবহার করে
ডিফল্টরূপে, প্রতিটি বিল্ডের আউটপুট মিলে যাওয়া উৎস গাছের out/
সাবডিরেক্টরিতে সংরক্ষণ করা হয়। আপনি OUT_DIR
পরিবেশ পরিবর্তনশীল রপ্তানি করে এটিকে ওভাররাইড করতে পারেন। উদাহরণ স্বরূপ:
export OUT_DIR=out_mytarget
এর ফলে বিল্ডের আউটপুট সোর্স ট্রির out_mytarget/
সাবডিরেক্টরিতে সংরক্ষণ করা হবে। একাধিক লক্ষ্য নির্মাণের জন্য একই উৎস গাছ ব্যবহার করার সময়, প্রতিটি লক্ষ্যের জন্য একটি পৃথক OUT_DIR
ব্যবহার করার পরামর্শ দেওয়া হয়।
একাধিক স্টোরেজ ডিভাইস সহ কিছু মেশিনে, সোর্স ফাইল এবং আউটপুট আলাদা ভলিউমে সংরক্ষণ করার সময় বিল্ডগুলি দ্রুত হয়। অতিরিক্ত কর্মক্ষমতার জন্য, আউটপুটটি ক্র্যাশ শক্তিশালীতার পরিবর্তে গতির জন্য অপ্টিমাইজ করা ফাইল সিস্টেমে সংরক্ষণ করা যেতে পারে, কারণ ফাইল সিস্টেমটি দূষিত হলে সমস্ত ফাইল পুনরায় তৈরি করা যেতে পারে।
এটি সেট আপ করতে, OUT_DIR_COMMON_BASE
ভেরিয়েবলটি রপ্তানি করুন যেখানে আপনার আউটপুট ডিরেক্টরিগুলি সংরক্ষণ করা হবে তা নির্দেশ করুন৷
export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>
প্রতিটি পৃথক সোর্স ট্রির জন্য আউটপুট ডিরেক্টরির নাম দেওয়া হয়েছে সোর্স ট্রি ধারণ করা ডিরেক্টরির নামে। উদাহরণস্বরূপ, যদি আপনার কাছে সোর্স ট্রি /source/main1
এবং /source/main2
থাকে এবং যদি OUT_DIR_COMMON_BASE
/output
এ সেট করা থাকে, আউটপুট ডিরেক্টরিগুলি হল /output/main1
এবং /output/main2
।
একই নামের ডিরেক্টরিতে একাধিক সোর্স ট্রি সংরক্ষণ করা এড়িয়ে চলুন, কারণ সোর্স ট্রি অপ্রত্যাশিত ফলাফল সহ একটি আউটপুট ডিরেক্টরি ভাগ করে নেবে। এটি শুধুমাত্র জেলি বিন (4.1) এবং উচ্চতর, main
শাখা সহ সমর্থিত।
পরবর্তী: উৎস ডাউনলোড করুন
আপনার বিল্ড পরিবেশ যেতে ভাল! উৎস ডাউনলোড করতে এগিয়ে যান.