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

অ্যান্ড্রয়েড সফটওয়্যার ডেভেলপমেন্ট হলো অ্যান্ড্রয়েড অপারেটিং সিস্টেম চালিত যন্ত্রের জন্যে নতুন অ্যাপলিকেশন নির্মান প্রক্রিয়া। গুগল জানায় যে অ্যান্ড্রয়েড সফটওয়্যার ডেভেলপমেন্ট কিট (এসডিকে) ব্যবহার করে অ্যান্ড্রয়েড অ্যাপ কোটলিন, জাভা, এবং সি++ ভাষা ব্যবহার করা লেখা যাবে। তবে এ কাজে অন্য প্রোগ্রামিং ভাষাও ব্যবহার করা যায়। গো, জাভাস্ক্রিপ্ট, সি, সি++ বা অ্যাসেম্বলির মত নন-জেভিএম ভাষার ক্ষেত্রে জেভিএম ভাষা কোডের সাহায্যের প্রয়োজন হয়, যেগুলো সীমাবদ্ধ এপিআই সমর্থনসহ টুলসমূহ দ্বারা সরবরাহ করা হয়। কিছু ভাষা/প্রোগ্রামিং টুল ক্রস-প্ল্যাটফর্ম অ্যাপ সমর্থনের অনুমোদন দেয়, যেগুলো ব্যবহার করে একই সাথে অ্যান্ড্রয়েড, আইওএস দুটোর জন্যেই অ্যাপলিকেশন নির্মান করা অনেক সহজ হয়ে যায়। ২০০৮ সালে এসডিকে মুক্তি পাওয়ার পর তৃতীয় পক্ষের হাতিয়ারসমূহ, ডেভেলপমেন্ট পরিবেশসমূহ এবং ভাষা সমর্থন ক্রমশ উদ্ভূত ও বিকশিত হচ্ছে। অ্যান্ড্রয়েড সফটওয়্যার ডেভেলপমেন্ট কিট (এসডিকে)তে বিস্তৃত ডেভেলপমেন্ট টুলসেট রয়েছে, যার মধ্যে আছে ডিবাগার, লাইব্রেরিসমূহ, কিউইএমইউ-ভিত্তিক একটি হ্যান্ডসেট ইমুলেটর, ডকুমেন্টশন, নমুনা কোড টিউটোরিয়াল। অ্যান্ড্রয়েড এসডিকে সমর্থিত প্ল্যাটফর্ম সমূহের মধ্যে আছে গ্নু/লিনাক্স, ম্যাকওএস ১০.৫.৮+, এবং মাইক্রোসফট উইন্ডোজ। মার্চ ২০১৫-এর হিসাব অনুযায়ী[হালনাগাদ], এসডিকে যদিও অ্যান্ড্রয়েড অপারেটিং সিস্টেমে নেই, কিন্তু বিশেষায়িত অ্যান্ড্রয়েড অ্যাপলিকেশন ব্যবহার করে সেখানেও সফটওয়্যার উন্নয়ন সম্ভব। ২০১৪ সালের শেষ পর্যন্ত অ্যান্ড্রয়েড ডেভেলপমেন্ট টুল (এডিটি) প্লাগ-ইন ব্যবহার করে এক্লিপ্স ছিলো প্রাতিষ্ঠানিকভাবে সমর্থিত আইডিই। তবে ইন্টেলিজে আইডিয়া আইডিই আউট-অব-দ্যা বক্স পরিপুর্ণভাবে অ্যান্ড্রয়েড উন্নয়ন সমর্থন করে, প্লাগ-ইনের মাধ্যমে নেটবিনস আইডিইও অ্যান্ড্রয়েড সফটওয়্যার উন্নয়ন সমর্থন করে। ২০১৫ মোতাবেক অ্যান্ড্রয়েড স্টুডিও গুগলের প্রাতিষ্ঠানিক আইডিই হওয়ার পর এডিটির জন্যে সমর্থন রহিত করা হয়। তবে জাভা ও এক্সএমএল ফাইল সম্পাদনার জন্যে যেকোন লেখা সম্পাদক ব্যবহার করা যায়, তারপর কমান্ড-লাইন টুল সমূহ ব্যবহার করে অ্যান্ড্রয়েড অ্যাপলিকেশন নির্মান, উন্নয়ন ও ডিবাগ করা যায়। এ টুলগুলো ব্যবহার করে কম্পিউটারের সাথে সংযুক্ত অ্যান্ড্রয়েড যন্ত্র বা ইমুলটেরও নিয়ন্ত্রণ করা যায়। অ্যান্ড্রয়েড অ্যাপলিকেশন .apk এ প্যাকেজ ও /data/app ফোল্ডারের অধীনে সংরক্ষণ করা হয়। এপিকে প্যাকেজে .dex ফাইল, রিসোর্স ফাইল ইত্যাদি রয়েছে। অ্যান্ড্রয়েড এসডিকে প্ল্যাটফর্ম হাতিয়ার সমূহ পৃথকভাবে পূর্ণ এসডিকের ডাউনলোডযোগ্য সাবসেট, যা adb ও fastboot কমান্ড-লাইন টুল দ্বারা গঠিত। অ্যান্ড্রয়েড ডিবাগ ব্রিজ (সংরেক্ষেপে এডিবি, ইংরেজি: Android Debug Bridge/adb হলো সংযুক্ত অ্যান্ড্রয়েড যন্ত্রে কমান্ড চালানোর জন্যে ব্যবহৃত একটি হাতিয়ার। adbd ডেইমন যন্ত্রটিতে চলে এবং adb ক্লায়েন্ট বহুবিধ প্রেরিত কমান্ডে একটি ব্যাকগ্রাউন্ড সার্ভার চালু করে। টেক্সট ভিত্তিক ব্যবহারকারী ইন্টারফেসের সাথে সাথে, অনেক গ্রাফিক্যাল ব্যবহারকারী ইন্টারফেস বিকল্পও রয়েছে এডিবে নিয়ন্ত্রণের জন্যে। কমান্ড প্রেরণের পদ্ধিতি সাধারণত: adb [-d|-e|-s <serialNumber>] <command> যেখানে -d হলো একক ইউএসবি-সংযুক্ত যন্ত্রকে বিশিষ্ট করা জন্যে, -e হলো কম্পিউটারে একক চালিত অ্যান্ড্রয়েড ইমুলেটরের জন্যে, -s হলো ইউএসবি-যুক্ত যন্ত্রকে এর সতন্ত্র ক্রমিক নাম্বার দিয়ে বিশিষ্ট করার জন্যে। ফাস্টবুট হলো হোস্ট কম্পিউটার থেকে ইউএসবি সংযোগ থেকে প্রাথমিকভাবে ফ্ল্যাশ ফাইলব্যবস্থাকে পরিবর্তন করার জন্যে এসডিকে প্যাকেজে অন্তর্ভুক্ত থাকা একটি বৈশিষ্ট্যসূচক প্রটোকল। এর জন্যে যন্ত্রকে বুট লোডার অথবা সেকেন্ডারি প্রোগ্রাম লোডার মুডে চালু করার প্রয়োজন পড়ে, যেখানে শুধুমাত্র একেবারে প্রাথমিক হার্ডওয়্যার প্রারম্ভ সম্পাদিত হয়। যন্ত্রটিতে নিজে নিজে প্রটোকল সক্রিয় করার পর, এটি ইউএসবির মাধ্যমে কমান্ড লাইন ব্যবহার করে নির্দিষ্ট কমান্ড সেট গ্রহণ করবে। সবচেয়ে ব্যবহৃত ফাস্টবুট কমান্ডসমূহের মধ্যে রয়েছে: flash – হোস্ট কম্পিউটারে সংরক্ষিত বাইনারি ইমেজ দিয়ে একটি পার্টিশন রিরাইট করে erase – নির্দিষ্ট একটি পার্টিশন মুছে ফেলে reboot – যন্ত্রটিকে হয় প্রধান অপারেটিং সিস্টেম, অথবা পুনরায় বুটলোডারে রিবুট করে। devices – ক্রম সংখ্যা সহ হোস্ট কম্পিউটারের সাথে সংযুক্ত সকল যন্ত্রের তালিকা প্রদর্শন করে format – একটি নির্দিষ্ট পার্টিশন ফরম্যাট করে ন্যাটিভ কোডে কম্পাইল করা যায়। এনডিকে সি/সি++ কম্পাইল করার জন্যে ক্ল্যাং ব্যবহার করে। গ্নু কম্পাইলার কালেকশন এনডিকে আর১৭-এ অন্তর্ভুক্ত হলেও, ২০১৮ সালে আর১৮ তে তা সরিয়ে ফেলা হয়। অ্যান্ড্রয়েড ডেভেলপার্স অ্যাপলিকেশন মূলতত্ত্ব। "এসডিকে টুল | অ্যান্ড্রয়েড ডেভেলপার"। Developer.android.com। সংগ্রহের তারিখ ২৫ এপ্রিল ২০১৮।  "টুলের ভূমিকা"। অ্যান্ড্রয়েড ডেভেলপার্স। ২১ জুলাই ২০০৯।  appfour। "এআইডিই- আইডিই ফর অ্যান্ড্রয়েড জাভা সি++ - গুগল প্লে স্টোরে অ্যান্ড্রয়েড অ্যাপ"। google.com।  gesturedevelop। "জাভা এডিটর - গুগল প্লে স্টোরে অ্যান্ড্রয়েড অ্যাপ"। google.com।  Tanapro GmbH, Tom Arn। "জাভাআইডিইড্রয়েড - গুগল প্লে স্টোরে অ্যান্ড্রয়েড অ্যাপ"। google.com।  "NBAndroid Plugin"। ১৭ অক্টোবর ২০১৮ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২৬ ডিসেম্বর ২০১৮।  Ed, Burnette (১০ জুলাই ২০১০)। Hello, Android: Introducing Google's Mobile Development Platform (৩য় সংস্করণ)। Pragmatic Bookshelf। আইএসবিএন 978-1-934356-56-2। ১৫ ডিসেম্বর ২০১৮ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ৬ ফেব্রুয়ারি ২০১৯।  Ableson, Frank; Sen, Robi; King, Chris (জানুয়ারি ২০১১)। Android in Action, Second Edition (২য় সংস্করণ)। Manning। আইএসবিএন 978-1-935182-72-6।  Conder, Shane; Darcey, Lauren (২৪ জুলাই ২০১২)। Android Wireless Application Development Volume II: Advanced Topics (৩য় সংস্করণ)। Addison-Wesley Professional। আইএসবিএন 0-321-81384-7।  Murphy, Mark (২৬ জুন ২০০৯)। Beginning Android (১ম সংস্করণ)। Apress। আইএসবিএন 1-4302-2419-3।  Meier, Reto (মার্চ ২০১০)। Professional Android 2 Application Development (১ম সংস্করণ)। Wrox Press। আইএসবিএন 978-0-470-56552-0। ১৯ ফেব্রুয়ারি ২০১৯ তারিখে মূল থেকে আর্কাইভ করা। সংগ্রহের তারিখ ২৬ ডিসেম্বর ২০১৮।