এই নথিতে Android ওপেন সোর্স প্ল্যাটফর্ম (AOSP) সম্পর্কে সাধারণ প্রশ্নের উত্তর রয়েছে৷
ওপেন সোর্স প্রশ্ন
গুগল কেন অ্যান্ড্রয়েড সোর্স কোড খুলল?
মোবাইল অ্যাপ চালু করার অভিজ্ঞতার প্রতিক্রিয়া হিসেবে Google AOSP শুরু করেছে। আমরা নিশ্চিত করতে চেয়েছিলাম যে ক্যারিয়ার, OEM এবং বিকাশকারীদের জন্য তাদের উদ্ভাবনী ধারণাগুলিকে বাস্তবে পরিণত করতে ব্যবহার করার জন্য সর্বদা একটি উন্মুক্ত প্ল্যাটফর্ম উপলব্ধ থাকবে। আমরা ব্যর্থতার কোনো কেন্দ্রীয় বিন্দু এড়াতেও চেয়েছিলাম, তাই কোনো একক শিল্প খেলোয়াড় অন্য কোনো উদ্ভাবনকে সীমাবদ্ধ বা নিয়ন্ত্রণ করতে পারে না। AOSP-এর সাথে আমাদের একক সবচেয়ে গুরুত্বপূর্ণ লক্ষ্য হল ওপেন-সোর্স অ্যান্ড্রয়েড সফ্টওয়্যারটি সকলের সুবিধার জন্য যতটা সম্ভব ব্যাপকভাবে এবং সামঞ্জস্যপূর্ণভাবে প্রয়োগ করা হয় তা নিশ্চিত করা।
অ্যান্ড্রয়েড কি ধরনের ওপেন সোর্স প্রকল্প?
Google মূল AOSP-এর উন্নয়ন তদারকি করে এবং শক্তিশালী বিকাশকারী এবং ব্যবহারকারী সম্প্রদায় তৈরি করতে কাজ করে। বেশিরভাগ অংশে, অ্যান্ড্রয়েড সোর্স কোড কপিলেফ্ট লাইসেন্সের পরিবর্তে অনুমতিপ্রাপ্ত অ্যাপাচি লাইসেন্স 2.0-এর অধীনে লাইসেন্সপ্রাপ্ত। আমরা Apache 2.0 লাইসেন্স বেছে নিয়েছি কারণ আমরা বিশ্বাস করি যে এটি ব্যাপকভাবে Android সফ্টওয়্যার গ্রহণকে উৎসাহিত করে। বিস্তারিত জানার জন্য, লাইসেন্স দেখুন।
অ্যান্ড্রয়েডের দায়িত্বে গুগল কেন?
একটি সফ্টওয়্যার প্ল্যাটফর্ম চালু করা জটিল। একটি প্ল্যাটফর্মের দীর্ঘমেয়াদী সাফল্যের জন্য উন্মুক্ততা অত্যাবশ্যক, কারণ উন্মুক্ততা বিকাশকারীদের কাছ থেকে বিনিয়োগ আকর্ষণ করে এবং একটি সমান খেলার ক্ষেত্র নিশ্চিত করে। প্ল্যাটফর্মটি অবশ্যই ব্যবহারকারীদের জন্য একটি বাধ্যতামূলক পণ্য হতে হবে।
অ্যান্ড্রয়েড একটি সম্পূর্ণ প্রতিযোগিতামূলক সফ্টওয়্যার প্ল্যাটফর্ম নিশ্চিত করার জন্য Google প্রয়োজনীয় পেশাদার প্রকৌশল সংস্থানগুলিকে প্রতিশ্রুতিবদ্ধ করেছে৷ গুগল অ্যান্ড্রয়েড প্রোজেক্টকে একটি পূর্ণ-স্কেল পণ্য উন্নয়ন অপারেশন হিসাবে বিবেচনা করে এবং অ্যান্ড্রয়েড চালিত দুর্দান্ত ডিভাইসগুলিকে বাজারে আনার জন্য প্রয়োজনীয় ব্যবসায়িক চুক্তিগুলিকে আঘাত করে৷
ব্যবহারকারীদের কাছে Android একটি সফলতা নিশ্চিত করার মাধ্যমে, আমরা একটি প্ল্যাটফর্ম এবং একটি ওপেন-সোর্স প্রকল্প হিসাবে Android এর প্রাণশক্তি নিশ্চিত করতে সাহায্য করি। সর্বোপরি, কে একটি অসফল পণ্যের উত্স কোড চায়?
আমাদের লক্ষ্য হল Android এর চারপাশে একটি সফল ইকোসিস্টেম নিশ্চিত করা। আমরা অ্যান্ড্রয়েড সোর্স কোডটি খুলেছি যাতে যে কেউ তাদের নিজস্ব প্রয়োজন মেটাতে সফ্টওয়্যারটি সংশোধন এবং বিতরণ করতে পারে৷
অ্যান্ড্রয়েড পণ্য বিকাশের জন্য গুগলের সামগ্রিক কৌশল কী?
আমরা একটি প্রতিযোগিতামূলক বাজারে দুর্দান্ত ডিভাইস প্রকাশ করি। তারপরে আমরা পরবর্তী সংস্করণ হিসাবে মূল প্ল্যাটফর্মে তৈরি করা উদ্ভাবন এবং বর্ধনগুলিকে অন্তর্ভুক্ত করি।
অনুশীলনে, এর মানে হল যে অ্যান্ড্রয়েড ইঞ্জিনিয়ারিং টিম অল্প সংখ্যক "ফ্ল্যাগশিপ" ডিভাইসের উপর ফোকাস করে এবং সেই পণ্য লঞ্চগুলিকে সমর্থন করার জন্য Android সফ্টওয়্যারের পরবর্তী সংস্করণ তৈরি করে। এই ফ্ল্যাগশিপ ডিভাইসগুলি পণ্যের অনেক ঝুঁকি শোষণ করে এবং বিস্তৃত OEM সম্প্রদায়ের জন্য একটি পথ দেখায়, যারা নতুন বৈশিষ্ট্যগুলির সুবিধা গ্রহণ করে এমন আরও ডিভাইসের সাথে অনুসরণ করে। এইভাবে, আমরা নিশ্চিত করি যে অ্যান্ড্রয়েড প্ল্যাটফর্মটি বাস্তব-বিশ্বের ডিভাইসের চাহিদা অনুযায়ী বিকশিত হয়েছে।
কিভাবে অ্যান্ড্রয়েড সফটওয়্যার তৈরি করা হয়?
অ্যান্ড্রয়েডের প্রতিটি প্ল্যাটফর্ম সংস্করণের (যেমন 1.5 বা 8.1) ওপেন-সোর্স ট্রিতে একটি সংশ্লিষ্ট শাখা রয়েছে। সাম্প্রতিকতম শাখাটিকে বর্তমান স্থিতিশীল শাখা সংস্করণ হিসাবে বিবেচনা করা হয়। এটি সেই শাখা যা নির্মাতারা তাদের ডিভাইসে পোর্ট করে। এই শাখাটি সর্বদা মুক্তির উপযোগী রাখা হয়।
একই সাথে, একটি বর্তমান পরীক্ষামূলক শাখা রয়েছে, যেখানে অনুমানমূলক অবদান, যেমন বড় পরবর্তী প্রজন্মের বৈশিষ্ট্যগুলি তৈরি করা হয়। বাগ সংশোধন এবং অন্যান্য অবদানগুলি যথাযথভাবে পরীক্ষামূলক শাখা থেকে বর্তমান স্থিতিশীল শাখায় অন্তর্ভুক্ত করা যেতে পারে।
অবশেষে, Google একটি ফ্ল্যাগশিপ ডিভাইস ডেভেলপ করার সাথে সাথে অ্যান্ড্রয়েড প্ল্যাটফর্মের পরবর্তী সংস্করণে কাজ করে। এই শাখা পরীক্ষামূলক এবং স্থিতিশীল শাখাগুলি থেকে উপযুক্ত হিসাবে পরিবর্তন আনে।
কোডলাইন, শাখা এবং রিলিজ সম্পর্কে বিশদ বিবরণের জন্য, অ্যান্ড্রয়েড সফ্টওয়্যার পরিচালনা দেখুন।
কেন অ্যান্ড্রয়েডের অংশগুলি ব্যক্তিগতভাবে তৈরি করা হয়?
একটি ডিভাইস বাজারে আনতে সাধারণত এক বছরের বেশি সময় লাগে। এবং, অবশ্যই, ডিভাইস নির্মাতারা তারা করতে পারেন সর্বশেষ সফ্টওয়্যার পাঠাতে চান. ইতিমধ্যে, ডেভেলপাররা অ্যাপ্লিকেশন লেখার সময় প্ল্যাটফর্মের নতুন সংস্করণগুলি ক্রমাগত ট্র্যাক করতে চান না। উভয় গ্রুপই শিপিং পণ্যের মধ্যে উত্তেজনা অনুভব করে এবং পিছিয়ে পড়তে চায় না।
এটি মোকাবেলা করার জন্য, মূল প্ল্যাটফর্ম API সহ অ্যান্ড্রয়েডের পরবর্তী সংস্করণের কিছু অংশ একটি ব্যক্তিগত শাখায় তৈরি করা হয়েছে। এই APIগুলি Android এর পরবর্তী সংস্করণ গঠন করে৷ আমাদের লক্ষ্য হল প্ল্যাটফর্মের পরবর্তী সংস্করণ তৈরি করার সময় Android সোর্স কোডের বর্তমান স্থিতিশীল সংস্করণে মনোযোগ দেওয়া। এটি ডেভেলপার এবং OEMকে অসম্পূর্ণ ভবিষ্যৎ কাজ ট্র্যাক না করে একটি একক সংস্করণ ব্যবহার করার অনুমতি দেয়। অ্যান্ড্রয়েড সিস্টেমের অন্যান্য অংশগুলি যেগুলি অ্যাপ সামঞ্জস্যের সাথে সম্পর্কিত নয় সেগুলি উন্মুক্তভাবে বিকাশ করা হয়েছে৷ আমরা সময়ের সাথে সাথে বিকাশের জন্য এই অংশগুলির আরও বেশি স্থানান্তর করতে চাই।
সোর্স কোড রিলিজ কখন করা হয়?
তারা প্রস্তুত হলে. সোর্স কোড প্রকাশ করা একটি মোটামুটি জটিল প্রক্রিয়া। অ্যান্ড্রয়েডের কিছু অংশ উন্মুক্তভাবে তৈরি করা হয়েছে এবং সেই সোর্স কোড সবসময় পাওয়া যায়। অন্যান্য অংশগুলি প্রথমে একটি ব্যক্তিগত গাছে তৈরি করা হয় এবং পরবর্তী প্ল্যাটফর্ম সংস্করণ প্রস্তুত হলে সেই উত্স কোডটি প্রকাশ করা হয়।
কিছু রিলিজে, কোর প্ল্যাটফর্ম এপিআইগুলি যথেষ্ট আগে থেকেই প্রস্তুত থাকে যাতে আমরা ডিভাইসের প্রকাশের আগে প্রাথমিক চেহারার জন্য সোর্স কোডটি পুশ করতে পারি। অন্যান্য রিলিজে, এটি সম্ভব নয়। সমস্ত ক্ষেত্রে, আমরা যখন অনুভব করি যে সংস্করণটি স্থিতিশীল, এবং যখন বিকাশ প্রক্রিয়া অনুমতি দেয় তখন আমরা প্ল্যাটফর্মের উত্সটি প্রকাশ করি।
একটি নতুন অ্যান্ড্রয়েড সংস্করণের জন্য সোর্স কোড প্রকাশের সাথে কী জড়িত?
অ্যান্ড্রয়েড প্ল্যাটফর্মের একটি নতুন সংস্করণের জন্য সোর্স কোড প্রকাশ করা একটি উল্লেখযোগ্য প্রক্রিয়া। প্রথমত, সফ্টওয়্যারটি একটি ডিভাইসের জন্য একটি সিস্টেম ইমেজে তৈরি করা হয় এবং ফোনগুলি যে অঞ্চলে স্থাপন করা হবে তার জন্য সরকারী নিয়ন্ত্রক শংসাপত্র সহ বিভিন্ন ধরণের শংসাপত্রের মাধ্যমে রাখা হয়। কোডটি অপারেটর পরীক্ষার মাধ্যমেও যায়। এটি প্রক্রিয়াটির একটি গুরুত্বপূর্ণ পর্যায়, কারণ এটি সফ্টওয়্যার বাগ সনাক্ত করতে সহায়তা করে।
যখন রিলিজটি নিয়ন্ত্রক এবং অপারেটরদের দ্বারা অনুমোদিত হয়, তখন প্রস্তুতকারক ডিভাইসগুলি ভর উৎপাদন শুরু করে এবং আমরা সোর্স কোড প্রকাশ করা শুরু করি।
ব্যাপক উৎপাদনের সাথে সাথে, Google টিম ওপেন সোর্স রিলিজ প্রস্তুত করার জন্য বিভিন্ন প্রচেষ্টা শুরু করে। এই প্রচেষ্টাগুলির মধ্যে চূড়ান্ত API পরিবর্তন করা, ডকুমেন্টেশন আপডেট করা (যেমন যোগ্যতা পরীক্ষার সময় করা যেকোন পরিবর্তনগুলি প্রতিফলিত করা), নতুন সংস্করণের জন্য একটি SDK প্রস্তুত করা এবং প্ল্যাটফর্ম সামঞ্জস্যপূর্ণ তথ্য চালু করা অন্তর্ভুক্ত।
আমাদের আইনি দল ওপেন সোর্সে কোড প্রকাশ করার জন্য একটি চূড়ান্ত সাইন-অফ করে। ওপেন-সোর্স অবদানকারীদের যেমন তাদের অবদানের মেধা সম্পত্তির মালিকানা প্রমাণ করে একটি কন্ট্রিবিউটর লাইসেন্স চুক্তিতে স্বাক্ষর করতে হবে, Google-কে অবশ্যই যাচাই করতে হবে যে উৎসটি অবদান রাখার জন্য সাফ করা হয়েছে।
যে সময় থেকে ব্যাপক উত্পাদন শুরু হয়, সফ্টওয়্যার প্রকাশের প্রক্রিয়াটি সাধারণত প্রায় এক মাস সময় নেয়, তাই সোর্স কোড রিলিজগুলি প্রায়শই একই সময়ে ডিভাইসগুলি ব্যবহারকারীদের কাছে পৌঁছায়।
এওএসপি কীভাবে অ্যান্ড্রয়েড সামঞ্জস্যতা প্রোগ্রামের সাথে সম্পর্কিত?
AOSP অ্যান্ড্রয়েড সফ্টওয়্যার বজায় রাখে, এবং নতুন সংস্করণ তৈরি করে। যেহেতু এটি ওপেন-সোর্স, এই সফ্টওয়্যারটি একই উত্সের উপর ভিত্তি করে অন্যান্য ডিভাইসগুলির সাথে সামঞ্জস্যপূর্ণ নয় এমন ডিভাইসগুলি বিকাশ সহ যে কোনও উদ্দেশ্যে ব্যবহার করা যেতে পারে৷
অ্যান্ড্রয়েড কম্প্যাটিবিলিটি প্রোগ্রামের কাজ হল অ্যান্ড্রয়েডের একটি বেসলাইন বাস্তবায়নকে সংজ্ঞায়িত করা যা ডেভেলপারদের দ্বারা লিখিত তৃতীয় পক্ষের অ্যাপগুলির সাথে সামঞ্জস্যপূর্ণ। Android এর সাথে সামঞ্জস্যপূর্ণ ডিভাইসগুলি Google Play সহ Android ইকোসিস্টেমে অংশগ্রহণের যোগ্য; যে ডিভাইসগুলি সামঞ্জস্যের প্রয়োজনীয়তাগুলি পূরণ করে না সেই ইকোসিস্টেমের বাইরে বিদ্যমান৷
অন্য কথায়, অ্যান্ড্রয়েড সামঞ্জস্যতা প্রোগ্রাম হল কীভাবে আমরা অ্যান্ড্রয়েড-সামঞ্জস্যপূর্ণ ডিভাইসগুলিকে এমন ডিভাইসগুলি থেকে আলাদা করি যেগুলি শুধুমাত্র উত্স কোডের ডেরিভেটিভগুলি চালায়৷ আমরা অ্যান্ড্রয়েড সোর্স কোডের সমস্ত ব্যবহারকে স্বাগত জানাই, কিন্তু অ্যান্ড্রয়েড ইকোসিস্টেমে অংশগ্রহণ করার জন্য, প্রোগ্রাম দ্বারা একটি ডিভাইসকে অ্যান্ড্রয়েড-সামঞ্জস্যপূর্ণ হিসাবে চিহ্নিত করতে হবে।
আমি কিভাবে Android এ অবদান রাখতে পারি?
আপনি বাগ রিপোর্ট করতে পারেন, Android এর জন্য অ্যাপ লিখতে পারেন বা AOSP-এ সোর্স কোড অবদান রাখতে পারেন।
আমরা যে ধরনের কোড অবদান গ্রহণ করি তার সীমাবদ্ধতা রয়েছে। উদাহরণস্বরূপ, কেউ একটি বিকল্প অ্যাপ API অবদান রাখতে চাইতে পারে, যেমন একটি সম্পূর্ণ C++-ভিত্তিক পরিবেশ। আমরা সেই অবদান প্রত্যাখ্যান করব, কারণ অ্যান্ড্রয়েড অ্যাপ্লিকেশানগুলিকে ART রানটাইমে চালানোর জন্য উত্সাহিত করে৷ একইভাবে, আমরা GPL বা LGPL লাইব্রেরির মতো অবদান গ্রহণ করব না যা আমাদের লাইসেন্সিং লক্ষ্যগুলির সাথে সামঞ্জস্যপূর্ণ নয়।
আমরা সোর্স কোডে অবদান রাখতে আগ্রহীদেরকে যে কোনো কাজ শুরু করার আগে Android কমিউনিটিতে তালিকাভুক্ত চ্যানেলের মাধ্যমে আমাদের সাথে যোগাযোগ করতে উৎসাহিত করি। বিস্তারিত জানার জন্য, অবদান দেখুন।
আমি কিভাবে একজন অ্যান্ড্রয়েড কমিটর হতে পারি?
AOSP-এর আসলেই একজন কমিটরের ধারণা নেই। সমস্ত অবদান (Google কর্মীদের দ্বারা রচিত সেগুলি সহ) Gerrit নামে পরিচিত একটি ওয়েব-ভিত্তিক সিস্টেমের মাধ্যমে যায় যা Android ইঞ্জিনিয়ারিং প্রক্রিয়ার অংশ। এই সিস্টেমটি গিট সোর্স কোড ম্যানেজমেন্ট সিস্টেমের সাথে মিলে কাজ করে সোর্স কোড অবদান পরিষ্কারভাবে পরিচালনা করতে।
একজন মনোনীত অনুমোদনকারীকে জমা দেওয়া সমস্ত পরিবর্তন গ্রহণ করতে হবে। অনুমোদনকারীরা সাধারণত Google কর্মচারী, কিন্তু একই অনুমোদনকারীরা মূল নির্বিশেষে সমস্ত জমা দেওয়ার জন্য দায়ী৷
বিস্তারিত জানার জন্য, প্যাচ জমা দেওয়া দেখুন।