অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্ট (AOSP) একটি সম্পূর্ণ সফ্টওয়্যার স্ট্যাক বজায় রাখে যাতে OEM এবং অন্যান্য ডিভাইস ইমপ্লিমেন্টারদের দ্বারা পোর্ট করা হয় এবং তাদের নিজস্ব হার্ডওয়্যারে চালানো হয়। অ্যান্ড্রয়েডের গুণমান বজায় রাখতে, Google পূর্ণ-সময়ের প্রকৌশলী, পণ্য পরিচালক, ব্যবহারকারী ইন্টারফেস ডিজাইনার, গুণমান নিশ্চিতকরণ পরীক্ষক এবং আধুনিক ডিভাইসগুলিকে বাজারে আনার জন্য প্রয়োজনীয় অন্যান্য সমস্ত ভূমিকায় অবদান রেখেছে।
তদনুসারে, আমরা অস্থির পরীক্ষামূলক কাজ থেকে অ্যান্ড্রয়েডের বর্তমান স্থিতিশীল সংস্করণটিকে স্পষ্টভাবে আলাদা করতে বেশ কয়েকটি কোডলাইন বজায় রাখি। আমরা ওপেন সোর্স অ্যাডমিনিস্ট্রেশন এবং অ্যান্ড্রয়েড কোডলাইনগুলির রক্ষণাবেক্ষণকে বৃহত্তর পণ্য বিকাশ চক্রের মধ্যে রোল করি।
AOSP কোড ব্যবস্থাপনা
নীচের চার্টটি AOSP কোড পরিচালনা এবং প্রকাশের পিছনে ধারণাগুলিকে চিত্রিত করে।
- যেকোন মুহুর্তে, Android প্ল্যাটফর্মের একটি বর্তমান সর্বশেষ রিলিজ আছে। এটি সাধারণত গাছের একটি শাখার রূপ নেয়।
- ডিভাইস নির্মাতা এবং অবদানকারীরা বর্তমান সর্বশেষ প্রকাশের সাথে কাজ করে, বাগগুলি সমাধান করে, নতুন ডিভাইস চালু করে, নতুন বৈশিষ্ট্যগুলির সাথে পরীক্ষা করে এবং আরও অনেক কিছু করে।
- সমান্তরালভাবে, Google অভ্যন্তরীণভাবে অ্যান্ড্রয়েড প্ল্যাটফর্মের পরবর্তী সংস্করণ এবং পণ্যের চাহিদা এবং লক্ষ্য অনুযায়ী ফ্রেমওয়ার্কে কাজ করে। আমরা একটি ফ্ল্যাগশিপ ডিভাইসে একটি ডিভাইস অংশীদারের সাথে কাজ করার মাধ্যমে Android এর পরবর্তী সংস্করণ তৈরি করি যার স্পেসিফিকেশনগুলি Android কে সেই দিকে ঠেলে দেওয়ার জন্য বেছে নেওয়া হয়েছে যা আমরা মনে করি এটি যেতে হবে।
- যখন n+1ম সংস্করণ প্রস্তুত হয়, তখন এটি পাবলিক সোর্স ট্রিতে প্রকাশিত হয় এবং নতুন সর্বশেষ প্রকাশে পরিণত হয়।
শর্তাবলী এবং সতর্কতা
- একটি রিলিজ অ্যান্ড্রয়েড প্ল্যাটফর্মের একটি আনুষ্ঠানিক সংস্করণের সাথে মিলে যায়, যেমন 1.5 বা 8.1৷ প্ল্যাটফর্মের একটি রিলিজ
AndroidManifest.xml
ফাইলেরSdkVersion
ক্ষেত্রের সংস্করণের সাথে মিলে যায় এবং সোর্স ট্রিতেframeworks/base/api
-এর মধ্যে সংজ্ঞায়িত করা হয়। - একটি আপস্ট্রিম প্রকল্প হল একটি ওপেন সোর্স প্রকল্প যেখান থেকে অ্যান্ড্রয়েড স্ট্যাক কোড টানে। লিনাক্স কার্নেল এবং ওয়েবকিটের মতো প্রকল্পগুলি ছাড়াও, আমরা কিছু আধা-স্বায়ত্তশাসিত অ্যান্ড্রয়েড প্রকল্প যেমন ART, Android SDK টুলস এবং বায়োনিককে আপস্ট্রিম প্রকল্প হিসাবে কাজ করার জন্য স্থানান্তর করা চালিয়ে যাচ্ছি। সাধারণত, এই প্রকল্পগুলি সম্পূর্ণরূপে জনসাধারণের গাছে বিকশিত হয়। কিছু আপস্ট্রিম প্রকল্পের জন্য, ডেভেলপাররা সরাসরি আপস্ট্রিম প্রকল্পে অবদান রাখে। বিস্তারিত জানার জন্য, আপস্ট্রিম প্রকল্পগুলি দেখুন। উভয় ক্ষেত্রেই, স্ন্যাপশটগুলি পর্যায়ক্রমে রিলিজে টানা হয়।
- সর্বদা, একটি রিলিজ কোডলাইন (যেটিতে গিটে একাধিক শাখা থাকতে পারে) একটি প্রদত্ত Android প্ল্যাটফর্ম সংস্করণের জন্য একমাত্র ক্যানোনিকাল সোর্স কোড হিসাবে বিবেচিত হয়। OEM এবং অন্যান্য গ্রুপ বিল্ডিং ডিভাইস শুধুমাত্র একটি রিলিজ শাখা থেকে টান উচিত.
- সম্প্রদায় থেকে পরিবর্তনগুলি ক্যাপচার করার জন্য পরীক্ষামূলক কোডলাইনগুলি প্রতিষ্ঠিত হয় যাতে স্থিতিশীলতার দিকে নজর রেখে সেগুলিকে পুনরাবৃত্তি করা যায়।
- স্থিতিশীল প্রমাণিত পরিবর্তনগুলি অবশেষে একটি রিলিজ শাখায় টানা হয়। এটি শুধুমাত্র বাগ ফিক্স, অ্যাপ্লিকেশন উন্নতি এবং অন্যান্য পরিবর্তনের ক্ষেত্রে প্রযোজ্য যা প্ল্যাটফর্মের API-কে প্রভাবিত করে না।
- পরিবর্তনগুলি আপস্ট্রিম প্রজেক্ট (অ্যান্ড্রয়েড আপস্ট্রিম প্রজেক্ট সহ) থেকে রিলিজ শাখায় প্রয়োজনীয় হিসাবে টানা হয়।
- n+1তম সংস্করণ (ফ্রেমওয়ার্ক এবং প্ল্যাটফর্ম API-এর পরবর্তী প্রধান সংস্করণ) অভ্যন্তরীণভাবে Google দ্বারা বিকাশ করা হয়েছে। বিস্তারিত জানার জন্য, ব্যক্তিগত কোডলাইন দেখুন।
- পরিবর্তনগুলি আপস্ট্রিম, রিলিজ, এবং পরীক্ষামূলক শাখাগুলি থেকে Google-এর ব্যক্তিগত শাখায় প্রয়োজনীয় হিসাবে টানা হয়।
- যখন পরবর্তী সংস্করণের জন্য প্ল্যাটফর্ম API গুলিকে স্থিতিশীল করা হয় এবং সম্পূর্ণরূপে পরীক্ষা করা হয়, তখন Google পরবর্তী প্ল্যাটফর্ম সংস্করণের (বিশেষ করে, একটি নতুন
SdkVersion
) প্রকাশ করে। এটি অভ্যন্তরীণ কোডলাইনকে একটি পাবলিক রিলিজ শাখা এবং নতুন বর্তমান প্ল্যাটফর্ম কোডলাইনের সাথে সামঞ্জস্যপূর্ণ। - যখন একটি নতুন প্ল্যাটফর্ম সংস্করণ কাটা হয়, একই সময়ে একটি সংশ্লিষ্ট পরীক্ষামূলক কোডলাইন তৈরি করা হয়।
ব্যক্তিগত কোডলাইন
উপরের সোর্স ম্যানেজমেন্ট কৌশলটিতে একটি কোডলাইন রয়েছে যা Google Android এর বর্তমান পাবলিক সংস্করণে মনোযোগ কেন্দ্রীভূত করার জন্য গোপন রাখে।
OEM এবং অন্যান্য ডিভাইস নির্মাতারা স্বাভাবিকভাবেই Android এর সর্বশেষ সংস্করণের সাথে ডিভাইস পাঠাতে চায়। একইভাবে, অ্যাপ্লিকেশন বিকাশকারীরা প্রয়োজনের চেয়ে বেশি প্ল্যাটফর্ম সংস্করণের সাথে মোকাবিলা করতে চান না। ইতিমধ্যে, Google একটি প্ল্যাটফর্ম এবং একটি পণ্য হিসাবে অ্যান্ড্রয়েডের কৌশলগত দিকনির্দেশের দায়িত্ব ধরে রেখেছে। অ্যান্ড্রয়েড-সম্পর্কিত বৌদ্ধিক সম্পত্তির সুরক্ষা সুরক্ষিত করার সময় বৈশিষ্ট্যগুলি চালানোর জন্য আমাদের দৃষ্টিভঙ্গি অল্প সংখ্যক ফ্ল্যাগশিপ ডিভাইসের উপর ফোকাস করে।
ফলস্বরূপ, Google প্রায়ই তৃতীয় পক্ষের কাছ থেকে গোপনীয় তথ্যের অধিকারী থাকে এবং যথাযথ সুরক্ষা সুরক্ষিত না করা পর্যন্ত সংবেদনশীল বৈশিষ্ট্যগুলি প্রকাশ করা থেকে বিরত থাকতে হবে৷ উপরন্তু, প্ল্যাটফর্মে সত্যিকারের ঝুঁকি আছে যদি এক সময়ে অনেকগুলি প্ল্যাটফর্ম সংস্করণ বিদ্যমান থাকে। এই কারণে, আমরা অ্যান্ড্রয়েডের বর্তমানে সর্বজনীন স্থিতিশীল সংস্করণে ফোকাস করার জন্য ওপেন সোর্স প্রকল্প (তৃতীয়-পক্ষের অবদান সহ) গঠন করেছি। প্ল্যাটফর্মের পরবর্তী সংস্করণে গভীর বিকাশ ব্যক্তিগতভাবে ঘটে যতক্ষণ না এটি একটি অফিসিয়াল রিলিজ হওয়ার জন্য প্রস্তুত হয়।
আমরা স্বীকার করি যে অনেক অবদানকারী এই পদ্ধতির সাথে একমত নন এবং আমরা তাদের দৃষ্টিভঙ্গিকে সম্মান করি। যাইহোক, এই পদ্ধতিটিকে আমরা সবচেয়ে ভালো মনে করি এবং আমরা Android এর জন্য প্রয়োগ করার জন্য বেছে নিয়েছি।