AOSP প্রায়শই জিজ্ঞাসিত প্রশ্ন (FAQ)

এই নথিতে অ্যান্ড্রয়েড ওপেন সোর্স প্ল্যাটফর্ম (AOSP) সম্পর্কিত সাধারণ প্রশ্নের উত্তর রয়েছে।

অ্যান্ড্রয়েড-সর্বশেষ-রিলিজ সম্পর্কে

আমি কেন aosp-main-এ সাবমিট করতে পারছি না?

আপনি aosp-main এ সাবমিট করতে পারবেন না, কারণ ওই ব্রাঞ্চটি এখন রিড-অনলি।

AOSP-তে পরিবর্তনের প্রস্তাব কোথায় করা উচিত?

আপনার নতুন পরিবর্তনগুলো android-latest-release এ (রেপো ব্যবহার করার সময়) অথবা android-latest-release ম্যানিফেস্টে নির্দিষ্ট করা ডিফল্ট রিভিশন ব্রাঞ্চে (সরাসরি গিট ব্যবহার করার সময়) প্রস্তাব করা উচিত। অন্যান্য ব্রাঞ্চে (যেমন aosp-main ) বিদ্যমান প্রস্তাবিত পরিবর্তনগুলো সরানোর প্রয়োজন নেই।

আরও তথ্যের জন্য, পর্যালোচনার জন্য পরিবর্তন আপলোড করুন দেখুন।

আমি কোন ব্রাঞ্চে সিঙ্ক করব?

  • রিপো ব্যবহার করার সময়, নিম্নলিখিত কমান্ডটি ব্যবহার করে android-latest-release এর সাথে সিঙ্ক করুন:

    repo init --partial-clone --no-use-superproject -b android-latest-release -u https://android.googlesource.com/platform/manifest
  • সরাসরি Git ব্যবহার করার সময়, android-latest-release manifest- এ উল্লেখিত ডিফল্ট রিভিশন ব্রাঞ্চের সাথে সিঙ্ক করুন।

ব্রাঞ্চ সিঙ্ক করার বিষয়ে আরও বিস্তারিত জানতে রিপো ক্লায়েন্ট ইনিশিয়ালাইজ করা দেখুন।

android-latest-release-এর কোড কি aosp-main-এ মার্জ করা হবে?

না, কোডটি aosp-main এ মার্জ করা হবে না, যেটি ২৭ মার্চ, ২০২৫ থেকে একটি রিড-অনলি ব্রাঞ্চ।

পরবর্তী রিলিজের কোডটি কোথায় পুশ করা হয়েছে?

গুগল পরবর্তী রিলিজের কোডটি সর্বশেষ পাবলিক রিলিজ ব্রাঞ্চে পুশ করে এবং সেই ব্রাঞ্চটিকে নির্দেশ করার জন্য android-latest-release ম্যানিফেস্টটি আপডেট করে।

আমার পরিবর্তনের অনুরোধটি কি android-latest-release শাখা থেকে অভ্যন্তরীণ Gerrit-এ চেরিপিক করা হবে?

আপনি কোনো প্রস্তাবিত পরিবর্তন আপলোড করার পর, গুগল তা পর্যালোচনা করবে এবং গৃহীত হলে, সেটিকে অভ্যন্তরীণ Gerrit-এ অন্তর্ভুক্ত করে নেবে।

আমার পরিবর্তনের অনুরোধটি গৃহীত হয়েছে কিনা, তা আমি কীভাবে জানব?

গৃহীত এবং বাছাই করা পরিবর্তনগুলো অ্যান্ড্রয়েড হোস্টের রিলিজ ব্রাঞ্চে ভবিষ্যতের কোনো পুশ-এ দেখা যায় এবং android-latest-release ব্যবহার করে রিপোর সাথে সিঙ্ক করা যায়। কোনো প্রস্তাবিত পরিবর্তন গৃহীত বা প্রত্যাখ্যাত হলে তার জন্য কোনো নোটিফিকেশন ব্যবস্থা নেই।

কোনো বহিরাগত অবদানকারীর দ্বারা কোনো পরিবর্তনের প্রস্তাব দেওয়া থেকে শুরু করে সেটি সর্বশেষ রিলিজ শাখায় একীভূত হওয়া পর্যন্ত সাধারণ কার্যপ্রবাহটি কী?

  1. একজন বহিরাগত অবদানকারী android-latest-release এ (Repo ব্যবহার করার সময়) অথবা android-latest-release manifest-এ নির্দিষ্ট করা সর্বশেষ রিলিজ ব্রাঞ্চে (সরাসরি Git ব্যবহার করার সময়) একটি পরিবর্তনের প্রস্তাব করেন।

  2. গুগল পরিবর্তনটি পর্যালোচনা করে। যদি পরিবর্তনটি হয়:

    • গৃহীত হলে, গুগল সেই পরিবর্তনটি বেছে নেয় এবং অভ্যন্তরীণ ডেভেলপমেন্ট শাখায় তা একীভূত করে।

    • গৃহীত নয়, গুগল পরিবর্তনটি বেছে বেছে গ্রহণ করে না।

  3. বহিরাগত অবদানকারী android-latest-releaseতাদের পরিবর্তনটি যাচাই করেন

যদি আমার প্রস্তাবিত পরিবর্তনটির আর প্রয়োজন না হয়?

আপনার প্রস্তাবিত পরিবর্তনটির আর প্রয়োজন না থাকলে, পরিবর্তনটি মার্জ করতে না চাইলে, অথবা গুগল ইতোমধ্যে পরিবর্তনটি পর্যালোচনা করেছে বলে জানলে, পরিবর্তনটি পরিত্যাগ করুন, যাতে এটি অ্যান্ড্রয়েড হোস্টের প্রস্তাবিত পরিবর্তনের ইতিহাসে থেকে যায়।

ওপেন-সোর্স প্রশ্ন

গুগল কেন অ্যান্ড্রয়েডের সোর্স কোড উন্মুক্ত করল?

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

অ্যান্ড্রয়েড কী ধরনের ওপেন-সোর্স প্রজেক্ট?

গুগল মূল AOSP-এর উন্নয়নের তত্ত্বাবধান করে এবং শক্তিশালী ডেভেলপার ও ব্যবহারকারী কমিউনিটি তৈরিতে কাজ করে। বেশিরভাগ ক্ষেত্রে, অ্যান্ড্রয়েড সোর্স কোড কোনো কপিলেফট লাইসেন্সের পরিবর্তে উদার অ্যাপাচি লাইসেন্স ২.০-এর অধীনে লাইসেন্সকৃত। আমরা অ্যাপাচি ২.০ লাইসেন্সটি বেছে নিয়েছি কারণ আমরা বিশ্বাস করি যে এটি অ্যান্ড্রয়েড সফটওয়্যারের ব্যাপক ব্যবহারকে উৎসাহিত করে। বিস্তারিত জানতে, লাইসেন্সসমূহ দেখুন।

অ্যান্ড্রয়েডের দায়িত্বে গুগল কেন?

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

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

ব্যবহারকারীদের কাছে অ্যান্ড্রয়েডের সাফল্য নিশ্চিত করার মাধ্যমে, আমরা একটি প্ল্যাটফর্ম এবং একটি ওপেন-সোর্স প্রকল্প হিসেবে এর সজীবতা বজায় রাখতে সাহায্য করি। সর্বোপরি, একটি অসফল পণ্যের সোর্স কোড কে-ই বা চায়?

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

অ্যান্ড্রয়েড পণ্য উন্নয়নের ক্ষেত্রে গুগলের সামগ্রিক কৌশল কী?

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

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

অ্যান্ড্রয়েড সফটওয়্যার কীভাবে তৈরি করা হয়?

অ্যান্ড্রয়েডের প্রতিটি প্ল্যাটফর্ম সংস্করণের (যেমন ১.৫ বা ৮.১) ওপেন-সোর্স ট্রি-তে একটি সংশ্লিষ্ট ব্রাঞ্চ থাকে। সবচেয়ে সাম্প্রতিক ব্রাঞ্চটিকে বর্তমান স্থিতিশীল ব্রাঞ্চ সংস্করণ হিসেবে বিবেচনা করা হয়, যা android-latest-release ম্যানিফেস্ট দ্বারা নির্দেশিত হয়। নির্মাতারা এই ব্রাঞ্চটিকেই তাদের ডিভাইসে পোর্ট করে। এই ব্রাঞ্চটিকে সর্বদা রিলিজের জন্য উপযুক্ত রাখা হয়।

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

অ্যান্ড্রয়েডের কিছু অংশ ব্যক্তিগতভাবে কেন তৈরি করা হয়?

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

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

সোর্স কোড কখন রিলিজ করা হয়?

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

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

নতুন অ্যান্ড্রয়েড সংস্করণের সোর্স কোড প্রকাশ করার প্রক্রিয়ায় কী কী বিষয় জড়িত থাকে?

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

যখন নিয়ন্ত্রক সংস্থা এবং পরিচালনাকারীদের দ্বারা অনুমোদন পাওয়া যায়, তখন প্রস্তুতকারক ডিভাইসগুলোর ব্যাপক উৎপাদন শুরু করে এবং আমরা সোর্স কোড প্রকাশ করা শুরু করি।

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

ওপেন সোর্সে কোডটি প্রকাশ করার জন্য আমাদের আইনি দল চূড়ান্ত অনুমোদন দেয়। ঠিক যেমন ওপেন-সোর্স অবদানকারীদের তাদের অবদানের মেধাস্বত্ব মালিকানার প্রত্যয়ন করে একটি ‘অবদানকারী লাইসেন্স চুক্তি’ (Contributors License Agreement) স্বাক্ষর করতে হয়, তেমনি গুগলকেও যাচাই করতে হয় যে সোর্সটিতে অবদান রাখার অনুমতি আছে কি না।

ব্যাপক উৎপাদন শুরু হওয়ার সময় থেকে সফটওয়্যার প্রকাশের প্রক্রিয়াটিতে সাধারণত প্রায় এক মাস সময় লাগে, তাই ডিভাইসগুলো ব্যবহারকারীদের কাছে পৌঁছানোর কাছাকাছি সময়েই সোর্স কোডও প্রকাশ করা হয়।

AOSP-এর সাথে অ্যান্ড্রয়েড কম্প্যাটিবিলিটি প্রোগ্রামের সম্পর্ক কী?

AOSP অ্যান্ড্রয়েড সফটওয়্যার রক্ষণাবেক্ষণ করে এবং এর নতুন সংস্করণ তৈরি করে। ওপেন-সোর্স হওয়ায়, এই সফটওয়্যারটি যেকোনো উদ্দেশ্যে ব্যবহার করা যেতে পারে, যার মধ্যে একই সোর্সের উপর ভিত্তি করে তৈরি অন্যান্য ডিভাইসের সাথে সামঞ্জস্যপূর্ণ নয় এমন ডিভাইস তৈরি করাও অন্তর্ভুক্ত।

অ্যান্ড্রয়েড কম্প্যাটিবিলিটি প্রোগ্রামের কাজ হলো অ্যান্ড্রয়েডের এমন একটি ভিত্তিগত বাস্তবায়ন নির্ধারণ করা, যা ডেভেলপারদের তৈরি থার্ড-পার্টি অ্যাপের সাথে সামঞ্জস্যপূর্ণ। যে ডিভাইসগুলো অ্যান্ড্রয়েডের সাথে সামঞ্জস্যপূর্ণ , সেগুলো গুগল প্লে সহ অ্যান্ড্রয়েড ইকোসিস্টেমে অংশগ্রহণের যোগ্য; যে ডিভাইসগুলো সামঞ্জস্যের শর্ত পূরণ করে না, সেগুলো সেই ইকোসিস্টেমের বাইরে থাকে।

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

আমি অ্যান্ড্রয়েডে কীভাবে অবদান রাখতে পারি?

আপনি বাগ রিপোর্ট করতে পারেন, অ্যান্ড্রয়েডের জন্য অ্যাপ লিখতে পারেন, অথবা AOSP-তে সোর্স কোড অবদান রাখতে পারেন।

আমরা যে ধরনের কোড কন্ট্রিবিউশন গ্রহণ করি, তার কিছু সীমাবদ্ধতা আছে। উদাহরণস্বরূপ, কেউ হয়তো একটি বিকল্প অ্যাপ এপিআই (API) দিতে চাইতে পারেন, যেমন একটি সম্পূর্ণ সি++ (C++) ভিত্তিক এনভায়রনমেন্ট। আমরা সেই কন্ট্রিবিউশনটি প্রত্যাখ্যান করব, কারণ অ্যান্ড্রয়েড অ্যাপগুলোকে ART রানটাইমে চালানোর জন্য উৎসাহিত করে। একইভাবে, আমরা GPL বা LGPL লাইব্রেরির মতো কন্ট্রিবিউশন গ্রহণ করব না, যা আমাদের লাইসেন্সিং লক্ষ্যের সাথে সামঞ্জস্যপূর্ণ নয়।

যারা সোর্স কোড দিয়ে অবদান রাখতে আগ্রহী, তাদের যেকোনো কাজ শুরু করার আগে অ্যান্ড্রয়েড কমিউনিটিতে তালিকাভুক্ত চ্যানেলগুলোর মাধ্যমে আমাদের সাথে যোগাযোগ করতে উৎসাহিত করা হচ্ছে। বিস্তারিত জানতে, ‘অবদান’ (Contributing) দেখুন।

আমি কীভাবে একজন অ্যান্ড্রয়েড কমিটার হতে পারি?

AOSP-তে আসলে কমিটার বলে কোনো ধারণা নেই। সমস্ত অবদান (গুগল কর্মীদের লেখা সহ) গ্যারিট (Gerrit) নামে পরিচিত একটি ওয়েব-ভিত্তিক সিস্টেমের মাধ্যমে যায়, যা অ্যান্ড্রয়েড ইঞ্জিনিয়ারিং প্রক্রিয়ার একটি অংশ। এই সিস্টেমটি সোর্স কোডের অবদানগুলোকে সুষ্ঠুভাবে পরিচালনা করার জন্য গিট (Git) সোর্স কোড ম্যানেজমেন্ট সিস্টেমের সাথে একযোগে কাজ করে।

একজন মনোনীত অনুমোদককে সমস্ত প্রস্তাবিত পরিবর্তন পর্যালোচনা ও অনুমোদন করতে হবে। অনুমোদকরা সাধারণত গুগলের কর্মচারী হন, কিন্তু উৎস নির্বিশেষে সমস্ত জমা দেওয়া তথ্যের জন্য তারাই দায়ী থাকেন।

বিস্তারিত জানতে, প্যাচ জমা দেওয়া দেখুন।