গুগল কালো সম্প্রদায়ের জন্য জাতিগত সমতা উন্নয়নে প্রতিশ্রুতিবদ্ধ। দেখ কিভাবে.
This page was translated by the Cloud Translation API.
Switch to English

বিল্ডিং অ্যান্ড্রয়েড

অ্যান্ড্রয়েড নির্মাণ শুরু করতে এই নির্দেশাবলী অনুসরণ করুন।

পরিবেশ স্থাপন করুন

envsetup.sh স্ক্রিপ্ট দিয়ে পরিবেশের সূচনা করুন:

source build/envsetup.sh

অথবা

. build/envsetup.sh

এ স্ক্রিপ্ট দেখুন প্ল্যাটফর্ম / বিল্ড / envsetup.sh সহ সংশ্লিষ্ট আদেশ, অবস্থা বিবরণ lunch ডিভাইস লক্ষ্যমাত্রা এবং নির্বাচনের জন্য tapas যেমন বান্ডেল মুক্ত অ্যাপ্লিকেশন, নির্মাণের জন্য রেফারেন্স TV অ্যাপ্লিকেশন

সেই স্ক্রিপ্টে কোনও পরিবর্তন আনতে আপনাকে প্রতিটি repo sync পরে এই কমান্ডটি পুনরায় জারি করতে হবে। উল্লেখ্য যে source প্রতিস্থাপন করে . (একটি বিন্দু) কয়েকটি অক্ষর সংরক্ষণ করে এবং সংক্ষিপ্ত রূপটি ডকুমেন্টেশনে বেশি ব্যবহৃত হয়।

envsetup.sh স্ক্রিপ্টটি বিভিন্ন কমান্ড আমদানি করে যা আপনাকে এই অনুশীলনে ব্যবহৃত আদেশগুলি সহ অ্যান্ড্রয়েড উত্স কোড সহ কাজ করতে সক্ষম করে। কমান্ডের কয়েকটি গুরুত্বপূর্ণ উদাহরণ এখানে দেওয়া হয়েছে:

  • lunch - lunch product_name - build_variant নির্বাচন product_name নির্মাণের পণ্য হিসাবে, এবং build_variant নির্মাণের বৈকল্পিক, এবং দোকান পরিবেশে ঐ পছন্দসই মান নির্বাচন করে যেমন পরবর্তী আমন্ত্রণ দ্বারা পড়তে হবে m এবং অন্যান্য অনুরূপ কমান্ড।
  • m - গাছের উপর থেকে রান তোলে build এটি দরকারী কারণ আপনি উপ-ডিরেক্টরিগুলির মধ্যে থেকে make চালাতে make । আপনার যদি TOP পরিবেশের পরিবর্তনশীল সেট থাকে তবে এটি এটি ব্যবহার করে। যদি আপনি এটি না করেন তবে এটি বর্তমান ডিরেক্টরি থেকে গাছটি সন্ধান করে গাছের শীর্ষটি সন্ধান করার চেষ্টা করছে। আপনি হয় আর্গুমেন্ট ছাড়াই m চালিয়ে পুরো সোর্স কোড ট্রি তৈরি করতে পারেন বা তাদের নাম নির্দিষ্ট করে নির্দিষ্ট টার্গেট তৈরি করতে পারেন।
  • mma - বর্তমান ডিরেক্টরিতে সমস্ত মডিউল এবং তাদের নির্ভরতা তৈরি করে।
  • mmma - সরবরাহিত ডিরেক্টরিগুলির সমস্ত মডিউল এবং তাদের নির্ভরতা তৈরি করে।
  • croot - গাছের শীর্ষে cd

উপলব্ধ কমান্ডগুলির সম্পূর্ণ তালিকা দেখতে, চালনা করুন:

hmm

একটি লক্ষ্য চয়ন করুন

lunch দিয়ে কোন টার্গেটটি তৈরি করবেন তা চয়ন করুন। সঠিক কনফিগারেশনটি আর্গুমেন্ট হিসাবে পাস করা যেতে পারে। উদাহরণস্বরূপ, নিম্নলিখিত কমান্ডটি সমস্ত ডিবাগিং সক্ষম করে এমুলেটরটির জন্য সম্পূর্ণ বিল্ডকে বোঝায়:

lunch aosp_arm-eng

যদি কোনও যুক্তি ছাড়াই চালানো হয় তবে lunch আপনাকে মেনু থেকে লক্ষ্য চয়ন করতে অনুরোধ করে। সমস্ত বিদ্যমান ডিভাইসের বিল্ড কনফিগারেশনের জন্য একটি ডিভাইস বিল্ড নির্বাচন করা দেখুন।

সকল বিল্ড লক্ষ্যমাত্রা রূপ নিতে BUILD-BUILDTYPE , যেখানে BUILD একটি কোডনাম বিশেষ বৈশিষ্ট্য সংমিশ্রণ উল্লেখ করা হয়। BUILDTYPE নীচের একটি।

Buildtype ব্যবহার
ব্যবহারকারী সীমিত প্রবেশ; উত্পাদনের জন্য উপযুক্ত
userdebug ব্যবহারকারীর মতো তবে মূল অ্যাক্সেস এবং ডিবাগের ক্ষমতা সহ; ডিবাগিংয়ের জন্য পছন্দসই
eng অতিরিক্ত ডিবাগিং সরঞ্জামগুলির সাথে বিকাশ কনফিগারেশন

অতিরিক্ত ডিবাগিং সক্ষম করার দক্ষতার সাথে ব্যবহারকারী প্লাটফর্মটির সুরক্ষা মডেলটি লঙ্ঘন করে এমনটি ব্যবহারকারী বিল্ডের ব্যবহারকারীর মতোই আচরণ করা উচিত। এটি ইউজারডিবাগকে আরও বেশি নির্ণয়ের ক্ষমতা সহ ব্যবহারকারী পরীক্ষার জন্য ভাল তৈরি করে। ইউজারডিবাগ বিল্ডের সাথে বিকাশ করার সময় ইউজারডিগ বাগ নির্দেশিকা অনুসরণ করুন।

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

প্রকৃত হার্ডওয়্যার তৈরি এবং চলমান সম্পর্কে আরও তথ্যের জন্য, রানিং বিল্ডস দেখুন

কোড বিল্ডিং

এই বিভাগটি সেটআপ সম্পূর্ণ হয়েছে তা নিশ্চিত করার জন্য একটি দ্রুত সংক্ষিপ্তসার।

m দিয়ে সবকিছু তৈরি করুন। m -jN যুক্তির সাহায্যে সমান্তরাল কাজগুলি পরিচালনা করতে পারে। আপনি যদি -j আর্গুমেন্ট সরবরাহ না করেন তবে বিল্ড সিস্টেম স্বয়ংক্রিয়ভাবে একটি সমান্তরাল টাস্ক গণনা নির্বাচন করে যা এটি মনে করে যে এটি আপনার সিস্টেমের জন্য অনুকূল।

m

উপরে বর্ণিত হিসাবে, আপনি আপনার m কমান্ড লাইনে তাদের নাম তালিকাভুক্ত করে পুরো ডিভাইসের চিত্রের পরিবর্তে নির্দিষ্ট মডিউল তৈরি করতে পারেন। এছাড়াও, m বিশেষ উদ্দেশ্যে কিছু সিউডোটারজেট সরবরাহ করে। কিছু উদাহরণ হ'ল:

  • droid - m droid হল সাধারণ বিল্ড। এই লক্ষ্যটি এখানে কারণ ডিফল্ট লক্ষ্যটির একটি নামের প্রয়োজন।
  • all - m all , m droid যা কিছু তৈরি করে, তার সাথে droid ট্যাগ নেই এমন সমস্ত কিছুই তৈরি করে। গাছের মধ্যে রয়েছে এবং Android.mk ফাইল যা আছে তা যা আছে তা নিশ্চিত করতে বিল্ড সার্ভার এটি চালায়।
  • clean - m clean এই কনফিগারেশনের জন্য সমস্ত আউটপুট এবং মধ্যবর্তী ফাইল মুছবে। এটি rm -rf out/ এর সমান।

অন্যান্য সিউডোটারেটস m কী সরবরাহ করে তা দেখতে m help চালান।

চালাও এটা!

আপনি হয় কোনও এমুলেটরটিতে আপনার বিল্ড চালাতে পারেন বা কোনও ডিভাইসে এটি ফ্ল্যাশ করতে পারেন। আপনি ইতিমধ্যে lunch সাথে আপনার বিল্ড টার্গেটটি বেছে নিয়েছেন বলে এটি তৈরির চেয়ে আলাদা লক্ষ্যবস্তুতে চালানোর সম্ভাবনা কম।

ফাস্টবুট দিয়ে ঝলকানি

কোনও ডিভাইস ফ্ল্যাশ করতে, fastboot ব্যবহার fastboot , যা সফলভাবে নির্মাণের পরে আপনার পথে অন্তর্ভুক্ত করা উচিত। নির্দেশাবলী জন্য একটি ডিভাইস ফ্ল্যাশ দেখুন।

একটি Android ডিভাইস অনুকরণ করা

এমুলেটরটি বিল্ড প্রক্রিয়া দ্বারা স্বয়ংক্রিয়ভাবে আপনার পথে যুক্ত হয়। এমুলেটর চালাতে টাইপ করুন:

emulator

সাধারণ বিল্ড ত্রুটিগুলির সমস্যা সমাধানের

ভুল জাভা সংস্করণ

যদি আপনি জাভা আপনার সংস্করণের সাথে সামঞ্জস্যপূর্ণ অ্যানড্রয়েডের এমন কোনও সংস্করণ তৈরি করার চেষ্টা করছেন, তবে কোনও বার্তা দিয়ে এ্যাফোর্স make যেমন:

************************************************************
You are attempting to build with the incorrect version
of java.

Your version is: WRONG_VERSION.
The correct version is: RIGHT_VERSION.

Please follow the machine setup instructions at
    https://source.android.com/source/initializing.html
************************************************************

এখানে সম্ভাব্য কারণ এবং সমাধান:

পাইথন সংস্করণ 3

রেপো পাইথন ২.x থেকে নির্দিষ্ট কার্যকারিতার উপর নির্মিত এবং পাইথন ৩ এর সাথে সঙ্গতিপূর্ণ নয় রেপো ব্যবহার করতে পাইথন ২.x ইনস্টল করুন:

apt-get install python

কেস-সংবেদনশীল ফাইল সিস্টেম

আপনি যদি ম্যাকোজে কোনও এইচএফএস ফাইল সিস্টেমে নির্মাণ করছেন তবে আপনার কোনও ত্রুটির মুখোমুখি হতে পারে যেমন:

************************************************************
You are building on a case-insensitive filesystem.
Please move your source tree to a case-sensitive filesystem.
************************************************************

কেস-সংবেদনশীল ডিস্ক চিত্র তৈরির নির্দেশাবলী অনুসরণ করুন।

কোনও ইউএসবি অনুমতি নেই

বেশিরভাগ লিনাক্স সিস্টেমে ডিফল্টরূপে, অনিবদ্ধ ব্যবহারকারীরা ইউএসবি পোর্টগুলি অ্যাক্সেস করতে পারবেন না। আপনি যদি কোনও অনুমতি অস্বীকৃত ত্রুটি দেখতে পান তবে ইউএসবি অ্যাক্সেস কনফিগার করার নির্দেশাবলী অনুসরণ করুন।

যদি [adb] (adb.md) ইতিমধ্যে চলছিল এবং এই নিয়মগুলি সেট আপ করার পরে ডিভাইসটির সাথে সংযোগ স্থাপন করতে না পারে, আপনি এটি adb kill-server দিয়ে হত্যা করতে পারেন। এই কমান্ডটির ফলে নতুন কনফিগারেশনটি দিয়ে অ্যাডবি পুনরায় আরম্ভ হয়।