অ্যান্ড্রয়েড 8.0 (এপিআই লেভেল 26) আচরণ পরিবর্তনের সাথে সাথে নতুন বৈশিষ্ট্য এবং APIগুলি প্রবর্তন করে যা আপনি আপনার অ্যাপগুলিতে সুবিধা নিতে পারেন। এই দস্তাবেজটি আপনাকে দুটি মূল ধাপে আপনার অ্যাপগুলিকে Android 8.0 এ স্থানান্তরিত করার পদক্ষেপগুলির একটি ওভারভিউ দেয়:
- Android 8.0 এর সাথে সামঞ্জস্যতা নিশ্চিত করুন
প্ল্যাটফর্মের নতুন সংস্করণে আপনার অ্যাপটি সম্পূর্ণরূপে কার্যকরী কিনা তা যাচাই করুন। এই পর্যায়ে, আপনি নতুন API ব্যবহার করবেন না বা আপনার অ্যাপের
targetSdkVersion
পরিবর্তন করবেন না, তবে সামান্য পরিবর্তনের প্রয়োজন হতে পারে। - আপনার লক্ষ্য সংস্করণ আপডেট করুন এবং Android 8.0 বৈশিষ্ট্যগুলি ব্যবহার করুন৷
আপনি যখন প্ল্যাটফর্মের নতুন বৈশিষ্ট্যগুলির সুবিধা নিতে প্রস্তুত হন, তখন আপনার
targetSdkVersion
26-এ আপডেট করুন, অ্যাপটি প্রত্যাশিতভাবে কাজ করছে কিনা তা যাচাই করুন এবং তারপরে নতুন API ব্যবহার করা শুরু করুন।
Android 8.0 এর সাথে সামঞ্জস্যতা নিশ্চিত করুন
এখানে উদ্দেশ্য হল আপনার বিদ্যমান অ্যাপটি Android 8.0 (API লেভেল 26) এর মতোই কাজ করে তা নিশ্চিত করা। যেহেতু কিছু প্ল্যাটফর্মের পরিবর্তনগুলি আপনার অ্যাপের আচরণের পদ্ধতিকে প্রভাবিত করতে পারে, কিছু সমন্বয় প্রয়োজন হতে পারে, কিন্তু আপনাকে নতুন API ব্যবহার করতে বা আপনার targetSdkVersion
পরিবর্তন করতে হবে না।
Android 8.0 চালিত একটি ডিভাইস প্রস্তুত করুন
- আপনার যদি একটি সামঞ্জস্যপূর্ণ ডিভাইস থাকে (Pixel, Pixel XL, Pixel C, Nexus 5X, Nexus 6P, বা Nexus Player), আপনার ডিভাইস ফ্ল্যাশ করতে নির্দেশাবলী অনুসরণ করুন।
- অথবা Android এমুলেটরের জন্য Android 8.0 সিস্টেম ইমেজ ডাউনলোড করুন। এটি SDK ম্যানেজারে Android 8.0 এর অধীনে Google APIs Intel x86 Atom System Image হিসাবে তালিকাভুক্ত।
দ্রষ্টব্য: Android 8.0 সিস্টেম ইমেজ Android Studio 3.0 এবং উচ্চতর থেকে ডাউনলোডের জন্য উপলব্ধ। আরও তথ্যের জন্য, Android 8.0 SDK পেতে নীচের বিভাগটি দেখুন।
সামঞ্জস্য পরীক্ষা সঞ্চালন
বেশিরভাগ ক্ষেত্রে, Android 8.0 (API লেভেল 26) এর সাথে সামঞ্জস্যপূর্ণতা পরীক্ষা করার জন্য আপনার অ্যাপ প্রকাশ করার প্রস্তুতির সময় আপনি যে ধরনের পরীক্ষা করেন। কোর অ্যাপের গুণমানের নির্দেশিকা এবং পরীক্ষার জন্য সর্বোত্তম অনুশীলনগুলি পর্যালোচনা করার এটি একটি ভাল সময়৷
যাইহোক, পরীক্ষার আরেকটি দিক রয়েছে: Android 8.0 Android প্ল্যাটফর্মে এমন পরিবর্তনগুলি প্রবর্তন করে যা আপনার অ্যাপের আচরণকে প্রভাবিত করতে পারে বা অ্যাপটিকে সম্পূর্ণভাবে ভেঙে দিতে পারে, এমনকি যদি আপনি আপনার targetSdkVersion
পরিবর্তন না করেন। এই কারণে, এটি গুরুত্বপূর্ণ যে আপনি সারণি 1-এর মূল পরিবর্তনগুলি পর্যালোচনা করুন, এবং পরিবর্তনগুলিকে সামঞ্জস্য করার জন্য আপনি প্রয়োগ করা যেকোনো সংশোধন পরীক্ষা করুন৷
পরিবর্তন | সারাংশ | আরও রেফারেন্স |
---|---|---|
কম ঘন ঘন পটভূমি অবস্থান আপডেট | আপনার অ্যাপ যদি কোনো ব্যাকগ্রাউন্ড সার্ভিস থেকে লোকেশন আপডেট পায়, তাহলে এটি Android 8.0 (API লেভেল 26) এ অ্যান্ড্রয়েডের পুরানো সংস্করণের তুলনায় কম ঘন ঘন আপডেট পায়। বিশেষ করে, একটি ব্যাকগ্রাউন্ড সার্ভিস প্রতি ঘন্টায় কয়েক বারের বেশি লোকেশন আপডেট পেতে পারে না। যাইহোক, আপনার অ্যাপটি অগ্রভাগে থাকাকালীন, অবস্থান আপডেটের হার অপরিবর্তিত থাকে। | পটভূমি অবস্থান সীমা |
net.hostname আর সমর্থিত নয় | net.hostname সিস্টেম প্রপার্টি জিজ্ঞাসা করলে একটি শূন্য ফলাফল পাওয়া যায়। | কোনোটিই নয় |
send(DatagramPacket) | যদি পূর্বে সম্পাদিত connect(InetAddress, int) পদ্ধতি ব্যর্থ হয় তাহলে send(DatagramPacket) পদ্ধতি একটি SocketException নিক্ষেপ করে। | আচরণ পরিবর্তন: নেটওয়ার্ক এবং HTTP(S) সংযোগ |
AbstractCollection পদ্ধতি থেকে যথাযথ NullPointerException | AbstractCollection.removeAll(null) এবং AbstractCollection.retainAll(null) এখন সর্বদা একটি NullPointerException নিক্ষেপ করুন; পূর্বে, সংগ্রহটি খালি হলে NullPointerException নিক্ষেপ করা হয়নি। এই পরিবর্তনটি আচরণকে ডকুমেন্টেশনের সাথে সামঞ্জস্যপূর্ণ করে তোলে। | আচরণ পরিবর্তন: সংগ্রহ পরিচালনা |
Currency.getDisplayName(null) থেকে যথাযথ NullPointerException | Currency.getDisplayName(null) কল করা একটি NullPointerException নিক্ষেপ করে। | আচরণ পরিবর্তন: স্থানীয় এবং আন্তর্জাতিকীকরণ |
অ্যান্ড্রয়েড 8.0 (এপিআই স্তর 26) এ আচরণ পরিবর্তনের আরও বিস্তৃত তালিকার জন্য, অ্যান্ড্রয়েড 8.0 আচরণ পরিবর্তনগুলিও দেখুন।
আপনার লক্ষ্য সংস্করণ আপডেট করুন এবং Android 8.0 বৈশিষ্ট্যগুলি ব্যবহার করুন৷
এই বিভাগটি ব্যাখ্যা করে কিভাবে Android 8.0 (API লেভেল 26) এর জন্য আপনার targetSdkVersion
26-এ আপডেট করে এবং Android 8.0-এ উপলব্ধ নতুন বৈশিষ্ট্যগুলি যোগ করার মাধ্যমে সম্পূর্ণ সমর্থন সক্ষম করা যায়।
আপনাকে নতুন API গুলি অফার করার পাশাপাশি, আপনি যখন আপনার targetSdkVersion
26-এ আপডেট করেন তখন Android 8.0 কিছু আচরণের পরিবর্তন আনে। কারণ কিছু আচরণের পরিবর্তনে ভাঙন এড়াতে কোড পরিবর্তনের প্রয়োজন হতে পারে, আপনার প্রথমে বুঝতে হবে যে আপনি যখন targetSdkVersion
পরিবর্তন করবেন তখন আপনার অ্যাপ কীভাবে প্রভাবিত হতে পারে অ্যান্ড্রয়েড 8.0 টার্গেট করা অ্যাপগুলির জন্য সমস্ত আচরণের পরিবর্তন পর্যালোচনা করা।
দ্রষ্টব্য: প্ল্যাটফর্মের সামঞ্জস্য নিশ্চিত করার জন্য উপরে বর্ণিত পদক্ষেপগুলি আপনার অ্যাপকে Android 8.0-এ টার্গেট করার পূর্বশর্ত, তাই আপনি প্রথমে সেই পদক্ষেপগুলি সম্পূর্ণ করতে ভুলবেন না।
Android 8.0 SDK পান৷
আপনি Android 8.0 (API স্তর 26) এর সাথে Android স্টুডিওর সর্বশেষ সংস্করণ ব্যবহার করে আপনার অ্যাপ তৈরি করতে SDK প্যাকেজগুলি পেতে পারেন (Android Studio 3.0+ প্রস্তাবিত)। অ্যান্ড্রয়েড স্টুডিও 3.0+ এ আপনাকে Android 8.0 বৈশিষ্ট্য যেমন অ্যাডাপটিভ আইকন এবং ডাউনলোডযোগ্য ফন্টগুলির সাথে সাহায্য করার জন্য সরঞ্জামগুলি অন্তর্ভুক্ত রয়েছে৷ আপনার যদি এখনও সেই বৈশিষ্ট্যগুলির প্রয়োজন না হয়, তাহলে আপনি Android 8.0 এর সাথে আপনার অ্যাপ তৈরি করতে এবং নতুন API ব্যবহার করতে Android Studio 2.3.3 এর স্থিতিশীল সংস্করণ ব্যবহার করতে পারেন।
অ্যান্ড্রয়েড স্টুডিওর যেকোনো সংস্করণের সাথে সেট আপ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- অ্যান্ড্রয়েড স্টুডিও চালু করুন এবং টুলস > SDK ম্যানেজার-এ ক্লিক করে SDK ম্যানেজার খুলুন।
- SDK প্ল্যাটফর্ম ট্যাবে, প্যাকেজের বিবরণ দেখান চেক করুন। অ্যান্ড্রয়েড 8.0 পূর্বরূপের নীচে নিম্নলিখিতগুলি পরীক্ষা করুন:
- অ্যান্ড্রয়েড এসডিকে প্ল্যাটফর্ম 26
- Google APIs Intel x86 Atom System Image (শুধুমাত্র এমুলেটরের জন্য প্রয়োজন)
- SDK টুল ট্যাবে স্যুইচ করুন এবং উপলব্ধ আপডেট আছে এমন সমস্ত আইটেম চেক করুন (প্রতিটি চেকবক্সে ক্লিক করুন যা একটি ড্যাশ দেখায় ) এর মধ্যে নিম্নলিখিত আইটেমগুলির সর্বশেষ সংস্করণগুলি অন্তর্ভুক্ত করা উচিত যা প্রয়োজনীয়:
- অ্যান্ড্রয়েড SDK বিল্ড-টুলস 26.0.0
- অ্যান্ড্রয়েড SDK প্ল্যাটফর্ম-সরঞ্জাম 26.0.0
- অ্যান্ড্রয়েড এমুলেটর 26.0.0
- সমস্ত নির্বাচিত SDK প্যাকেজ ইনস্টল করতে ওকে ক্লিক করুন৷
এখন আপনি Android 8.0 এর সাথে বিল্ডিং শুরু করতে প্রস্তুত৷
আপনার বিল্ড কনফিগারেশন আপডেট করুন
compileSdkVersion
, targetSdkVersion
, এবং সমর্থন লাইব্রেরি সংস্করণটি সাম্প্রতিক উপলব্ধ সংশোধনগুলিতে আপডেট করুন, উদাহরণস্বরূপ:
android { compileSdkVersion 26 defaultConfig { targetSdkVersion 26 } ... } dependencies { compile 'com.android.support:appcompat-v7:26.0.0' } // REQUIRED: Google's new Maven repo is required for the latest // support library that is compatible with Android 8.0 repositories { google() // If you're using a version of Gradle lower than 4.1, you must instead use: // maven { // url 'https://maven.google.com' // } }
আপনার ম্যানিফেস্ট ফাইল থেকে ব্রডকাস্ট রিসিভারগুলি সরান৷
যেহেতু Android 8.0 (API লেভেল 26) ব্রডকাস্ট রিসিভারের জন্য নতুন সীমাবদ্ধতা প্রবর্তন করে, তাই আপনার যেকোন ব্রডকাস্ট রিসিভার অপসারণ করা উচিত যেগুলি অন্তর্নিহিত সম্প্রচার অভিপ্রায়ের জন্য নিবন্ধিত। এগুলিকে জায়গায় রেখে দিলে বিল্ড-টাইম বা রানটাইমে আপনার অ্যাপটি ভেঙে যায় না, তবে আপনার অ্যাপ Android 8.0-এ চলে তখন সেগুলির কোনও প্রভাব নেই৷
সম্প্রচার যেগুলি শুধুমাত্র আপনার অ্যাপই সাড়া দিতে পারে— স্পষ্টভাবে সম্প্রচারের অভিপ্রায় এবং আপনার অ্যাপের প্যাকেজের নামে পাঠানো সম্প্রচারগুলি—Android 8.0-এ একই কাজ চালিয়ে যান।
এই নতুন নিষেধাজ্ঞা ব্যতিক্রম আছে. অন্তর্নিহিত সম্প্রচারগুলির একটি তালিকার জন্য যা এখনও Android 8.0 লক্ষ্য করে অ্যাপগুলিতে কাজ করে, অন্তর্নিহিত সম্প্রচার ব্যতিক্রমগুলি দেখুন৷
আপনার Android 8.0 অ্যাপ পরীক্ষা করুন
উপরের প্রস্তুতিগুলি সম্পূর্ণ হওয়ার সাথে সাথে, আপনি আপনার অ্যাপটি তৈরি করতে পারেন এবং তারপরে Android 8.0 (API স্তর 26) লক্ষ্য করার সময় এটি সঠিকভাবে কাজ করে তা নিশ্চিত করতে এটি আরও পরীক্ষা করতে পারেন। কোর অ্যাপের গুণমানের নির্দেশিকা এবং পরীক্ষার জন্য সর্বোত্তম অনুশীলনগুলি পর্যালোচনা করার জন্য এটি আরেকটি ভাল সময়।
আপনি যখন 26-এ targetSdkVersion
সেট করে আপনার অ্যাপ তৈরি করেন, তখন নির্দিষ্ট প্ল্যাটফর্মের পরিবর্তনগুলি সম্পর্কে আপনার সচেতন হওয়া উচিত। আপনি Android 8.0-এ নতুন বৈশিষ্ট্যগুলি প্রয়োগ না করলেও এই পরিবর্তনগুলির মধ্যে কিছু আপনার অ্যাপের আচরণকে উল্লেখযোগ্যভাবে প্রভাবিত করতে পারে বা এমনকি আপনার অ্যাপটিকে সম্পূর্ণভাবে ভেঙে দিতে পারে।
সারণি 2 আরও তথ্যের লিঙ্ক সহ এই পরিবর্তনগুলির একটি তালিকা প্রদান করে।
পরিবর্তন | সারাংশ | আরও রেফারেন্স |
---|---|---|
গোপনীয়তা | Android 8.0 (API স্তর 26) net.dns1, net.dns2, net.dns3, বা net.dns4 সিস্টেম বৈশিষ্ট্যের ব্যবহার সমর্থন করে না। | আচরণ পরিবর্তন: গোপনীয়তা |
লিখনযোগ্য এবং এক্সিকিউটেবল সেগমেন্ট প্রয়োগ করা হয়েছে | নেটিভ লাইব্রেরিগুলির জন্য, Android 8.0 (API লেভেল 26) নিয়মটি প্রয়োগ করে যে ডেটা এক্সিকিউটেবল হওয়া উচিত নয় এবং কোড লেখার যোগ্য হওয়া উচিত নয়। | আচরণ পরিবর্তন: নেটিভ লাইব্রেরি |
ELF শিরোনাম এবং বিভাগ বৈধতা | ডায়নামিক লিঙ্কার ELF হেডার এবং সেকশন হেডারে আরও মান পরীক্ষা করে এবং যদি সেগুলি অবৈধ হয় তাহলে ব্যর্থ হয়৷ | আচরণ পরিবর্তন: নেটিভ লাইব্রেরি |
বিজ্ঞপ্তি | SDK-এর Android 8.0 (API লেভেল 26) সংস্করণকে লক্ষ্য করে অ্যাপগুলিকে ব্যবহারকারীদের বিজ্ঞপ্তি পোস্ট করতে এক বা একাধিক বিজ্ঞপ্তি চ্যানেল প্রয়োগ করতে হবে। | API ওভারভিউ: বিজ্ঞপ্তি |
List.sort() পদ্ধতি | এই পদ্ধতির প্রয়োগগুলি Collections.sort() আর কল করতে পারে না, অথবা স্ট্যাক ওভারফ্লো হওয়ার কারণে আপনার অ্যাপটি ব্যতিক্রম হবে। | আচরণ পরিবর্তন: সংগ্রহ পরিচালনা |
Collections.sort() পদ্ধতি | তালিকা বাস্তবায়নে, Collections.sort() এখন একটি ConcurrentModificationException নিক্ষেপ করে। | আচরণ পরিবর্তন: সংগ্রহ পরিচালনা |
অ্যান্ড্রয়েড 8.0 (এপিআই স্তর 26) এ আচরণ পরিবর্তনের আরও বিস্তৃত তালিকার জন্য, Android 8.0 আচরণ পরিবর্তনগুলি দেখুন।
Android 8.0 (API লেভেল 26) এর সাথে উপলব্ধ নতুন বৈশিষ্ট্য এবং APIগুলি অন্বেষণ করতে, Android 8.0 বৈশিষ্ট্য এবং APIগুলি দেখুন৷