কাটলফিশ হলো একটি কনফিগারযোগ্য ভার্চুয়াল অ্যান্ড্রয়েড ডিভাইস যা দূরবর্তীভাবে (গুগল ক্লাউড ইঞ্জিনের মতো তৃতীয় পক্ষের ক্লাউড পরিষেবা ব্যবহার করে) এবং স্থানীয়ভাবে (লিনাক্স x86 এবং ARM64 মেশিনে) উভয় স্থানেই চালানো যায়।
কাটলফিশের লক্ষ্য
- কোড পরিবর্তন তৈরি ও যাচাই করার জন্য প্ল্যাটফর্ম এবং অ্যাপ ডেভেলপারকে ভৌত হার্ডওয়্যারের উপর নির্ভরশীলতা থেকে মুক্ত করুন।
- মূল ফ্রেমওয়ার্কের সাথে নিবিড় সামঞ্জস্য বজায় রেখে উচ্চ নির্ভুলতার উপর মনোযোগ দিয়ে একটি বাস্তব ডিভাইসের ফ্রেমওয়ার্ক-ভিত্তিক আচরণ অনুকরণ করুন।
- ২৮-এর পরবর্তী সকল এপিআই স্তর সমর্থন করে।
- ভৌত হার্ডওয়্যারের আচরণের সাথে সামঞ্জস্য রেখে, বিভিন্ন এপিআই স্তরে কার্যকারিতার একটি সামঞ্জস্যপূর্ণ মান প্রদান করুন।
স্কেল সক্ষম করুন:
- একই সাথে একাধিক ডিভাইস চালানোর সুবিধা প্রদান করুন।
- কম খরচে উচ্চ নির্ভুলতার সাথে যুগপৎ পরীক্ষা সম্পাদন সক্ষম করুন।
এমন একটি কনফিগারযোগ্য ডিভাইস সরবরাহ করুন যার মাধ্যমে ফর্ম ফ্যাক্টর, র্যাম, সিপিইউ ইত্যাদি সমন্বয় করা যায়।
কাটলফিশকে অন্যান্য ডিভাইসের সাথে তুলনা করুন
কাটলফিশ এবং অ্যান্ড্রয়েড এমুলেটর
অ্যান্ড্রয়েড এমুলেটরের সাথে এর অনেক সাদৃশ্য থাকলেও, কাটলফিশ অ্যান্ড্রয়েড ফ্রেমওয়ার্কের সাথে সম্পূর্ণ বিশ্বস্ততার নিশ্চয়তা দেয় (সেটি বিশুদ্ধ AOSP হোক বা আপনার নিজস্ব ট্রি-তে তৈরি কোনো কাস্টম ইমপ্লিমেন্টেশন হোক)। বাস্তব প্রয়োগের ক্ষেত্রে, এর অর্থ হলো, আপনি আশা করতে পারেন যে কাটলফিশ আপনার ইন্টারঅ্যাকশনগুলোতে ওএস লেভেলে ঠিক সেভাবেই সাড়া দেবে, যেভাবে একই কাস্টমাইজড বা বিশুদ্ধ অ্যান্ড্রয়েড ওএস সোর্স দিয়ে তৈরি একটি বাস্তব ফোন সাড়া দেয়।
অ্যান্ড্রয়েড এমুলেটরটি অ্যাপ ডেভেলপমেন্ট সহজ করার কথা মাথায় রেখে তৈরি করা হয়েছে এবং এতে অ্যান্ড্রয়েড অ্যাপ ডেভেলপারদের বিভিন্ন প্রয়োজন মেটানোর জন্য অনেক কার্যকরী হুক রয়েছে। আপনি যদি আপনার নিজস্ব অ্যান্ড্রয়েড ফ্রেমওয়ার্ক দিয়ে একটি এমুলেটর তৈরি করতে চান, তবে এটি কিছু চ্যালেঞ্জ তৈরি করতে পারে। আপনার যদি এমন একটি ভার্চুয়াল ডিভাইসের প্রয়োজন হয় যা আপনার কাস্টম প্ল্যাটফর্ম/ফ্রেমওয়ার্ক কোড বা টিপ-অফ-ট্রি অ্যান্ড্রয়েডের প্রতিনিধিত্ব করবে, তবে কাটলফিশ একটি আদর্শ ভার্চুয়াল বিকল্প। এটি AOSP ডেভেলপমেন্টের বর্তমান অবস্থাকে উপস্থাপন করার জন্য একটি প্রামাণ্য ডিভাইস।
কাটলফিশ এবং ভৌত যন্ত্র
একটি কাটলফিশ ভার্চুয়াল ডিভাইস এবং আপনার ফিজিক্যাল ডিভাইসের মধ্যে প্রধান পার্থক্যগুলো হলো হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL) পর্যায়ে, এবং সেইসাথে কাস্টম হার্ডওয়্যারের সাথে ইন্টারঅ্যাক্ট করে এমন যেকোনো সফটওয়্যারের ক্ষেত্রে। হার্ডওয়্যার-নির্দিষ্ট ইমপ্লিমেন্টেশনগুলো ছাড়া, কাটলফিশ এবং একটি ফিজিক্যাল ডিভাইসের মধ্যে আপনি কার্যগতভাবে সমতুল্য আচরণ আশা করতে পারেন।
কাটলফিশ কীভাবে সাহায্য করতে পারে?
ডিবাগিংয়ের জন্য ব্যবহৃত অন্য যেকোনো অ্যান্ড্রয়েড ডিভাইসের মতোই আপনি কাটলফিশের সাথে ইন্টারঅ্যাক্ট করতে পারবেন। এটি adb-এর মাধ্যমে নিজেকে একটি সাধারণ ডিভাইস হিসেবে রেজিস্টার করবে এবং আপনি রিমোট ডেস্কটপের মাধ্যমে একটি ফিজিক্যাল ডিভাইসের মতো এর সাথে ইন্টারঅ্যাক্ট করতে পারবেন। এর ব্যবহারের ক্ষেত্রগুলো ব্যাপক এবং এর মধ্যে অ্যাপ টেস্টিং, কাস্টম সিস্টেম বিল্ড টেস্টিং এবং আরও অনেক কিছু অন্তর্ভুক্ত থাকতে পারে।
যেহেতু কাটলফিশ সম্পূর্ণ ফ্রেমওয়ার্ক বিশ্বস্ততা বজায় রাখার চেষ্টা করে, তাই এটি আপনার ফ্রেমওয়ার্ক বা অ্যাপের কার্যকরী পরীক্ষার জন্য ব্যবহার করা যেতে পারে, যেখানে এমন কোনো ভৌত হার্ডওয়্যার নির্ভরতা নেই যা অনুকরণ করা অসম্ভব।
বর্তমানে পরীক্ষার জন্য কাটলফিশ সাধারণত কীভাবে ব্যবহৃত হয়?
পরীক্ষার জন্য কাটলফিশের কিছু সাধারণ প্রয়োগ হলো:
- সিটিএস
- কাঠামো সম্মতি
- ক্রমাগত ইন্টিগ্রেশন টেস্টিং
- কাস্টম টেস্ট স্যুট
আমি কি ক্লাউডে কাটলফিশ হোস্ট করতে পারি?
হ্যাঁ, কাটলফিশ স্বাভাবিকভাবেই গুগল ক্লাউড সমর্থন করে এবং অন্যান্য ক্লাউড প্ল্যাটফর্মের জন্য সমর্থন আনার পরিকল্পনা রয়েছে।
শুরু করুন
AOSP-ভিত্তিক Cuttlefish ইনস্ট্যান্স তৈরির নির্দেশনার জন্য, Use Cuttlefish দেখুন।