ChromeOS-এর জন্য তৈরি করুন

ChromeOS ডিভাইস, যেমন Chromebook, Google Play Store এবং Android অ্যাপগুলিকে সমর্থন করে। এই ডকুমেন্টটি ধরে নেয় যে আপনার কাছে ফোন বা ট্যাবলেটের জন্য ডিজাইন করা একটি বিদ্যমান Android অ্যাপ আছে যা আপনি Chromebook-এর জন্য অপ্টিমাইজ করতে চান। Android অ্যাপ তৈরির মূল বিষয়গুলি জানতে, আপনার প্রথম Android অ্যাপ তৈরি করুন দেখুন।

আপনার অ্যাপের ম্যানিফেস্ট ফাইল আপডেট করুন

শুরু করার জন্য, Chromebook এবং Android চালিত অন্যান্য ডিভাইসের মধ্যে কিছু গুরুত্বপূর্ণ হার্ডওয়্যার এবং সফ্টওয়্যার পার্থক্য বিবেচনা করে আপনার ম্যানিফেস্ট ফাইলটি আপডেট করুন।

ChromeOS সংস্করণ M53 থেকে, যে সকল অ্যান্ড্রয়েড অ্যাপের জন্য স্পষ্টভাবে android.hardware.touchscreen বৈশিষ্ট্যের প্রয়োজন হয় না, সেগুলি android.hardware.faketouch বৈশিষ্ট্য সমর্থনকারী ChromeOS ডিভাইসেও কাজ করে। তবে, আপনার অ্যাপটিকে সমস্ত Chromebook-এ কাজ করতে সাহায্য করার জন্য, আপনার ম্যানিফেস্ট ফাইলটি আপডেট করুন যাতে android.hardware.touchscreen বৈশিষ্ট্যের প্রয়োজন না হয়, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে।

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          ... >
    <!-- Some Chromebooks don't support touch. Although not essential,
         it's a good idea to explicitly include this declaration. -->
    <uses-feature android:name="android.hardware.touchscreen"
                  android:required="false" />
</manifest>

বিভিন্ন হার্ডওয়্যার ডিভাইসে বিভিন্ন ধরণের সেন্সর থাকে এবং Chromebook গুলিতে GPS এবং অ্যাক্সিলোমিটারের মতো অ্যান্ড্রয়েড হ্যান্ডহেল্ড ডিভাইসে পাওয়া সমস্ত সেন্সর নাও থাকতে পারে। তবে, কিছু ক্ষেত্রে সেন্সরের কার্যকারিতা অন্যভাবে প্রদান করা হয়। উদাহরণস্বরূপ, Chromebook গুলিতে GPS সেন্সর নাও থাকতে পারে, তবে তারা Wi-Fi সংযোগের উপর ভিত্তি করে অবস্থানের ডেটা সরবরাহ করে। Android প্ল্যাটফর্ম কোন সেন্সরগুলিকে সমর্থন করে সে সম্পর্কে আরও জানতে সেন্সরগুলির ওভারভিউ দেখুন।

সেন্সরের প্রাপ্যতা নির্বিশেষে যদি আপনি চান যে আপনার অ্যাপটি Chromebook-এ চলবে, তাহলে আপনার ম্যানিফেস্ট ফাইলটি আপডেট করুন যাতে কোনও সেন্সরের প্রয়োজন না হয়।

কিছু সফ্টওয়্যার বৈশিষ্ট্য Chromebook গুলিতে সমর্থিত নয়। উদাহরণস্বরূপ, কাস্টম IME, অ্যাপ উইজেট, লাইভ ওয়ালপেপার এবং অ্যাপ লঞ্চার সরবরাহকারী অ্যাপগুলি সমর্থিত নয় এবং Chromebook গুলিতে ইনস্টল করা যাবে না। Chromebook গুলিতে সমর্থিত নয় এমন সফ্টওয়্যার বৈশিষ্ট্যগুলির সম্পূর্ণ তালিকার জন্য, অসঙ্গত সফ্টওয়্যার বৈশিষ্ট্যগুলি দেখুন।

আপনার টার্গেট SDK আপডেট করুন

অ্যান্ড্রয়েড প্ল্যাটফর্মের সমস্ত উন্নতির সুবিধা নিতে আপনার অ্যাপের targetSdkVersion অ্যাট্রিবিউটটি সর্বশেষ API স্তরে আপডেট করুন। বিভিন্ন সংস্করণ জুড়ে অ্যান্ড্রয়েড প্ল্যাটফর্মের উন্নতিগুলি পর্যালোচনা করুন।

নেটওয়ার্কিং প্রয়োজনীয়তা পরীক্ষা করুন

Chromebook গুলি সম্পূর্ণ Android OS একটি কন্টেইনারে চালায়, যা Docker বা LXC এর মতো। এর অর্থ হল Android সিস্টেমের LAN ইন্টারফেসে সরাসরি অ্যাক্সেস পায় না। পরিবর্তে, IPv4 ট্র্যাফিক নেটওয়ার্ক অ্যাড্রেস ট্রান্সলেশন (NAT) এর একটি অভ্যন্তরীণ স্তরের মধ্য দিয়ে যায় এবং IPv6 ইউনিকাস্ট ট্র্যাফিক একটি অতিরিক্ত হপের মাধ্যমে রাউটেড হয়।

অ্যান্ড্রয়েড অ্যাপ থেকে ইন্টারনেটে আউটবাউন্ড ইউনিকাস্ট সংযোগগুলি বেশিরভাগ ক্ষেত্রেই যেমন আছে তেমন কাজ করে। সাধারণত, ইনবাউন্ড সংযোগগুলি ব্লক করা হয়। অ্যান্ড্রয়েড থেকে মাল্টিকাস্ট বা ব্রডকাস্ট প্যাকেটগুলি ফায়ারওয়ালের মাধ্যমে ল্যানে ফরোয়ার্ড করা হয় না।

মাল্টিকাস্ট সীমাবদ্ধতার ব্যতিক্রম হিসেবে, ChromeOS এমন একটি পরিষেবা চালায় যা Android এবং LAN ইন্টারফেসের মধ্যে mDNS ট্র্যাফিক ফরোয়ার্ড করে, তাই LAN বিভাগে অন্যান্য ডিভাইস আবিষ্কারের জন্য স্ট্যান্ডার্ড নেটওয়ার্ক পরিষেবা আবিষ্কার API গুলি প্রস্তাবিত উপায়। LAN-এ একটি ডিভাইস খুঁজে পাওয়ার পরে, একটি অ্যান্ড্রয়েড অ্যাপ স্ট্যান্ডার্ড TCP বা UDP ইউনিকাস্ট সকেট ব্যবহার করে এর সাথে যোগাযোগ করতে পারে।

অ্যান্ড্রয়েড থেকে উৎপন্ন IPv4 সংযোগগুলি ChromeOS হোস্টের IPv4 ঠিকানা ব্যবহার করে। অভ্যন্তরীণভাবে, অ্যান্ড্রয়েড অ্যাপটি নেটওয়ার্ক ইন্টারফেসে নির্ধারিত একটি ব্যক্তিগত IPv4 ঠিকানা দেখতে পায়। অ্যান্ড্রয়েড থেকে উৎপন্ন IPv6 সংযোগগুলি ChromeOS হোস্টের থেকে আলাদা ঠিকানা ব্যবহার করে, কারণ অ্যান্ড্রয়েড কন্টেইনারের একটি ডেডিকেটেড পাবলিক IPv6 ঠিকানা থাকে।

ক্লাউড এবং স্থানীয় স্টোরেজ কার্যকরভাবে ব্যবহার করুন

Chromebook ব্যবহারকারীদের সহজেই এক ডিভাইস থেকে অন্য ডিভাইসে স্থানান্তর করতে দেয়। যদি কোনও ব্যবহারকারী একটি Chromebook ব্যবহার বন্ধ করে অন্যটি ব্যবহার শুরু করেন, তবে তাদের কেবল সাইন ইন করতে হবে এবং তাদের সমস্ত অ্যাপ প্রদর্শিত হবে।

এই বৈশিষ্ট্যের কারণে, ডিভাইস জুড়ে সিঙ্কিং সক্ষম করতে আপনার অ্যাপের ডেটা ক্লাউডে ব্যাকআপ করুন। তবে, আপনার অ্যাপটি স্বাভাবিকভাবে কাজ করার জন্য ইন্টারনেট সংযোগের উপর নির্ভর করবেন না। পরিবর্তে, ডিভাইসটি অফলাইনে থাকাকালীন ব্যবহারকারীর কাজ স্থানীয়ভাবে সংরক্ষণ করুন এবং ডিভাইসটি আবার অনলাইনে আসার পরে ক্লাউডে সিঙ্ক করুন।

Chromebook গুলি অনেক লোকের সাথেও শেয়ার করা যেতে পারে, যেমন স্কুলে। যেহেতু স্থানীয় স্টোরেজ অসীম নয়, তাই সম্পূর্ণ অ্যাকাউন্টগুলি - তাদের স্টোরেজ সহ - যেকোনো সময়ে ডিভাইস থেকে সরানো যেতে পারে। শিক্ষাগত সেটিংসের জন্য, এই পরিস্থিতিটি মনে রাখা একটি ভাল ধারণা।

আপনার অ্যাপের জন্য নতুন টেস্ট কেস তৈরি করুন

আপনার অ্যাপের জন্য টেস্ট কেস তৈরি করতে, প্রথমে নিশ্চিত করুন যে আপনি সঠিক ম্যানিফেস্ট ফ্ল্যাগগুলি নির্দিষ্ট করেছেন। বিশেষ করে, screenOrientation কে unspecified এ সেট করার কথা বিবেচনা করুন। যদি আপনি একটি ল্যান্ডস্কেপ ওরিয়েন্টেশন নির্দিষ্ট করতে চান, তাহলে ট্যাবলেটে অভিজ্ঞতা সর্বোত্তম কিনা তা নিশ্চিত করতে sensorLandscape ব্যবহার করার কথা বিবেচনা করুন।

যদি আপনার ডেস্কটপ পরিবেশের জন্য বিশেষ আকার বা ওরিয়েন্টেশনের প্রয়োজন হয়, তাহলে আকার বা ওরিয়েন্টেশনের ইঙ্গিত হিসেবে মেটা ট্যাগ যোগ করার কথা বিবেচনা করুন। ফোনে আকার এবং ওরিয়েন্টেশন অন্তর্ভুক্ত করতে, পরিবর্তে লেআউট defaultHeight , defaultWidth , অথবা minHeight বৈশিষ্ট্যগুলি নির্দিষ্ট করুন।

যদি আপনি নির্দিষ্ট ডিভাইস বিভাগের জন্য নির্দিষ্ট ইনপুট ডিভাইস হ্যান্ডলিংয়ে আগ্রহী হন, তাহলে ইনপুট সামঞ্জস্যতা মোড নিষ্ক্রিয় করতে android.hardware.type.pc নির্দিষ্ট করুন।

আপনি যদি কোনও ধরণের নেটওয়ার্কিং ব্যবহার করেন, তাহলে নিশ্চিত করুন যে সংযোগ সমস্যা সমাধানের পরে অথবা ডিভাইসটি স্লিপ মোড থেকে জেগে ওঠার পরে অ্যাপটি নেটওয়ার্কের সাথে পুনরায় সংযোগ করতে পারে।

আমরা Chrome OS-এ Android অ্যাপের জন্য টেস্ট কেসের তালিকা পরীক্ষা করার পরামর্শ দিচ্ছি, যা আপনি আপনার টেস্ট প্ল্যানে ব্যবহার করতে পারেন। টেস্ট কেসগুলি সাধারণ পরিস্থিতিগুলি কভার করে যার জন্য Android অ্যাপগুলি ChromeOS ডিভাইসে চালানোর আশা করা হলে তাদের প্রস্তুত থাকা উচিত।

মাল্টি-উইন্ডো এবং ওরিয়েন্টেশন পরিবর্তন

ChromeOS এর মাল্টি-উইন্ডো পরিবেশ স্টেট পারসিস্টেন্স এবং রিকল সমস্যাগুলিকে আরও স্পষ্ট করে তুলতে পারে। উপযুক্ত হলে আপনার স্টেট সংরক্ষণ এবং পুনরুদ্ধার করতে ViewModel ব্যবহার করুন।

অবস্থা পরীক্ষা করার জন্য, আপনার অ্যাপটিকে কিছু সময়ের জন্য মিনিমাইজ করুন, আরেকটি রিসোর্স-ইনটেনসিভ প্রক্রিয়া শুরু করুন এবং আপনার অ্যাপটি পুনরুদ্ধার করুন যাতে এটি নিশ্চিত হয় যে এটি আপনার রেখে যাওয়া অবস্থায় ফিরে আসে।

পূর্ণ স্ক্রিন কী (F4) টিপে, ম্যাক্সিমাইজ করে এবং পুনরুদ্ধার করে উইন্ডো রিসাইজিং পরীক্ষা করুন। বিনামূল্যে রিসাইজিং পরীক্ষা করতে, প্রথমে ডেভেলপার বিকল্পগুলিতে এটি সক্ষম করুন, এবং তারপরে পরীক্ষা করুন যে আপনার অ্যাপটি ক্র্যাশ না করে মসৃণভাবে আকার পরিবর্তন করছে।

যদি আপনার ChromeOS ডিভাইস এটি সমর্থন করে, তাহলে সবকিছু প্রত্যাশা অনুযায়ী কাজ করছে কিনা তা পরীক্ষা করার জন্য ল্যাপটপ থেকে ট্যাবলেট মোডে পরিবর্তন করুন। ওরিয়েন্টেশন পরিবর্তনগুলি পরীক্ষা করার জন্য ট্যাবলেট মোডে একবার ডিভাইসটি ঘোরান, তারপর ল্যাপটপ মোডে ফিরে যান। এই ধাপটি কয়েকবার পুনরাবৃত্তি করুন।

UI উপাদান বা অবস্থান-ভিত্তিক টাচ ইনপুট অফসেট করে উপরের বারটি আপনার অ্যাপটিকে ভেঙে ফেলছে না তা নিশ্চিত করুন। ChromeOS ডিভাইসের জন্য, নিশ্চিত করুন যে আপনার অ্যাপটি স্ট্যাটাস বার এলাকায় গুরুত্বপূর্ণ তথ্য রাখছে না।

আপনি যদি ক্যামেরা বা অন্য কোনও হার্ডওয়্যার বৈশিষ্ট্য ব্যবহার করেন, যেমন কলম, তাহলে নিশ্চিত করুন যে এটি পূর্বে বর্ণিত উইন্ডো এবং ডিভাইস পরিবর্তনগুলি সম্পাদন করার সময় সঠিকভাবে আচরণ করছে।