Sunday, March 18, 2012

অ্যানড্রয়েড নিয়ে পোস্টমর্টেম

অ্যানড্রয়েড আজকাল অনেক জনপ্রিয় একটি নাম। এ সম্পর্কে জানার আগ্রহ সবার। কী এই অ্যানড্রয়েড? কেনই বা এত আলোচনা একে ঘীরে? বিশেষ করে সারা পৃথিবীতে স্মার্টফোনের বিপুল বিস্তারের ফলে, অ্যানড্রয়েড নামটি আরো বেশি মানুষের মুখে মুখে চলে এসেছে। এমনও হয়তো দেখা যাবে, একজন সাধারণ মানুষ কিংবা বাড়ির বুড়ো দাদা/দাদী এসে জিজ্ঞেস করছেন, আচ্ছা ‌অ্যানড্রয়েড আবার কী! এখানে আমরা চেষ্টা করবো কিছু বেসিক ধারণা দেয়ার। যারা ইতোমধ্যেই অ্যানড্রয়েড নিয়ে কাজ করছেন, তাদের জন্য হয়তো এলেখাগুলো খুব একটা কাজে দিবে না। তবে যারা কিছুটা জানতে চান, এবং ধীরে ধীরে এর দুনিয়ার প্রবেশ করতে চান, তারা হয়তো বেশ উপকৃত হবেন। আমরা ধীরে ধীরে অনেকগুলো আর্টিকেলের মাধ্যমে অ্যানড্রয়েড পরিচিত তুলে ধরার চেষ্টা করবো।

অ্যানড্রয়েড(Android) বর্তমান সময়ের সবচেয়ে জনপ্রিয় মোবাইল অপারেটিং সিস্টেম। এর নামকরণ করা হয়েছে “অ্যানড্রয়েড” নামক একটি রোবট-এর নাম অনুসারে, যা দেখতে অনেকটা মানুষের মত (উপরের ছবিটি দেখলে বুঝা যাবে)। লিনাক্স-এর উপর তৈরী করা (ওপেন লিনাক্স কার্নেল) এই অপারেটিং সিস্টেম তৈরী করেছে ‘গুগল’। এতে ব্যবহার করা হয়েছে জাভা প্রোগ্রামিং ল্যাঙ্গুয়েজ।
যদিও ২০০৫ সাল থেকে অ্যানড্রয়েড সফলভাবে কাজ করতে শুরু করে, তবুও এটা অফিশিয়ালী বাজারে ঘোষণা করা হয় ৫ নভেম্বর, ২০০৭। তার পরপরেই এসডিকে (সফটওয়্যার ডেভেলপম্যান্ট কিট) বাজারে ছাড়া হয়। আর ১ বছর পর ২০০৮ সালের নভেম্বরে প্রথম অ্যানড্রয়েড মোবাইল ফোন "জি-১" বাজারে ছাড়ে এইচটিসি/টি-মোবাইল। এই মাসেই পুরো সোর্স কোড ওপেন করে দেয়া হয়।
সম্প্রতি বের হওয়া অধিকাংশ জনপ্রিয় স্মার্টফোন অ্যানড্রয়েড অপারেটিং সিস্টেম সাপোর্ট করে। যেহেতু অ্যানড্রয়েড ওপেনসোর্স লিনাক্সে তৈরি, ফলে ডেভেলপার প্রয়োজনে এতে নানা পরির্বতন করে নিতে পারবে।
নীচে অ্যানড্রয়েড অপারেটিং সিস্টেমের একটি আর্কিটেকচার দেয়া হলো-

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


2222222222222222222222222222222222222222222222222222222222222222222222222


যানড্রয়েড (Android) একটি জনপ্রিয় মোবাইল অপারেটিং সিস্টেম। যারা এ সম্পর্কে জানতে চান,তাদের জন্য আমরা চেষ্টা করবো এ সম্পর্কে কিছু বেসিক ধারণা দেয়ার। যারা ইতোমধ্যেই অ্যানড্রয়েড নিয়ে কাজ করছেন, তাদের জন্য হয়তো এ লেখাগুলো খুব একটা কাজে দিবে না। তবে যারা কিছুটা জানতে চান, এবং ধীরে ধীরে এর দুনিয়ার প্রবেশ করতে চান, তারা হয়তো বেশ উপকৃত হবেন। আমরা ধীরে ধীরে অনেকগুলো আর্টিকেলের মাধ্যমে অ্যানড্রয়েড পরিচিতি তুলে ধরার চেষ্টা করবো। গত পর্বে আসুন জানি: অ্যানড্রয়েড-এ আমরা জানিয়েছি অ্যানড্রয়েডের প্রাথমিক পরিচিতি। অ্যানড্রয়েড অপারেটিং সিস্টেমের একটি আর্কিটেকচার দেখিয়েছি আমরা। আপনারা দেখেছেন, অ্যানড্রয়েড কার্নেল, লাইব্রেরী, অ্যানড্রয়েড রান-টাইম, অ্যাপ্লিকেশন ফ্রেমওয়ার্ক, অ্যাপ্লিকেশন এই বিষয়গুলো নিয়ে অ্যানড্রয়েডের অবকাঠামো তৈরি হয়েছে। আজ আমরা জানবো অ্যানড্রয়েড কার্নেল সম্পর্কে।
যারা এই লেখাটি পড়ছেন, তাদের সবাই কম বেশি কার্নেল শব্দটা শুনেছেন। এবং না শোনাটাই বরং অবাক হবার মতো ব্যাপার হবে। আর অ্যানড্রয়েড বা লিনাক্স শুনলে প্রথমেই কার্নেলের কথা চলে আসে। কিন্তু কার্নেল তো লিনাক্স-এর একার সম্পত্তি নয়। যে কোনও অপারেটিং সিস্টেম যেমন উইন্ডোজ, ম্যাক, লিনাক্স - সবারই কার্নেল রয়েছে। মূলত কার্নেল হার্ডওয়্যারকে নিয়ন্ত্রণ করে। এজন্য তার অনেক অনেক সোর্স কোড দরকার হয়। সোর্স কোডে অনেক অপশন থাকে । যখন হার্ডওয়্যারকে কোন কাজে লাগাতে হয় তখন সফটওয়্যার কার্নেলের মাধ্যমে তাকে নির্দেশ পাঠায়। কার্নেল সফটওয়্যার এবং হার্ডওয়্যারের মধ্যে সংযোগ করে এবং আপনার দেয়া নির্দিষ্ট নির্দেশটি পৌঁছে দেয়।

ছবি: অ্যানড্রয়েড সেন্ট্রাল
ফলে আপনি যে কোন বাটন প্রেস করে সেই সুবিধা বা বৈশিষ্ট্যটি ব্যবহার করতে পারেন। মূলত কার্নেল এক পাশ থেকে ইনপুট নিয়ে অপর পাশে সেটাকে আউটপুট হিসেবে পাঠায়। স্ক্রিনের ঔজ্জ্বল্য কেমন হবে, ভলিউম লেভেল কি হবে, ব্লুটুথ অন করা, ইন্টারনেটে গেমস খেলা এমনকি ডিসপ্লেতে এই মুহূর্তে কি চলছে সেটাও নিয়ন্ত্রিত হয় কার্নেল দ্বারা!
উদাহরণ স্বরূপ, আপনি যখন আপনার মোবাইলের সার্চ বাটনটিতে চাপ দেন, তখন মূলত সফটওয়্যারকে সার্চ অপশন খোলার জন্য নির্দেশ দেন। এভাবে কোন বাটন চাপলে কি করতে হবে সবকিছু আপনার সফটওয়্যারে লিখা থাকে, আর তাই আপনার বাটন চাপার ফলে চালু হয়ে যায় অপশনটি। আপনি যখন এই নির্দেশ দেন, তখন সফটওয়্যার থেকে সেই নির্দেশ অনুযায়ী কাজ সম্পাদনে সাহায্য করে কার্নেল।
কিছু লজিক এবং কোড ব্যবহার করে এগুলো করা হয়। ভাবতে পারেন, যদি কার্নেল তথ্য এবং নির্দেশ গ্রহণ করতে এবং পাঠাতে না পারত, তাহলে একটি হার্ডওয়্যারের প্রতিটি ক্ষুদ্র অংশের জন্য আলাদা আলাদা কোড লিখতে হত! ডেভেলপারদের এখন যা করতে হয় তা হল, শুধুমাত্র অ্যানড্রয়েড যেন কার্নেলের সাথে ‘কম্যুনিকেট’ বা যোগাযোগ করতে পারে সে ব্যবস্থা করা।
অ্যানড্রয়েডে হার্ডওয়্যার এবং সফটওয়্যারের মাঝে 'অ্যাবসট্রাকশন' বা অদৃশ্য লেয়ার হিসেবে কাজ করে কার্নেল। কার্নেলের মাঝে বিভিন্ন রকম ড্রাইভার এবং পাওয়ার ম্যানেজমেন্ট থাকে। ড্রাইভারের মধ্যে আছ ডিসপ্লে, ক্যামেরা, ফ্ল্যাশ মেমোরি , বাইন্ডার, কী প্যাড, ওয়াইফাই, অডিও ইত্যাদি। অ্যানড্রয়েড ডিভাইসে লিনাক্স ২.৬ ব্যবহার করা হয় কোর সিস্টেম সার্ভিসের জন্য; যেমন নিরাপত্তা, মেমোরি ব্যবস্থাপনা, প্রক্রিয়া ব্যবস্থাপনা, নেটওয়ার্ক স্ট্যাক, ড্রাইভার মডেল ইত্যাদি। তবে অ্যানড্রয়েড জিঞ্জারব্রেড এর জন্য যে কার্নেল ব্যবহার করা হয়, সেটি অ্যানড্রয়েড আইসক্রিম স্যান্ডউইচে কাজ করবে না। অর্থাৎ ভিন্ন ভিন্ন ভার্সনের জন্য কার্নেল ভিন্ন ভিন্ন হবে।
অ্যানড্রয়েড ডিভাইসে লিনাক্স কার্নেল ব্যবহার করা হলেও অন্যান্য লিনাক্স ভিত্তিক অপারেটিং সিস্টেম থেকে এটি বেশ আলাদা। এখানে অ্যানড্রয়েডের জন্য অনেক কোড বিল্ট-ইন করে দেয়া আছে। গুগলের অ্যানড্রয়েড কার্নেল ব্যবস্থাপনা দল এজন্য কাজ করে যাচ্ছে। গুগল যে কাজটি করেছে তাহলো, পুরো কার্নেলটিকে মোবাইলের জন উপযোগী করে সাজিয়েছে, যেন আমরা সহজেই ওটার উপর অ্যাপ তৈরি করতে পারি। হার্ডওয়্যারের কঠিন জিনিসগুলোকে আমাদের কাছ থেকে লুকিয়ে ফেলেছে, এবং অল্প কমান্ড দিয়েই সেই হার্ডওয়্যারগুলোকে দিয়ে অনেক কাজ করিয়ে নেয়া যাচ্ছে।
গুগল কিন্তু কার্নেল তৈরি করেই খালাস। সে কিন্তু কোন ড্রাইভার তৈরি করে না। যখন নতুন ডিভাইস আসে, সেটার জন্য যদি ডিভাইস ড্রাইভার লিখতে হয়, সেটা সেই প্রস্তুতকারী প্রতিষ্ঠানকেই লিখতে হয়। ফলে, সকল হার্ডওয়্যার প্রস্তুতকারী প্রতিষ্ঠান অ্যানড্রয়েডের জন্য তাদের ড্রাইভার তৈরি এবং পরীক্ষা করার পর বাজারে ছাড়ে। অর্থাৎ, আপনি যদি একটি কার্নেলের জন্য ড্রাইভার লেখেন, সেটা পরের ভার্সনের কার্নেলে কাজ না করার সম্ভাবনাই বেশি। আবার নতুন করে ওখানেই লিখতে হবে। সেজন্য নতুন ডিভাইস বাজারে আসতে এবং নতুন করে কোনও অপারেটিং সিস্টেম লোড করতে অনেক সময় লেগে যায়।
তবে আমাদের মতো মানুষ, কিংবা সাধারণ ডেভেলপারদেরকে কার্নেলে হাত দেবার প্রয়োজন পরে না। অবশ্য কেউ যদি সেই লেভেলে কাজ করতে চান সেটা আলাদা কথা। গুগল অসংখ্য এপিআই (API) দিয়ে দিয়েছে। সেগুলো দিয়েই আমাদের কাজ চলার কথা।
২০০৫ সালে গুগল অ্যানড্রয়েড ইনক ডট নামের একটি প্রতিষ্ঠানকে অধিগ্রহণের মাধ্যমে এই ওএসের মালিক হয়ে যায়; এবং অ্যানড্রয়েডের বিভিন্ন রিলিজ দিতে থাকে। মূলত কার্নেলের ভিন্নতার জন্যই তাদের বিভিন্ন রিলিজ। এগুলোর আবার নামও দেয়া হয়েছে। এখানে উল্লেখযোগ্য রিলিজগুলোর নাম দেয়া হলো-
অ্যানড্রয়েড ২.৩ - জিঞ্জারব্যান্ড ইউজার ইন্টারফেসকে আরো উন্নত করা হয়েছে, সফট কীবোর্ড উন্নত করা হয়েছে, গেমিং পারফরমেন্স উন্নত করা হয়েছে, ভয়েস ওভার আই.পির জন্য সিপ (SIP) যোগ করা হয়েছে, এবং নিয়ার ফিল্ড কমিউনিকেশন (NFC) যোগ করা হয়েছে।
অ্যানড্রয়েড ৩.০ - হানিকম্ব এটা মূলত ট্যাবলেট (বড় পর্দা) সাপোর্ট দেয়ার জন্য তৈরি করা হয়েছে। এবং সাথে আরো অনেক ইউজার ইন্টারফেস দেয়া হয়েছে। সাথে রয়েছে মাল্টিকোর প্রসেসর সাপোর্ট, নিরাপত্তা ইত্যাদি। ২০১১ সালে ফেব্রুয়ারি মাসে মটোরলার জুম ট্যাবলেট এই অ্যানড্রয়েড নিয়ে বাজারে আসে।
অ্যানড্রয়েড ৩.১ - হানিকম্ব (মাইনর রিলিজ - মে, ২০১১) - বাড়তি ইনপুট ডিভাইসের সাপোর্ট দেয়া হয়েছে। তাছাড়া ক্যামেরা থেকে সরাসরি ইউএসবি পোর্টে ছবি/ভিডিও আপলোড করারও ব্যবস্থা যোগ করা হয়েছে।
অ্যানড্রয়েড ৩.২ - হানিকম্ব (মাইনর রিলিজ - জুলাই, ২০১১) - এসডি কার্ড থেকে সরাসরি ডাটা পড়ার ক্ষমতা যোগ করা হয়েছে। হুয়াওয়ের মিডিয়াপ্যাড সর্বপ্রথম এই ভার্সনটি দিয়ে ৭ ইঞ্চি ট্যাবলেট বাজারে ছাড়ে।
অ্যানড্রয়েড ৪.০ - আইসক্রিম স্যান্ড উইচ রিলিজ তারিখ: ১৯ অক্টোবর ২০১১। এর ভেতর হানিকম্বের সকল ফিচার দেয়া হয়েছে, এবং সাথে নতুন যুক্ত করা হয়েছে - ফেসিয়াল রিকগনিশন আনলক, নেটওয়ার্ক ডাটা ইউজেস মনিটরিং, উন্নত ফটোগ্রাফি, অফলাইন ই-মেইল সার্চিং ইত্যাদি।
সফটওয়‌্যার প্রকৌশলীরা জানেন যে মাইনর রিলিজের জন্য কোন নাম পরিবর্তন করা হয় না। আর তাই হানিকম্ব এর ক্ষেত্রে গুগল শুধু সংস্করণ নাম্বার ৩.১ এবং ৩.২ ব্যবহার করেছে। ভার্সন ৪.০-এ এসে নাম পরিবর্তন করা হয়েছে।
আপাতত এটুকুই থাকুক। এর ভেতর আরো কোনও আপডেট পেলে, এই পেজটি আপডেট করে দিব। প্রস্তুতি নেই পরের চ্যাপ্টার লেখার। সাথেই থাকুন। :-)
Source

No comments:

Post a Comment

Intex Aqua Life II

Intex Aqua Life II   View Photos  PhoneIntex Aqua Life IIManufacturer Intex Status Available Available in IndiaYes Price (Indian Rupees)...