Google is committed to advancing racial equity for Black communities. See how.
This page was translated by the Cloud Translation API.
Switch to English

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

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

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

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

source build/envsetup.sh

বা

. build/envsetup.sh

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

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

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

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

hmm

একটি লক্ষ্য নির্বাচন করা

মধ্যাহ্নভোজ

lunch দিয়ে কোন টার্গেটটি তৈরি করবেন তা চয়ন করুন। lunch product_name - build_variant নির্বাচন product_name নির্মাণের পণ্য হিসাবে, এবং build_variant নির্মাণের বৈকল্পিক, এবং দোকান পরিবেশে ঐ পছন্দসই মান নির্বাচন করে যেমন পরবর্তী আমন্ত্রণ দ্বারা পড়তে হবে m এবং অন্যান্য অনুরূপ কমান্ড।

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

lunch aosp_arm-eng

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

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

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

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

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

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

তপস

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

কমান্ডের আরও তথ্যের জন্য tapas help চালান।

কোড বিল্ডিং

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

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

m

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

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

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

বিল্ড চলছে

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

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

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

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

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

emulator

বিল্ডিং ফিঙ্গারপ্রিন্টগুলি বোঝা

কোনও নির্দিষ্ট অ্যান্ড্রয়েড বিল্ডের সাথে জড়িত সমস্যাগুলি ট্র্যাক এবং প্রতিবেদন করতে বিল্ড ফিঙ্গারপ্রিন্টটি বোঝা গুরুত্বপূর্ণ important বিল্ড ফিঙ্গারপ্রিন্ট একটি অনন্য, মানব-পঠনযোগ্য স্ট্রিং যা প্রতিটি বিল্ডকে ইস্যু করা প্রস্তুতকারকের তথ্য ধারণ করে। সুনির্দিষ্ট সিনট্যাক্সের জন্য অ্যান্ড্রয়েড সামঞ্জস্যতা সংজ্ঞা ডকুমেন্ট (সিডিডি) এর বিল্ড প্যারামিটার বিভাগের মধ্যে ফিঙ্গারপিআরএনটি বর্ণনাটি দেখুন।

বিল্ড ফিঙ্গারপ্রিন্ট একটি নির্দিষ্ট অ্যান্ড্রয়েড বাস্তবায়ন এবং সংশোধন উপস্থাপন করে। এই অনন্য কী অ্যাপ্লিকেশন বিকাশকারীদের এবং অন্যদের নির্দিষ্ট ফার্মওয়্যার সংস্করণগুলির সাথে সমস্যাগুলি প্রতিবেদন করার অনুমতি দেয়। অ্যান্ড্রয়েড ইস্যু-রিপোর্টিং প্রক্রিয়াটির জন্য বাগ রিপোর্টিং দেখুন See

একটি বিল্ড ফিঙ্গারপ্রিন্ট সমস্ত অ্যান্ড্রয়েড বাস্তবায়ন বিশদ encapsulates:

  • এপিআই: অ্যান্ড্রয়েড এবং নেটিভ পাশাপাশি নরম এপিআই আচরণগুলি
  • কোর এপিআই এবং কিছু সিস্টেম ইউআই আচরণ
  • উপযুক্ততা এবং সুরক্ষা প্রয়োজনীয়তা সিডিডিতে সংজ্ঞায়িত করা হয়
  • প্রত্যাশিত প্রয়োজনীয়তা পূরণের জন্য ডিভাইসগুলিকে টার্গেট করতে অ্যাপ্লিকেশন দ্বারা নিযুক্ত পণ্য স্পেসিফিকেশন এবং ব্যবহার-বৈশিষ্ট্য সেটিং
  • হার্ডওয়্যার এবং সফ্টওয়্যার উপাদানগুলির প্রয়োগ

সম্পূর্ণ নতুন অ্যান্ড্রয়েড ডিভাইস তৈরির নির্দেশনার জন্য সম্পূর্ণ বিশদ বিবরণ এবং একটি নতুন ডিভাইস যুক্ত করার জন্য সিডিডি দেখুন।

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

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

যদি আপনি জাভা আপনার সংস্করণের সাথে সামঞ্জস্যপূর্ণ অ্যানড্রয়েডের এমন কোনও সংস্করণ তৈরি করার চেষ্টা করছেন, তবে কোনও বার্তা দিয়ে এ্যাফোর্স 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
************************************************************

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

  • উল্লেখিত সঠিক JDK ইনস্টল করতে ব্যর্থ JDK প্রয়োজনীয়তা । নিশ্চিত করুন যে আপনি পরিবেশ নির্ধারণ এবং একটি লক্ষ্য নির্বাচন করার পদক্ষেপগুলি অনুসরণ করেছেন।
  • এর আগে ইনস্টল করা আর একটি জেডিকে আপনার পথে উপস্থিত। আপনার পথের শুরুতে সঠিক জেডিকে প্রস্তুত করুন বা সমস্যাযুক্ত জেডিকে সরান।

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

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

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

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

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

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

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