অ্যান্ড্রয়েড সফটওয়্যার উন্নয়ন

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

প্রাতিষ্ঠানিক উন্নয়ন হাতিয়ার

অ্যান্ড্রয়েড এসডিকে 

অ্যান্ড্রয়েড সফটওয়্যার ডেভেলপমেন্ট কিট (এসডিকে)তে বিস্তৃত ডেভেলপমেন্ট টুলসেট রয়েছে, যার মধ্যে আছে ডিবাগার, লাইব্রেরিসমূহ, কিউইএমইউ-ভিত্তিক একটি হ্যান্ডসেট ইমুলেটর, ডকুমেন্টশন, নমুনা কোড টিউটোরিয়াল। অ্যান্ড্রয়েড এসডিকে সমর্থিত প্ল্যাটফর্ম সমূহের মধ্যে আছে গ্নু/লিনাক্স, ম্যাকওএস ১০.৫.৮+, এবং মাইক্রোসফট উইন্ডোজ। , এসডিকে যদিও অ্যান্ড্রয়েড অপারেটিং সিস্টেমে নেই, কিন্তু বিশেষায়িত অ্যান্ড্রয়েড অ্যাপলিকেশন ব্যবহার করে সেখানেও সফটওয়্যার উন্নয়ন সম্ভব। 
২০১৪ সালের শেষ পর্যন্ত অ্যান্ড্রয়েড ডেভেলপমেন্ট টুল (এডিটি) প্লাগ-ইন ব্যবহার করে এক্লিপ্স ছিলো প্রাতিষ্ঠানিকভাবে সমর্থিত আইডিই। তবে ইন্টেলিজে আইডিয়া আইডিই আউট-অব-দ্যা বক্স পরিপুর্ণভাবে অ্যান্ড্রয়েড উন্নয়ন সমর্থন করে, প্লাগ-ইনের মাধ্যমে নেটবিনস আইডিইও অ্যান্ড্রয়েড সফটওয়্যার উন্নয়ন সমর্থন করে।

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

অ্যান্ড্রয়েড অ্যাপলিকেশন .apk এ প্যাকেজ ও /data/app ফোল্ডারের অধীনে সংরক্ষণ করা হয়। এপিকে প্যাকেজে .dex ফাইল, রিসোর্স ফাইল ইত্যাদি রয়েছে।

অ্যান্ড্রয়েড এসডিকে প্ল্যাটফর্ম হাতিয়ার 
অ্যান্ড্রয়েড এসডিকে প্ল্যাটফর্ম হাতিয়ার সমূহ পৃথকভাবে পূর্ণ এসডিকের ডাউনলোডযোগ্য সাবসেট, যা adb ও fastboot কমান্ড-লাইন টুল দ্বারা গঠিত।

অ্যান্ড্রয়েড ডিবাগ ব্রিজ(এডিবি) 
অ্যান্ড্রয়েড ডিবাগ ব্রিজ (সংরেক্ষেপে এডিবি,  হলো সংযুক্ত অ্যান্ড্রয়েড যন্ত্রে কমান্ড চালানোর জন্যে ব্যবহৃত একটি হাতিয়ার। adbd ডেইমন যন্ত্রটিতে চলে এবং adb ক্লায়েন্ট বহুবিধ প্রেরিত কমান্ডে একটি ব্যাকগ্রাউন্ড সার্ভার চালু করে। টেক্সট ভিত্তিক ব্যবহারকারী ইন্টারফেসের সাথে সাথে, অনেক গ্রাফিক্যাল ব্যবহারকারী ইন্টারফেস বিকল্পও রয়েছে এডিবে নিয়ন্ত্রণের জন্যে।

কমান্ড প্রেরণের পদ্ধিতি সাধারণত:
 adb [-d|-e|-s <serialNumber>] <command>
 যেখানে -d হলো একক ইউএসবি-সংযুক্ত যন্ত্রকে বিশিষ্ট করা জন্যে,
       -e হলো কম্পিউটারে একক চালিত অ্যান্ড্রয়েড ইমুলেটরের জন্যে,
       -s হলো ইউএসবি-যুক্ত যন্ত্রকে এর সতন্ত্র ক্রমিক নাম্বার দিয়ে বিশিষ্ট করার জন্যে।

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

যন্ত্রটিতে নিজে নিজে প্রটোকল সক্রিয় করার পর, এটি ইউএসবির মাধ্যমে কমান্ড লাইন ব্যবহার করে নির্দিষ্ট কমান্ড সেট গ্রহণ করবে। সবচেয়ে ব্যবহৃত ফাস্টবুট কমান্ডসমূহের মধ্যে রয়েছে:

 flash হোস্ট কম্পিউটারে সংরক্ষিত বাইনারি ইমেজ দিয়ে একটি পার্টিশন রিরাইট করে
 erase নির্দিষ্ট একটি পার্টিশন মুছে ফেলে
 reboot যন্ত্রটিকে হয় প্রধান অপারেটিং সিস্টেম, অথবা পুনরায় বুটলোডারে রিবুট করে।
 devices ক্রম সংখ্যা সহ হোস্ট কম্পিউটারের সাথে সংযুক্ত সকল যন্ত্রের তালিকা প্রদর্শন করে
 format একটি নির্দিষ্ট পার্টিশন ফরম্যাট করে

অ্যান্ড্রয়েড এনডিকে 

ন্যাটিভ কোডে কম্পাইল করা যায়। এনডিকে সি/সি++ কম্পাইল করার জন্যে ক্ল্যাং ব্যবহার করে। গ্নু কম্পাইলার কালেকশন এনডিকে আর১৭-এ অন্তর্ভুক্ত হলেও, ২০১৮ সালে আর১৮ তে তা সরিয়ে ফেলা হয়।

তথ্যসূত্র

গ্রন্থপঞ্জি 

 
 
 
 
 

অ্যান্ড্রয়েড (অপারেটিং সিস্টেম) সফটওয়্যার উন্নয়ন
মুক্ত মোবাইল সফটওয়্যার
স্মার্টফোন
মোবাইল লিনাক্স
অ্যান্ড্রয়েড (অপারেটিং সিস্টেম)
এম্বেডেড লিনাক্স
অ্যান্ড্রয়েড (অপারেটিং সিস্টেম) সফটওয়্যার