Android app Development Bangla Tutorial: ভিত্তি এবং কিছু কথা

Author Topic: Android app Development Bangla Tutorial: ভিত্তি এবং কিছু কথা  (Read 1131 times)

Offline Khan Ehsanul Hoque

  • Hero Member
  • *****
  • Posts: 549
  • Test
    • View Profile
Android app Development Bangla Tutorial: ভিত্তি এবং কিছু কথা


বেশির ভাগ আন্ড্রয়েড ডিভাসগুলোই টাচস্ক্রিন ইউজার ইন্টারফেস (UI) ব্যবহার করে অ্যাপ গুলোর সাথে ইউজারের interact করার বাবস্থা করে। টাচস্ক্রিন এর মধ্যে আমরা swiping, tapping, pinching ইত্যাদি ভাবে বিভিন্ন টাচ একশন (Touch action) করতে পারি। Android এ একটি ভারচুয়াল কিবোর্ড (Virtual keyboard) আছে যাতে আমরা টেক্সট ইনপুট দিতে পারি। অ্যানড্রয়েড আমরা গেম কন্ট্রোলার ডিভাইস, যান্ত্রিক কিবোর্ড (Mechanical keyboard/ Physical keyboard) ব্যবহার ব্যবহার করতে পারি (Bluetooth/USB) এর মাধ্যমে।

আন্ড্রয়েড হোম স্ক্রিনে (Android home screen) অ্যাপ আইকন সহ বিভিন্ন পেজ থাকতে পারে যার মাধ্যমে আমরা অ্যাপ চালু করতে পারি। হোম স্কিনে উইজেট Widgets) গুলোও থাকে যাতে আমরা বিভিন্ন অটো আপডেটিং কন্টেন্ট যেমন ইমেইল, আবহাওয়া ইত্যাদি দেখাতে পারি। আন্ড্রয়েড এ আমরা বিভিন্ন মাল্টিমিডিয়া কন্টেন্ট যেমন মিউজিক, এনিমেশন, ভিডিও ইত্যাদি প্লে করতে পারি। উপরের ছবিটির প্রথমটি আন্ড্রয়েড হোম স্ক্রিন, মাঝেরটিতে মিউজিক প্লে হচ্ছে এবং ডানেরটিতে আমরা Widget দেখতে পাচ্ছি। স্ক্রিনের সবার উপরে একটি স্টেটাস বার আছে যেখানে আমরা ডিভাইস রিলেটেড বিভিন্ন ইনফরমেশন যেমন কানেক্সটিভিটি, টাইম, ব্যাটারি ইত্যাদির তথ্য দেখতে পাই। আন্ড্রয়েড হোম স্ক্রিনকে আমরা আগে পেছনে করতে পারি swipe করার মাধ্যমে।


আন্ড্রয়েডকে এমনভাবে ডিজাইন করা হয়েছে যা ইউজারের ইনপুটের সাথে সাথে রেসপন্স বা সাড়া দিতে পারে। টাচ ইন্টারফেসের সাথে সাথে আন্ড্রয়েড এ ভাইব্রেশন করার ক্ষমতা দেয়া আছে যা হেপটিক ফিডব্যাক (Haptic feedback) করতে সক্ষম।

অভ্যন্তরীণ যন্ত্রাংশ যেমন gyroscopes এবং proximity sensors গুলোও বিভিন্ন ইউজার একশনের জন্য সাড়া দিতে ব্যবহার করা হয়। এগুলো স্ক্রিনের ঘুর্নন বা (Rotation) ডিটেক্ট করতে পারে। আমরা রেসিং গেম গুলোতে এই ঘুর্ননকে গাড়ির স্টিয়ারিং হুইল এর মতো ব্যবহার করতে পারি।

অ্যানড্রয়েড প্লাটফর্ম লিনাক্স কার্নেল (Linux kernel) এর উপর ভিত্তি করে বানানো। প্রাথমিক ভাবে অ্যানড্রয়েডকে টাচস্ক্রিন (Touch screen) ডিভাইস এর জন্য ডিজাইন করা হয়েছে। যেহেতু অ্যানড্রয়েড ডিভাইস গুলো ব্যাটারি পাওয়ারের উপর নির্ভর করে তাই একে এমন করে ডিজাইন করা হয়েছে যাতে ব্যাটারি পাওয়ার ব্যবহার করার পরিমাণ মিনিমাম থাকে।

Android app development Bangla tutorial
অ্যানড্রয়েড সফটওয়্যার ডেভেলপমেট (Android software development kit) কিট বা SDK যার মাধ্যমে আমরা আমরা অ্যাপ ডেভেলপমেন্ট করবো। SDK তে থাকে একটি ডিবাগার, সফটওয়্যার লাইব্রেরিগুলো, একটি ডিভাইস এমুলেটর (AVD), ডকুমেন্টেশন, নমুনা কোড, টিউটোরিয়াল ইত্যাদি। আমরা এই টুল গুলো ব্যবহার করে এমন একটি অ্যাপ তৈরি করবো যা দেখতে হবে চমৎকার এবং ডিভাইস সমূহের হার্ডওয়্যার সক্ষমতা ব্যবহার করবে।

SDK ব্যবহার করে অ্যাপ ডেভেলপমেন্টের জন্য আমরা জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজ ব্যবহার করবো। এবং Extensible Markup Language বা XML ব্যবহার করবো ডাটা রিসোর্স বর্ননা (Data resource definition) করার জন্য। আমরা জাভাতে কোড করার পড় একটি অ্যাপ তৈরি করবো যা ফোনে এবং ট্যাবলেট ডিভাইস উভয়টাতেই চলবে। আমাদের UI কোন ধরনের ডিভাইসে কেমন হবে তা XML রিসোর্সের মাধ্যমে বলে দিতে পারি। এর জন্য আমরা ট্যাবলেট এবং ফোনের জন্য আলাদা ভাবে XML তৈরি করবো। অ্যানড্রয়েড সিস্টেম রানটাইমে সঠিক ডিজাইন প্রয়োগ করবে।

দ্রুত অ্যানড্রয়েড অ্যাপ ডেভেলপমেন্ট করার জন্য গুগলের একটি Java Integrated Development Environment বা IDE আছে। যার নাম অ্যানড্রয়েড স্টুডিও। যার মাধ্যমে আমরা Development, Debugging, Packaging ইত্যাদি সুবিধা পাবো। আমরা অ্যানড্রয়েড স্টুডিও (Android studio) ব্যবহার করে যেকোনো ধরনের অ্যাপ বানাতে পারবো। AVD ব্যবহার করে করে আমরা কম্পিউটারেই ভারচুয়াল ডিভাইস সিমুলেট করতে পারবো। আমরা ইচ্ছে করলে বাস্তব ডিভাইসেও আমাদের তৈরি করা অ্যাপ পরীক্ষা করে দেখতে পারবো।

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

অ্যাপ: কোর সিস্টেম অ্যাপ গুলোর পাশাপাশি আমাদের বানানো অ্যাপ গুলো এই লেভেলে থাকবে।
অ্যানড্রয়েড API ফ্রেমওয়ার্ক: অ্যানড্রয়েড সকল ফিচার গুলো Application Programming Interface বা API এর মাধেমে আনরা ব্যবহার করতে পারি। অ্যাপ বানানোর জন্য এই API এর বিস্তারিত আমাদের জানার দরকার নেই। তবুও আরও জানার জন্য নিচের API গুলো পরতে পারেন।
View System এই API দিয়ে আমরা অ্যাপ এর UI বা User interface যেমন লিস্ট, বাটন এবং মেনু তৈরি করি।
Resource Manager কে দিয়ে আমরা বিভিন্ন রিসোর্স অ্যাক্সেস করতে পারি যেমন স্ট্রিং, গ্রাফিক্স, লেআউট ইত্যাদি।
Notification Manager দিয়ে আমরা স্ট্যাটাস বারে কাস্টম নোটিফিকেশন দেখাতে পারি।
Activity Manager একটি অ্যাপ এর লাইফসাইকেল মেনেজ করে।
Content Providers অন্য কোনও অ্যাপ থেকে ডেটা নিতে ব্যবহার করা হয়।
এখানে সকল framework APIs আছে যা সিস্টেম অ্যাপ ব্যবহার করে।

লাইব্রেরি এবং অ্যানড্রয়েড রানটাইম: প্রতিটি অ্যাপ অ্যানড্রয়েড রানটাইমে তাদের নিজস্ব প্রসেস এবং ইন্সটেন্সে (Instance) এ রান করে। যার জন্য কম র‍্যামের ডিভাইস গুলোতে একধিক ভার্চুয়াল মেশিন রান করানো যায়। অ্যানড্রয়েডে একটি কোর রানটাইম লাইব্রেরি রয়েছে যার মাধ্যমে আমরা জাভা ৮ এর কিছু ফিচার সহ জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজের প্রায় সমস্ত ফাংশনালিটির অ্যাক্সেস পেতে পারি। অনেক কোর কম্পোনেন্ট এবং সার্ভিস নেটিভ কোড ব্যবহার করে যার জন্য C এবং C++ লিখা লাইব্রেরি দরকার পরে। এই নেটিভ লাইব্রেরি গুলোও জাভা API ফ্রেমওয়ার্ক এর মাধ্যমে ব্যবহার করা যাবে।

Hardware Abstraction Layer : ডিভাইস এর হার্ডওয়ারকে জাভা Higher লেভেল API ফ্রেমওয়ার্ক দিয়ে অ্যাক্সেস করার জন্য এর লেয়ার আমাদেরকে ইন্টারফেস প্রদান করে। HAL এ একাধিক লাইব্রেরি মডিউল থাকে যাদের প্রতিটি আলদা আলদা হার্ডওয়্যারের জন্য কোড ইমপ্লিমেন্ট করেছে

লিনাক্স কার্নেল: অ্যানড্রয়েডের ভিত্তি হলো লিনাক্স কার্নেল। উপরের সমস্ত লেয়ার থ্রেডিং (Threading) , লো লেভেল মেমোরি ম্যানেজমেন্টের (Low level memory management) জন্য লিনাক্স কার্নেলের উপর নির্ভর করে। লিনাক্স কার্নেল এর জন্য আমরা অ্যানড্রয়েডে গুরুত্বপূর্ণ সিকিউরিটি ফিচার গুলোর সুবিধা নিতে পারি, এবং ডিভাইস প্রস্তুতকারিরা সহজে ডিভাইস ড্রাইভার (Device driver) তৈরি করতে পারেন।

Source: https://shorturl.at/dhrvN
« Last Edit: August 08, 2023, 05:24:15 PM by Badshah Mamun »
Khan Ehsanul Hoque

Daffodil International University
01847334702
fd@daffodilvarsity.edu.bd
www.daffodilvarsity.edu.bd