অ্যান্ড্রয়েড ব্যসিক টিউটোরিয়াল ৩ঃ AndroidManifest.xml ফাইল পরিচিতি

সালাম সবাইকে।
আশা করি ভালো আছেন।

তৃতীয় পর্বে স্বাগতম। যারা আগের দুই পর্ব দেখেননি, তারা দেখে নিতে পারেন।
আজকে আমরা খুব গুরত্বপুর্ন একটা ফাইল নিয়ে কথা বলবো। আপনার অ্যাপ্লিকেশন কারো ফোনে যাওয়ার আগেই যেই ফাইলের কাজ শুরু হয়। সেই ফাইলের নাম হচ্ছে AndroidManifest.xml । পরের পর্বে আশা করি এক্সএমএল শিখাবো। তখন আরো ক্লিয়ার হয়ে যাবে। আজকেও অনেক কিছু ক্লিয়ার করা পসিবল। চলুন দেখি সেটা কি।
প্রথমে একটা ছবি দেখি চলুন,

 

android manifest

এই ছবির সাথে আমরা সবাই পরিচিত। গুগল প্লে স্টোরে কোন অ্যাপ্লিকেশন ইনিস্টল করতে গেলে এটা আসে সাধারনত। এখানে বলা থাকে এই  অ্যাপ্লিকেশন আপনার ফোনে কি কি এক্সেস নিবে। ধরুন আপনি একটা অ্যাপ্লিকেশন বানালেন যেটা এসএমএস পড়তে পারে। বা এসএমএস এক্সেস নিতে পারে। সেটা করতে হলে আপনার অ্যাপে আগেই বলে দিতে হবে যে এই পার্মিশন লাগবে। দেয়ার পর ইউজার আপনার অ্যাপ্লিকশন ইনিস্টল করতে গেলে উপরের ছবির মত দেখবে। প্রশ্ন হচ্ছে এই কাজ করবেন কিভাবে? উত্তর হচ্ছে AndroidManifest.xml ফাইল! সেখানে জাস্ট একটা লাইন  <uses-permission android:name=”android.permission.READ_SMS”/> লিখে দিলেই হবে! মজা না?

ওকে, চলুন, পুরা ফাইল দেখে নেয়া যাক। তারপর আমি একে একে বলি দিবো কোন পার্ট কি কাজ করে,

 


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.androidlime.myapp"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />
 <uses-permission android:name="android.permission.READ_SMS"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

HTML এ যেমন ট্যাগ থাকেনা? আমাদের XMLও তেমন। ট্যাগ নিয়ে কাজ করে। সেই ট্যাগের ভেতরে কিছু কথা বলা থাকে, যেগুলাকে বলে অ্যাট্রিবিউট। সেগুলা নিয়ে ডিটেইল পরের লেখায় আসবো।

চলুন, এই ফাইলের পোস্টমর্টেম করি,

<?xml version="1.0" encoding="utf-8"?>

উপরের লাইনটা/ট্যাগ হচ্ছে, এটা যে একটা  XML ফাইল সেটা বলে দেয়া।

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.androidlime.myapp"
    android:versionCode="1"
    android:versionName="1.0" >

উপরের ট্যাগটা হচ্ছে এটা যে একটা AndroidManifest.xml ফাইল সেটা বলে দেয়া। তারপরে দেখতে পাচ্ছেন, packagepackage হচ্ছে যেখানে আমাদের সমস্ত জাভা ফাইল থাকে। সেটা এখানে বলা থাকবে।

পরের দুইটা লাইন ভয়াবহ গুরুত্বপুর্ন। আমরা দেখি অ্যাপ্লিশনের আপডেট আসে। আপডেট মানে নতুন ভার্শন। নতুন ভার্শন মানে কি জানেন? এই যে এই দুই লাইনে চেঞ্জ করা। আমার অ্যাপলিকেশন যখন প্রথম রিলিজ পাবে তখন লাইন দুইটা এমনি থাকবে। ধরেন, পরে আমি নতুন  একটা ফিচার এড করলাম। তারমানে নতুন একটা ভার্শন আসবে। তখন আমরা, android:versionCode=”2” করবো এবং android:versionName=”1.1″ এটা করে দিতে পারি। মজা না?

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />

উপরের ট্যাগটা হচ্ছে, ইউজার sdk এর। এর কাজ কি? অ্যান্ড্রুয়েডের সব ভার্শনের API কত তা বলা থাকে। android:minSdkVersion=”8″ এর মানে হচ্ছে আপনার অ্যাপ্লিকশন ব্যবহার করতে ইউজার এর ফোন এ মিনিমান এপিআই ৮ থাকতে হবে। যেটা হচ্ছে ফ্রোয়ো। যদি ৯ দিতেন তাহলে, জিঞ্জারব্রেড বা তার উপরের অ্যান্ড্রয়েড যারা ব্যবহার করে তারা ইনিস্টল করতে পারবে। android:targetSdkVersion=”21″  এর মানে হচ্ছে, এপিআই যদি ২১ হয় তাহলে আপনার অ্যাপ্লিকেশনের জন্য সবচেয়ে ভালো। API  যত উপরের দিকে গেছে তত নতুন নতুন ফিচার এড হয়েছে অ্যান্ড্রয়েডে। আপনার অ্যাপ্লিকেশনে কি ফিচার ব্যবহার করবেন, সেই ফিচার পেতে ইউজারের মিনিমান কোন অ্যান্ড্রয়েড থাকা লাগবে তার উপর ভিত্তি করে android:minSdkVersion সেট করবেন।

 

 <uses-permission android:name="android.permission.READ_SMS"/>

উপরের লাইনটা হচ্ছে পার্মিশন লাইন। এর মানে হচ্ছে আমার অ্যাপ্লিকশন ইনিস্টল করতে হলে SMS পড়ার পার্মিশন দিতেই হবে! পার্মিশন তখনই নিবেন যখন সেটা অ্যাপ্লিকেশনে ব্যবহার করবেন।

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

এটা হচ্ছে অ্যাপ্লিকেশন ট্যাগ। এটার ভেতরে থাকে Activity, Intent । আপাতত যেগুলা দেখছেন যেমন, android:icon=”@drawable/ic_launcher” হচ্ছে অ্যাপলিকেশনের আইকন। android:label=”@string/app_name” হচ্ছে নাম বা লেভেল। android:theme=”@style/AppTheme এটা হচ্ছে থিম। অনেক রকম থিম থাকে। যেমন লাইট, ডার্ক। তারমধ্যে এইটা একটা।

 

       
 <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >

 

এটা এক্টিভিটি ট্যাগ। আগে বলেছিলাম প্রতিটা জাভা ফাইল সাধারনত এক একটা এক্টিভিটি ফাইল। android:name=”.MainActivity” হচ্ছে আমার এক্টিভিটি ফাইলটার নাম। যদি আরেকটা জাভা ফাইল করি? এবং সেটা এক্টিভিটি হয়? তাহলে এমন করে AndroidManifest.xml ফাইলে সেটাও <activity ট্যাগে  লিখে দিবো।

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

ইন্টেন্ট এর কাজ হচ্ছে ডাটা নিয়ে যাওয়া আসা করা। আর এখানে লাইন দুইটা,    <action android:name=”android.intent.action.MAIN” />   ও   <category android:name=”android.intent.category.LAUNCHER” /> এর কাজ হচ্ছে অ্যাপ্লিকেশন খুললেই যেন MainActivity দেখায় সে কাজ করা। আগে  বলেছি একটা অ্যাপ্লিকেশনে অনেকগুলা এক্টিভিটি থাকতে পারে। অ্যাপ ওপেন করলে কোনটা শুরু হবে তা বলে দেয়া হয় এই দুই লাইনের মাধ্যমে।

<manifest> কিংবা <application> এই ট্যাগগুলা আমরা শুধু শুরু করেছি। পরের দিকে দেখুন, এগুলা শেষও করতে হয়। যথাক্রমে </manifest> ও </application> ট্যাগের মাধ্যমে।

 

আজ এই পর্যন্তই।

আশা করি এইটুকু বুঝতে সমস্যা নেই।

কোন প্রশ্ন থাকলে কমেন্টে করুন।

আরো পড়ুনঃ অ্যান্ড্রয়েড এ্যাপ্লিকেশন মনেটাইজেশান (রেভেনিউ জেনেরেট) এর পথ সমূহ

Mosharrof Rubel

আমাকে ফেসবুকে পাবেন এখানেঃ মোশাররফ রুবেল

You may also like...

Leave a Reply