Android 17 প্ল্যাটফর্মে এমন আচরণগত পরিবর্তন রয়েছে যা আপনার অ্যাপকে প্রভাবিত করতে পারে। নিম্নলিখিত আচরণগত পরিবর্তনগুলি targetSdkVersion নির্বিশেষে, Android 17 এ চলা সমস্ত অ্যাপের ক্ষেত্রে প্রযোজ্য। আপনার অ্যাপটি পরীক্ষা করা উচিত এবং প্রয়োজনীয় ক্ষেত্রে এই পরিবর্তনগুলি সমর্থন করার জন্য প্রয়োজনীয় পরিবর্তনগুলি করা উচিত।
শুধুমাত্র Android 17 লক্ষ্য করে তৈরি অ্যাপগুলিকে প্রভাবিত করে এমন আচরণগত পরিবর্তনের তালিকাটিও পর্যালোচনা করতে ভুলবেন না।
নিরাপত্তা
অ্যান্ড্রয়েড ১৭-তে ডিভাইস এবং অ্যাপের নিরাপত্তার ক্ষেত্রে নিম্নলিখিত উন্নতিগুলি অন্তর্ভুক্ত রয়েছে।
ক্লিয়ারট্রাফিক অবচয় পরিকল্পনা ব্যবহার করে
ভবিষ্যতের রিলিজে, আমরা usesCleartextTraffic উপাদানটি অবচয় করার পরিকল্পনা করছি। যেসব অ্যাপকে আনএনক্রিপ্টেড (HTTP) সংযোগ তৈরি করতে হবে তাদের একটি নেটওয়ার্ক সুরক্ষা কনফিগারেশন ফাইল ব্যবহার করে স্থানান্তরিত করা উচিত, যা আপনাকে নির্দিষ্ট করতে দেয় যে আপনার অ্যাপটি কোন ডোমেনগুলিতে ক্লিয়ারটেক্সট সংযোগ তৈরি করতে হবে।
মনে রাখবেন যে নেটওয়ার্ক সুরক্ষা কনফিগারেশন ফাইলগুলি কেবলমাত্র API লেভেল 24 এবং তার উপরে সমর্থিত। যদি আপনার অ্যাপের ন্যূনতম API লেভেল 24 এর চেয়ে কম হয়, তাহলে আপনার নিম্নলিখিত দুটি কাজ করা উচিত:
-
usesCleartextTrafficঅ্যাট্রিবিউটটিকেtrueতে সেট করুন - একটি নেটওয়ার্ক কনফিগারেশন ফাইল ব্যবহার করুন
যদি আপনার অ্যাপের সর্বনিম্ন API লেভেল 24 বা তার বেশি হয়, তাহলে আপনি একটি নেটওয়ার্ক কনফিগারেশন ফাইল ব্যবহার করতে পারেন এবং আপনাকে usesCleartextTraffic সেট করার প্রয়োজন নেই।
অন্তর্নিহিত URI অনুদান সীমাবদ্ধ করুন
বর্তমানে, যদি কোনও অ্যাপ এমন একটি URI দিয়ে একটি ইন্টেন্ট চালু করে যার মধ্যে Send , SendMultiple , অথবা ImageCapture অ্যাকশন থাকে, তাহলে সিস্টেম স্বয়ংক্রিয়ভাবে লক্ষ্য অ্যাপটিকে URI পড়ার এবং লেখার অনুমতি দেয়। আমরা Android 18-এ এই আচরণটি পরিবর্তন করার পরিকল্পনা করছি। এই কারণে, আমরা সুপারিশ করি যে অ্যাপগুলি সিস্টেমের উপর নির্ভর না করে স্পষ্টভাবে প্রাসঙ্গিক URI অনুমতি প্রদান করে।
প্রতি-অ্যাপ কীস্টোরের সীমা
অ্যাপগুলিকে অ্যান্ড্রয়েড কীস্টোরে অতিরিক্ত সংখ্যক কী তৈরি করা এড়িয়ে চলা উচিত, কারণ এটি ডিভাইসের সমস্ত অ্যাপের জন্য একটি ভাগ করা রিসোর্স। অ্যান্ড্রয়েড ১৭ থেকে শুরু করে, সিস্টেমটি একটি অ্যাপের মালিকানাধীন কী সংখ্যার উপর একটি সীমা আরোপ করে। অ্যান্ড্রয়েড ১৭ বা তার বেশি সংস্করণের জন্য নন-সিস্টেম অ্যাপগুলির জন্য সীমা হল ৫০,০০০ কী এবং অন্যান্য সমস্ত অ্যাপের জন্য ২০০,০০০ কী। সিস্টেম অ্যাপগুলির API স্তর নির্বিশেষে, ২০০,০০০ কী সীমা রয়েছে।
যদি কোন অ্যাপ সীমার বাইরে কী তৈরি করার চেষ্টা করে, তাহলে KeyStoreException ব্যবহার করে তৈরিটি ব্যর্থ হয়। ব্যতিক্রমের বার্তা স্ট্রিংয়ে কী সীমা সম্পর্কে তথ্য থাকে। যদি অ্যাপটি ব্যতিক্রমের উপর getNumericErrorCode() কল করে, তাহলে রিটার্ন মান অ্যাপটি কোন API স্তর লক্ষ্য করে তার উপর নির্ভর করে:
- অ্যান্ড্রয়েড ১৭ বা তার পরবর্তী ভার্সনকে লক্ষ্য করে তৈরি অ্যাপ:
getNumericErrorCode()নতুনERROR_TOO_MANY_KEYSমান প্রদান করে। - অন্যান্য সকল অ্যাপ:
getNumericErrorCode()ERROR_INCORRECT_USAGEপ্রদান করে।
ব্যবহারকারীর অভিজ্ঞতা এবং সিস্টেম UI
অ্যান্ড্রয়েড ১৭-তে নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা আরও সামঞ্জস্যপূর্ণ, স্বজ্ঞাত ব্যবহারকারীর অভিজ্ঞতা তৈরি করার উদ্দেশ্যে করা হয়েছে।
ঘূর্ণনের পরে ডিফল্ট IME দৃশ্যমানতা পুনরুদ্ধার করা হচ্ছে
অ্যান্ড্রয়েড ১৭ থেকে শুরু করে, যখন ডিভাইসের কনফিগারেশন পরিবর্তন হয় (উদাহরণস্বরূপ, ঘূর্ণনের মাধ্যমে), এবং এটি অ্যাপ নিজেই পরিচালনা করে না, তখন পূর্ববর্তী IME দৃশ্যমানতা পুনরুদ্ধার করা হয় না।
যদি আপনার অ্যাপের কনফিগারেশনে এমন কোনও পরিবর্তন আসে যা এটি পরিচালনা করতে পারে না এবং পরিবর্তনের পরে অ্যাপটির কীবোর্ডটি দৃশ্যমান হওয়ার প্রয়োজন হয়, তাহলে আপনাকে অবশ্যই এটির জন্য স্পষ্টভাবে অনুরোধ করতে হবে। আপনি নিম্নলিখিত যেকোনো একটি উপায়ে এই অনুরোধ করতে পারেন:
-
android:windowSoftInputModeঅ্যাট্রিবিউটটিকেstateAlwaysVisibleএ সেট করুন। - আপনার অ্যাক্টিভিটির
onCreate()পদ্ধতিতে প্রোগ্রাম্যাটিকভাবে সফট কীবোর্ডটি অনুরোধ করুন, অথবাonConfigurationChanged()পদ্ধতিটি যোগ করুন।
মানুষের মতামত
অ্যান্ড্রয়েড ১৭-তে নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা অ্যাপগুলি কীভাবে কীবোর্ড এবং টাচপ্যাডের মতো মানুষের ইনপুট ডিভাইসের সাথে ইন্টারঅ্যাক্ট করে তা প্রভাবিত করে।
পয়েন্টার ক্যাপচারের সময় টাচপ্যাডগুলি ডিফল্টরূপে আপেক্ষিক ইভেন্ট সরবরাহ করে
অ্যান্ড্রয়েড ১৭ থেকে শুরু করে, যদি কোনও অ্যাপ View.requestPointerCapture() ব্যবহার করে পয়েন্টার ক্যাপচারের অনুরোধ করে এবং ব্যবহারকারী একটি টাচপ্যাড ব্যবহার করে, তাহলে সিস্টেমটি ব্যবহারকারীর স্পর্শ থেকে পয়েন্টার মুভমেন্ট এবং স্ক্রলিং জেসচার সনাক্ত করে এবং ক্যাপচার করা মাউস থেকে পয়েন্টার এবং স্ক্রোল হুইল মুভমেন্টের মতোই অ্যাপে রিপোর্ট করে। বেশিরভাগ ক্ষেত্রে, এটি ক্যাপচার করা মাউস সমর্থনকারী অ্যাপগুলিকে টাচপ্যাডের জন্য বিশেষ হ্যান্ডলিং লজিক যোগ করার প্রয়োজনীয়তা দূর করে। আরও বিস্তারিত জানার জন্য, View.POINTER_CAPTURE_MODE_RELATIVE এর ডকুমেন্টেশন দেখুন।
পূর্বে, সিস্টেমটি টাচপ্যাড থেকে অঙ্গভঙ্গি সনাক্ত করার চেষ্টা করত না, বরং টাচস্ক্রিন টাচের অনুরূপ ফর্ম্যাটে অ্যাপে কাঁচা, পরম আঙুলের অবস্থান সরবরাহ করত। যদি কোনও অ্যাপের এখনও এই পরম ডেটার প্রয়োজন হয়, তবে এটির পরিবর্তে View.POINTER_CAPTURE_MODE_ABSOLUTE সহ নতুন View.requestPointerCapture(int) পদ্ধতিটি কল করা উচিত।
মিডিয়া
অ্যান্ড্রয়েড ১৭-তে মিডিয়া আচরণে নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে।
পটভূমি অডিও শক্তকরণ
অ্যান্ড্রয়েড ১৭ থেকে শুরু করে, অডিও ফ্রেমওয়ার্কটি অডিও প্লেব্যাক, অডিও ফোকাস অনুরোধ এবং ভলিউম পরিবর্তন API সহ ব্যাকগ্রাউন্ড অডিও ইন্টারঅ্যাকশনের উপর বিধিনিষেধ আরোপ করে যাতে ব্যবহারকারী ইচ্ছাকৃতভাবে এই পরিবর্তনগুলি শুরু করে।
যদি অ্যাপটি বৈধ জীবনচক্রের মধ্যে না থাকাকালীন অডিও API গুলি কল করার চেষ্টা করে, তাহলে অডিও প্লেব্যাক এবং ভলিউম পরিবর্তন API গুলি কোনও ব্যতিক্রম ছাড়াই বা ব্যর্থতার বার্তা প্রদান না করে নীরবে ব্যর্থ হয়। অডিও ফোকাস API ফলাফল কোড AUDIOFOCUS_REQUEST_FAILED সহ ব্যর্থ হয়।
প্রশমন কৌশল সহ আরও তথ্যের জন্য, পটভূমি অডিও শক্তকরণ দেখুন।