অ্যাপ্লিকেশানগুলিকে Android 9-এ স্থানান্তর করা হচ্ছে

অ্যান্ড্রয়েড 9 (এপিআই লেভেল 28) নতুন বৈশিষ্ট্য এবং এপিআইগুলি প্রবর্তন করে যা আপনি আপনার অ্যাপগুলিতে সুবিধা নিতে পারেন, সেইসাথে নতুন আচরণের পরিবর্তনগুলি। এই দস্তাবেজটি আপনাকে দুটি মূল পর্যায় জুড়ে আপনার অ্যাপ্লিকেশানগুলিকে Android 9 এ স্থানান্তরিত করার পদক্ষেপগুলির একটি ওভারভিউ দেয়:

  1. Android 9 এর সাথে মৌলিক সামঞ্জস্যতা নিশ্চিত করুন

    আপনার বিদ্যমান অ্যাপটি প্ল্যাটফর্মের নতুন সংস্করণে সম্পূর্ণরূপে কার্যকরী কিনা তা যাচাই করুন। এই পর্যায়ে, আপনি নতুন API ব্যবহার করবেন না বা আপনার অ্যাপের targetSdkVersion পরিবর্তন করবেন না, তবে সামান্য পরিবর্তনের প্রয়োজন হতে পারে।

  2. নতুন প্ল্যাটফর্মকে টার্গেট করুন, Android 9 SDK এর সাথে কম্পাইল করুন এবং Android 9 বৈশিষ্ট্যগুলির সাথে তৈরি করুন৷

    আপনি যখন প্ল্যাটফর্মের নতুন বৈশিষ্ট্যগুলির সুবিধা নিতে প্রস্তুত হন, তখন আপনার targetSdkVersion 28 -এ আপডেট করুন, অ্যাপটি প্রত্যাশিতভাবে কাজ করে চলেছে তা যাচাই করুন এবং তারপরে নতুন API ব্যবহার করা শুরু করুন।

Android 9 চালিত একটি ডিভাইস প্রস্তুত করুন

আপনার যদি একটি সামঞ্জস্যপূর্ণ ডিভাইস থাকে, তাহলে প্রস্তুতকারকের কাছ থেকে আপনার ডিভাইসের জন্য Android 9 সিস্টেম চিত্রটি পান; পিক্সেল ডিভাইসের ফ্যাক্টরি ইমেজের জন্য এখানে ক্লিক করুন। একটি সিস্টেম ইমেজ ফ্ল্যাশ করার জন্য সাধারণ নির্দেশাবলী এখানে আছে।

এছাড়াও আপনি অ্যান্ড্রয়েড এমুলেটরের জন্য অ্যান্ড্রয়েড 9 সিস্টেম ইমেজ ডাউনলোড করতে পারেন। এটি SDK ম্যানেজারে Android API 28- এর অধীনে Google APIs Intel x86 Atom System Image হিসাবে তালিকাভুক্ত।

দ্রষ্টব্য: অ্যান্ড্রয়েড 9 এমুলেটর সিস্টেম চিত্রটি অ্যান্ড্রয়েড স্টুডিও 3.1 এবং উচ্চতর সংস্করণে ডাউনলোডের জন্য উপলব্ধ; অ্যান্ড্রয়েড স্টুডিও 3.2 সর্বাধিক সামঞ্জস্য প্রদান করে। আরও তথ্যের জন্য, Android 9 SDK পান দেখুন।

Android 9 এর সাথে সামঞ্জস্যতা নিশ্চিত করুন

এখানে উদ্দেশ্য হল আপনার বিদ্যমান অ্যাপটি অ্যান্ড্রয়েড 9-এর মতোই কাজ করে তা নিশ্চিত করা। কারণ কিছু প্ল্যাটফর্ম পরিবর্তন আপনার অ্যাপের আচরণকে প্রভাবিত করতে পারে, কিছু সামঞ্জস্যের প্রয়োজন হতে পারে, কিন্তু আপনাকে নতুন API ব্যবহার করতে বা আপনার targetSdkVersion পরিবর্তন করতে হবে না। .

ধাপে ধাপে Android 9 এর সাথে সামঞ্জস্যতা নিশ্চিত করুন

সামঞ্জস্য পরীক্ষা সঞ্চালন

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

যাইহোক, পরীক্ষার আরেকটি দিক রয়েছে: Android 9 Android প্ল্যাটফর্মে এমন পরিবর্তনগুলি প্রবর্তন করে যা আপনার অ্যাপের আচরণকে প্রভাবিত করতে পারে বা অ্যাপটিকে সম্পূর্ণভাবে ভেঙে দিতে পারে, এমনকি যদি আপনি আপনার targetSdkVersion পরিবর্তন না করেন। এই কারণে, এটি গুরুত্বপূর্ণ যে আপনি সারণি 1-এর মূল পরিবর্তনগুলি পর্যালোচনা করুন, এবং পরিবর্তনগুলিকে সামঞ্জস্য করার জন্য আপনি প্রয়োগ করা যেকোনো সংশোধন পরীক্ষা করুন৷

সারণী 1. মূল পরিবর্তনগুলি যা Android 9 ডিভাইসে চলমান সমস্ত অ্যাপকে প্রভাবিত করে৷

পরিবর্তন সারাংশ
নন-SDK ইন্টারফেসে সীমাবদ্ধতা নির্দিষ্ট নন-SDK ইন্টারফেসে অ্যাক্সেস এখন ব্লক করা হয়েছে, অ্যাক্সেস সরাসরি হোক, JNI-এর মাধ্যমে বা প্রতিফলনের মাধ্যমে। সীমাবদ্ধ ইন্টারফেস অ্যাক্সেস করার প্রচেষ্টা NoSuchFieldException এবং NoSuchMethodException এর মতো ত্রুটি তৈরি করে। বিশদ বিবরণের জন্য নন-এসডিকে ইন্টারফেসে সীমাবদ্ধতা দেখুন।
ক্রিপ্টো প্রদানকারীর অপসারণ Android 9 থেকে শুরু করে, Crypto JCA প্রদানকারীকে সরিয়ে দেওয়া হয়েছে। SecureRandom.getInstance("SHA1PRNG", "Crypto") এ করা কল NoSuchProviderException নিক্ষেপ করবে।
কঠোর UTF-8 ডিকোডার Android 9-এ, জাভা ভাষার জন্য UTF-8 ডিকোডার কঠোর এবং ইউনিকোড মান অনুসরণ করে।
নিষ্ক্রিয় অ্যাপ্লিকেশানগুলির জন্য ক্যামেরা, মাইক্রোফোন এবং সেন্সরগুলিতে অ্যাক্সেস ব্লক করা হয়েছে৷ অ্যাপগুলি নিষ্ক্রিয় থাকা অবস্থায়, তারা আর ক্যামেরা, মাইক্রোফোন বা সেন্সর ম্যানেজার সেন্সর অ্যাক্সেস করতে পারে না।

অ্যান্ড্রয়েড 9 এ চলমান সমস্ত অ্যাপের আচরণ পরিবর্তনের আরও বিস্তৃত তালিকার জন্য, আচরণ পরিবর্তনের নথিটি দেখুন।

আপনার লক্ষ্য সংস্করণ আপডেট করুন এবং Android P বৈশিষ্ট্যগুলি ব্যবহার করুন৷

এই বিভাগটি ব্যাখ্যা করে কিভাবে Android 9-এর জন্য সম্পূর্ণ সমর্থন সক্ষম করতে হয় আপনার targetSdkVersion 28-এ আপডেট করে এবং Android 9-এ উপলব্ধ নতুন বৈশিষ্ট্য যোগ করে।

আপনাকে নতুন API গুলি অফার করার পাশাপাশি, আপনি যখন আপনার targetSdkVersion 28-এ আপডেট করেন তখন Android 9 কিছু আচরণের পরিবর্তন আনে। কারণ কিছু আচরণের পরিবর্তনে ভাঙন এড়াতে কোড পরিবর্তনের প্রয়োজন হতে পারে, আপনি প্রথমে বুঝতে হবে যে আপনি যখন targetSdkVersion পরিবর্তন করবেন তখন আপনার অ্যাপ কীভাবে প্রভাবিত হতে পারে অ্যান্ড্রয়েড 9 টার্গেট করা অ্যাপগুলির জন্য সমস্ত আচরণ পরিবর্তন পর্যালোচনা করা।

দ্রষ্টব্য: প্ল্যাটফর্ম সামঞ্জস্যতা নিশ্চিত করার জন্য উপরে বর্ণিত পদক্ষেপগুলি আপনার অ্যাপটিকে Android 9-এ লক্ষ্য করার পূর্বশর্ত, তাই প্রথমে সেই পদক্ষেপগুলি সম্পূর্ণ করতে ভুলবেন না।

লক্ষ্য সংস্করণ আপডেট করুন এবং ধাপে ধাপে Android 9 বৈশিষ্ট্যগুলি ব্যবহার করুন৷

Android 9 SDK পান

আপনি Android স্টুডিও 3.1 বা উচ্চতর ব্যবহার করে Android 9 এর সাথে আপনার অ্যাপ তৈরি করতে SDK প্যাকেজগুলি পেতে পারেন। আপনার যদি এখনও Android 9-এ নতুন বৈশিষ্ট্যগুলির প্রয়োজন না হয় এবং শুধুমাত্র প্ল্যাটফর্মের সেই সংস্করণের বিপরীতে কম্পাইল করতে চান, আপনি Android Studio 3.1 ব্যবহার করতে পারেন। অ্যান্ড্রয়েড স্টুডিও 3.2 অ্যান্ড্রয়েড 9 বৈশিষ্ট্যগুলির জন্য সম্পূর্ণ সমর্থন প্রদান করে।

আপনার Android 9 অ্যাপ পরীক্ষা করুন

উপরের প্রস্তুতিগুলি সম্পূর্ণ হওয়ার সাথে সাথে, আপনি আপনার অ্যাপ তৈরি করতে পারেন এবং তারপরে Android 9 (API স্তর 28) লক্ষ্য করার সময় এটি সঠিকভাবে কাজ করে তা নিশ্চিত করতে এটি আরও পরীক্ষা করতে পারেন। কোর অ্যাপের গুণমানের নির্দেশিকা এবং পরীক্ষার জন্য সর্বোত্তম অনুশীলনগুলি পর্যালোচনা করার জন্য এটি আরেকটি ভাল সময়।

যখন আপনি targetSdkVersion P এ সেট করে আপনার অ্যাপ তৈরি করেন, তখন নির্দিষ্ট প্ল্যাটফর্মের পরিবর্তনগুলি সম্পর্কে আপনার সচেতন হওয়া উচিত। এই পরিবর্তনগুলির মধ্যে কিছু আপনার অ্যাপের আচরণকে উল্লেখযোগ্যভাবে প্রভাবিত করতে পারে বা এমনকি আপনি Android 9-এ নতুন বৈশিষ্ট্যগুলি প্রয়োগ না করলেও আপনার অ্যাপটিকে সম্পূর্ণভাবে ভেঙে দিতে পারে।

সারণি 2 আরও তথ্যের লিঙ্ক সহ এই পরিবর্তনগুলির একটি তালিকা প্রদান করে।

সারণি 2. targetSdkVersion 28 এ সেট করা হলে কী পরিবর্তনগুলি অ্যাপগুলিকে প্রভাবিত করে৷

পরিবর্তন সারাংশ
ফোরগ্রাউন্ড পরিষেবা অনুমতি যে অ্যাপগুলি ফোরগ্রাউন্ড পরিষেবাগুলি ব্যবহার করতে চায় তাদের এখন প্রথমে FOREGROUND_SERVICE অনুমতির অনুরোধ করতে হবে৷ এটি একটি স্বাভাবিক অনুমতি, তাই সিস্টেম স্বয়ংক্রিয়ভাবে অনুরোধকারী অ্যাপে এটি মঞ্জুর করে। অনুমতি ছাড়া একটি ফোরগ্রাউন্ড পরিষেবা শুরু করা একটি SecurityException নিক্ষেপ করে৷
বাউন্সি ক্যাসল সাইফারের অবচয় Android 9 বাউন্সি ক্যাসেল প্রদানকারীর কাছ থেকে কনস্ক্রিপ্ট প্রদানকারীর দ্বারা প্রদত্ত কিছু সাইফারকে অবমূল্যায়ন করে। getInstance() এ কল যা বাউন্সি ক্যাসল প্রদানকারীকে NoSuchAlgorithmException ত্রুটি তৈরি করার অনুরোধ করে। ত্রুটিগুলি সমাধান করতে, getInstance() এ একটি প্রদানকারী নির্দিষ্ট করবেন না (অর্থাৎ, ডিফল্ট বাস্তবায়নের অনুরোধ করুন)।
Build.serial এ সরাসরি অ্যাক্সেস অপসারণ যে অ্যাপগুলির Build.serial আইডেন্টিফায়ার প্রয়োজন তাদের এখন READ_PHONE_STATE অনুমতির অনুরোধ করতে হবে এবং তারপর Android 9 এ যোগ করা নতুন Build.getSerial() পদ্ধতি ব্যবহার করতে হবে।
ওয়েবভিউ ডেটা ডিরেক্টরির শেয়ারিং অননুমোদিত৷ অ্যাপগুলি আর প্রসেস জুড়ে একটি একক WebView ডেটা ডিরেক্টরি শেয়ার করতে পারে না। android.webkit প্যাকেজে WebView, CookieManager বা অন্য কোনো API ব্যবহার করে আপনার অ্যাপের একাধিক প্রক্রিয়া থাকলে, দ্বিতীয় প্রক্রিয়াটি যখন WebView পদ্ধতিতে কল করে তখন আপনার অ্যাপ ক্র্যাশ হয়ে যাবে।
অ্যাপের ডেটা ডিরেক্টরিতে অ্যাক্সেস SELinux দ্বারা ব্লক করা হয়েছে সিস্টেমটি প্রতিটি অ্যাপের ব্যক্তিগত ডেটা ডিরেক্টরিতে প্রতি-অ্যাপ SELinux সীমাবদ্ধতার সাথে প্রতি-অ্যাপ SELinux স্যান্ডবক্সগুলি প্রয়োগ করে। পাথের মাধ্যমে অন্য অ্যাপের ডেটা ডিরেক্টরিতে সরাসরি অ্যাক্সেস করা এখন অননুমোদিত। অ্যাপগুলি এফডি পাস করা সহ IPC পদ্ধতি ব্যবহার করে ডেটা শেয়ার করা চালিয়ে যেতে পারে।

অ্যান্ড্রয়েড 9 টার্গেট করা অ্যাপের আচরণ পরিবর্তনের আরও বিস্তৃত তালিকার জন্য, আচরণ পরিবর্তনের নথি দেখুন।

Android 9 উপলব্ধ নতুন বৈশিষ্ট্য এবং APIগুলি অন্বেষণ করতে, Android 9 বৈশিষ্ট্য এবং APIগুলি দেখুন৷