ChromeOS-এর জন্য অ্যাপ তৈরি করা শুরু করুন

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

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

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

ChromeOS সংস্করণ M53 অনুসারে, সমস্ত অ্যান্ড্রয়েড অ্যাপ যেগুলির জন্য স্পষ্টভাবে android.hardware.touchscreen বৈশিষ্ট্যের প্রয়োজন হয় না সেগুলিও ChromeOS ডিভাইসগুলিতে কাজ করে যা android.hardware.faketouch বৈশিষ্ট্য সমর্থন করে৷ যাইহোক, আপনার অ্যাপটি সমস্ত 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-এ Android হ্যান্ডহেল্ড ডিভাইসে পাওয়া সমস্ত সেন্সর নাও থাকতে পারে, যেমন GPS এবং অ্যাক্সিলোমিটার৷ যাইহোক, কিছু ক্ষেত্রে একটি সেন্সরের কার্যকারিতা অন্য উপায়ে প্রদান করা হয়। উদাহরণস্বরূপ, Chromebook-এ GPS সেন্সর নাও থাকতে পারে, কিন্তু তারা Wi-Fi সংযোগের উপর ভিত্তি করে অবস্থান ডেটা প্রদান করে। অ্যান্ড্রয়েড প্ল্যাটফর্ম সমর্থন করে সেন্সর সম্পর্কে আরও জানতে সেন্সর ওভারভিউ দেখুন।

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

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

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

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

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

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

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

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

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

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

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

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

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

NDK লাইব্রেরি আপডেট করুন

যদি আপনার অ্যাপ অ্যান্ড্রয়েড NDK লাইব্রেরি ব্যবহার করে এবং এর টার্গেট SDK সংস্করণ 23 বা তার বেশি হয়, তাহলে নিশ্চিত করুন যে আপনার NDK লাইব্রেরির ARM এবং x86 উভয় সংস্করণ থেকে পাঠ্য স্থানান্তর সরিয়ে দেওয়া হয়েছে, কারণ সেগুলি Android 6.0 (API স্তর 23) এ সামঞ্জস্যপূর্ণ নয়। এবং উচ্চতর আপনার NDK লাইব্রেরিতে পাঠ্য স্থানান্তর রেখে, আপনি Chromebook-এর সাথে সামঞ্জস্যপূর্ণ ত্রুটির কারণ হতে পারেন, বিশেষ করে যখন x86 আর্কিটেকচার ব্যবহার করে এমন একটি ডিভাইসে চলছে।

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

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

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

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

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

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

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

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

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

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

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

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

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