This page was translated by the Cloud Translation API.
Switch to English

অ্যান্ড্রয়েড বিকাশকারী কোডল্যাব

আপনি পৃথিবীর ইতিহাসে বহুল পরিমাণে ইনস্টলড অপারেটিং সিস্টেম বিকাশে সহায়তা করতে পারেন। হ্যাঁ, আপনি এখানে অ্যান্ড্রয়েড প্ল্যাটফর্ম ইঞ্জিনিয়ার হওয়ার যাত্রা শুরু করতে এসেছেন।

যদিও পথটি চ্যালেঞ্জপূর্ণ, আমরা অ্যান্ড্রয়েড দল প্রতি রিলিজে আপনার যাত্রা সহজ করার জন্য প্রচেষ্টা করি। এবং আমরা অ্যান্ড্রয়েড ওপেন সোর্স প্রকল্পে (এওএসপি) সরাসরি কাজের মাধ্যমে প্রতিদিন উন্নতি করি।

সুতরাং ফিরে বসুন, একটি টার্মিনাল জ্বালিয়ে দিন এবং ইতিহাস তৈরি করুন।

লক্ষ্য

এই কোডল্যাবের মিশন দ্বিগুণ:

  1. এই কোডল্যাব আপনাকে প্ল্যাটফর্মে (অপারেটিং সিস্টেম) কাজ করে থাকা অ্যান্ড্রয়েড ইঞ্জিনিয়ারদের জন্য বিকাশকারী ওয়ার্কফ্লো কেমন হবে তার একটি ছোট স্বাদ দেবে।
  2. এই কোডল্যাব স্ক্র্যাচ থেকে শুরু করার সময় অ্যান্ড্রয়েডের সরঞ্জাম, ডকুমেন্টেশন এবং বিকাশকারী ওয়ার্কফ্লো সম্পর্কে আপনার প্রতিক্রিয়া জানাতে বাধ্য করা একটি ফাংশন।

পূর্বশর্ত

সাধারণ প্ল্যাটফর্মের ( এওএসপি ) বিকাশের জন্য প্রাপ্তদের থেকে প্রাপ্ত এই কোড্ল্যাবের প্রয়োজনীয়তার সম্পূর্ণ তালিকা এখানে রয়েছে।

এই কোডল্যাব নিতে, আপনাকে সেট আপ করতে হবে:

পরিবেশ

সাধারণত, ব্যবহারকারীরা সরাসরি ওয়ার্কস্টেশনে তৈরি এবং বিকাশ করে। যেহেতু আপনি বিভিন্ন টার্মিনালে কাজ করছেন এবং ব্যবহৃত অনেকগুলি কমান্ড টার্মিনাল-নির্দিষ্ট, আপনার প্রতিটি টার্মিনাল সেশনে এগুলি পুনরায় চালনা করতে হবে। বিশেষত এর মধ্যে source build/envsetup.sh এবং lunch কমান্ড অন্তর্ভুক্ত রয়েছে।

ওয়ার্কস্টেশন সেট আপ করুন

  1. ওয়ার্কস্টেশনে প্রয়োজনীয় প্যাকেজ ইনস্টল করুন
  2. টার্মিনালে থাকা অবস্থায়, রেপো ইনস্টল করুন এবং সমস্ত গিট সংগ্রহস্থলের শংসাপত্র অর্জন করুন

কোডটি আরম্ভ এবং সিঙ্ক করুন

  1. আপনার হোম ডিরেক্টরিতে নেভিগেট করুন:

    cd ~
    
  2. এর মধ্যে একটি স্থানীয় ওয়ার্কিং সাব-ডাইরেক্টরি তৈরি করুন:

    mkdir aosp
    
  3. ডিরেক্টরিতে নেভিগেট করুন:

    cd aosp
    
  4. এওএসপি সংগ্রহস্থল উত্স কোড মাস্টার শাখা (ডিফল্ট) শুরু করুন:

    repo init -u https://android.googlesource.com/platform/manifest
    
  5. আপনার গিট শংসাপত্রগুলি (নাম, ইমেল ঠিকানা) প্রবেশ করান বা স্বীকার করুন।

  6. উত্স কোড সিঙ্ক করুন:

    repo sync -j16
    

প্রাথমিক সিঙ্কগুলি এক ঘন্টা বা আরও বেশি সময় নিতে পারে। অপেক্ষা করার সময় সম্পর্কিত বিশদগুলির জন্য ডাউনলোডের নির্দেশাবলী দেখুন।

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

টিপ: স্থান খালি করার জন্য, একটি শাখা ডিরেক্টরি মুছুন এবং ডিরেক্টরি তৈরি থেকে নতুন করে শুরু করুন:

rm -rf aosp2

কোড তৈরি করুন

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

ডিভাইস লক্ষ্য, নীচের অন্তর্ভুক্ত aosp_cf_x86_64_phone-userdebug , আপনি নির্মাণ করতে সক্ষম হবেন ক্যাটল ফিশ একটি ফিজিক্যাল ডিভাইস ছাড়া পরীক্ষার জন্য ভার্চুয়াল অ্যান্ড্রয়েড ডিভাইস।

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

  1. আপনার উত্স কোড চেকআউটটির মূল থেকে নিম্নলিখিত কমান্ডটি চালিয়ে অ্যান্ড্রয়েড ডিভাইসগুলি তৈরির জন্য আপনার পরিবেশ সেট আপ করুন:

    source build/envsetup.sh
    
  2. দুপুরের খাবার কমান্ডে বিল্ড টার্গেটটি পাস করুন:

    lunch aosp_cf_x86_64_phone-userdebug
    
  3. আপনার চেকআউটের যে কোনও জায়গা থেকে কোডটি এর সাথে তৈরি করুন:

    m
    

প্রথম বিল্ডটি কয়েক ঘন্টা লাগবে বলে আশা করি। পরবর্তী বিল্ডগুলি উল্লেখযোগ্যভাবে কম সময় নেয়।

অ্যাক্লাউড উদাহরণ তৈরি করুন

অ্যাক্লাউড হ'ল এওএসপি-র একটি কমান্ড লাইন সরঞ্জাম যা ব্যবহারকারীদের এই ক্ষেত্রে ক্যাটলফিশ ভার্চুয়াল অ্যান্ড্রয়েড ডিভাইস তৈরিতে সহায়তা করে।

আপনি যদি কোডটি তৈরি করতে ব্যবহৃত একই টার্মিনাল সেশনে থাকেন তবে এগিয়ে যান। অন্যথায়, envsetup.sh স্ক্রিপ্ট এবং সেখানে ব্যবহৃত একই মধ্যাহ্নভোজ কমান্ডটি পুনরায় রান করুন। তারপরে:

  1. এর সাথে একটি অ্যাক্লাউড স্থানীয় উদাহরণ তৈরি করুন:

    acloud create --local-image --local-instance
    
  2. প্রয়োজনীয় প্যাকেজগুলির আপডেট গ্রহণ করুন।

  3. যদি অনুরোধ করা হয়, সমস্ত পরিবর্তন কার্যকর হওয়ার জন্য আপনার ওয়ার্কস্টেশনটি পুনরায় চালু করুন।

  4. ক্যাটল ফিশ ডিভাইসটি নির্বাচন করুন।

অ্যান্ড্রয়েড ডিভাইসযুক্ত ভিএনসি সেশনের সাথে আপনাকে অভিনন্দন জানানো উচিত!

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

adb logcat

পরিবর্তন আনো

এই উদাহরণ পরিবর্তন তালিকার অনুসরণ করে উত্স কোডটি আপডেট করুন।

  1. আপনার aosp/ মূল থেকে ( aosp/ ডিরেক্টরি), frameworks/native গিট প্রকল্পে নেভিগেট করুন:

    cd frameworks/native
    
  2. এটি দিয়ে একটি অস্থায়ী প্রকল্প শুরু করুন:

    repo start <some-name> .
    
  3. SurfaceFlinger.cpp থেকে নিম্নলিখিত অবস্থানে আপডেটগুলি অন্তর্ভুক্ত করতে SurfaceFlinger.cpp সম্পাদনা করুন:

    aosp/frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp
    
  4. কোড তৈরি করুন:

    m
    
  5. ডিভাইসে বিল্ডটি আপডেট করুন:

    adb root
    adb remount
    adb sync
    adb reboot
    acloud reconnect
    

আপনার ডিভাইসে রঙ পরিবর্তন হওয়া উচিত।

আপনার কোড পরীক্ষা করুন

কোডলেবের এই অংশের সময় আমরা উত্স ট্রিতে থাকা একটি উদাহরণ পরীক্ষার মধ্য দিয়ে চলব এবং ইতিমধ্যে ব্যর্থ is স্থানীয়ভাবে পরীক্ষা চালানোর জন্য আমরা কোডটি পরীক্ষার জন্য এটেস্ট ব্যবহার করব

পরীক্ষাটি ব্যবহার করতে:

  1. চালান:

    atest DevCodelabTest
    
  2. পরীক্ষা ব্যর্থ হবে; এখন এটি ঠিক করা যাক! ব্যর্থ পরীক্ষার উত্স কোডটি সন্ধান করুন:

    atest --info android.test.example.devcodelab.DevCodelabTest#testHelloWorld
    
  3. তারপরে দেখুন:

    platform_testing/tests/example/devcodelab
    
  4. ফাইলটি সম্পাদনা করার জন্য, পরীক্ষার নামটি গ্রহণ করুন এবং প্রতিস্থাপন করুন . এর সাথে / যেমন:

    android.test.example.devcodelab.DevCodelabTest
    

    হয়ে:

    src/android/test/example/devcodelab/DevCodelabTest.java
    
  5. এইভাবে সম্পাদনা করুন:

    platform_testing/tests/example/devcodelab/src/android/test/example/devcodelab/DevCodelabTest.java
    

    প্রতিস্থাপন করতে:

    Assert.assertTrue(false)
    

    সঙ্গে:

    0 ডি 22642f30
  6. আপনি পরীক্ষাটি স্থির করেছেন তা পরীক্ষা করতে আবার পরীক্ষা চালান:

    atest DevCodelabTest
    

পর্যালোচনার জন্য আপনার কোড আপলোড করুন

একসাথে অসংখ্য গিট সংগ্রহস্থল (বা প্রকল্পগুলি) জুড়ে কাজ করতে git clone মতো বান্ডিল কমান্ডগুলির মাধ্যমে রেপো গিটের ব্যবহারকে সহজ করে।

অ্যান্ড্রয়েড উত্স কোডের সাথে কাজ করার বিষয়ে সম্পূর্ণ ডকুমেন্টেশনের লিঙ্কগুলির সাথে গিট এবং রেপোর ওভারভিউয়ের জন্য উত্স নিয়ন্ত্রণ সরঞ্জাম দেখুন। প্রতিটি প্রকল্পের সাথে যুক্ত শাখার জন্য গিট প্রকল্পের সম্পূর্ণ তালিকা এবং পৃথক প্রকল্পগুলি (পাথ) এর সম্পূর্ণ তালিকার জন্য এওএসপি সংগ্রহস্থল দেখুন।

গিটের প্রকল্পগুলির জন্য আপনি জেরিট ওয়েব-ভিত্তিক কোড পর্যালোচনা সিস্টেমটি ব্যবহার করবেন।

  1. frameworks/native প্রকল্পে আপনি নিজের পরিবর্তন করেছেন তা ধরে নিচ্ছি, এগুলি আপলোড করার জন্য এই আদেশগুলি চালান:

    cd frameworks/native
    repo start codelab .
    git add .
    git commit
    
  2. আপনার প্রতিশ্রুতি বার্তা প্রবেশের জন্য:

    Android codelab change
    Test: manual atest
    
  3. আপনার পরিবর্তন আপলোড করুন:

    repo upload
    

আপনি যদি সফল হন তবে আপনি একটি বার্তা সদৃশ দেখতে পাবেন:

Upload project frameworks/native/ to remote branch master:
  branch codelab ( 1 commit, Wed Aug 7 09:32:33 2019 -0700):
         ff46b36d android codelab change
to https://android-review.googlesource.com/ (y/N)? y
remote: Processing changes: refs: 1, new: 1, done
remote:
remote: SUCCESS
remote:
remote:   https://android-review.googlesource.com/c/platform/frameworks/native/+/1098432 android codelab change [NEW]
remote:
To https://android-review.googlesource.com/platform/frameworks/native
 * [new branch]          codelab -> refs/for/master

জেরিট এ আপনার পরিবর্তন দেখুন

সাদৃশ্যযুক্ত টার্মিনালে মুদ্রিত লিঙ্কটিতে যান:

https://android-review.googlesource.com/c/platform/frameworks/native/+/1098432

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

আপনার পরিবর্তনটি ফিরিয়ে দিন

সাধারণত, পরীক্ষার পরে এবং পর্যালোচনা / অনুমোদনের পরে, আপনি জেরিটে আপনার পরিবর্তন জমা দেবেন এবং এটিকে ভান্ডারটিতে মার্জ করবেন।

পরিবর্তে, codelab উদ্দেশ্য পূরণকল্পে, Gerrit মধ্যে এগুলোকি ক্লিক করে আপনার তালিকা পরিবর্তনের প্রত্যাবর্তন করে।

তারপরে ফ্রেমওয়ার্ক / নেটিভ প্রকল্প ডিরেক্টরিতে (বা এটির) যুক্ত সম্পর্কিত অস্থায়ী শাখাটি ত্যাগ করুন:

repo abandon codelab .

পরীক্ষার ফাইলে পরিবর্তনগুলি ফিরিয়ে আনতেও মনে রাখবেন। যেহেতু আমরা করা হয়নি repo start , git commit , এবং repo upload পরিবর্তন, আমরা নিছক ফাইল নিজেই পুনরায় সেট করতে পারেন, তাই মত (অভিমানী যেখানে আপনি থাকেন aosp/platform_testing directory ):

git reset HEAD tests/example/devcodelab/src/android/test/example/devcodelab/DevCodelabTest.java
git checkout .

এই মুহুর্তে, আপনি শেষ! চমৎকার কাজ!

সহায়তা পান

আপনি যদি এই কোডল্যাবের সময় ত্রুটির মুখোমুখি হন তবে দয়া করে কোনও পৃষ্ঠার নীচে সাইটের প্রতিক্রিয়া লিঙ্কটি ব্যবহার করে তাদের প্রতিবেদন করুন। অ্যান্ড্রয়েড-বিল্ডিং গ্রুপে প্রশ্নগুলি প্রেরণ করুন।