আচরণগত পরিবর্তন: অ্যান্ড্রয়েড ১৭ বা তার উচ্চতর ভার্সনকে লক্ষ্য করে অ্যাপ

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

আপনার অ্যাপের targetSdkVersion যাই হোক না কেন , Android 17 এ চলমান সমস্ত অ্যাপকে প্রভাবিত করে এমন আচরণগত পরিবর্তনের তালিকাটিও পর্যালোচনা করতে ভুলবেন না।

মূল কার্যকারিতা

অ্যান্ড্রয়েড ১৭-তে নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা অ্যান্ড্রয়েড সিস্টেমের বিভিন্ন মূল ক্ষমতা পরিবর্তন বা প্রসারিত করে।

MessageQueue-এর নতুন লক-মুক্ত বাস্তবায়ন

অ্যান্ড্রয়েড ১৭ থেকে শুরু করে, অ্যান্ড্রয়েড ১৭ বা তার উচ্চতর ভার্সনগুলিকে লক্ষ্য করে তৈরি অ্যাপগুলি android.os.MessageQueue এর একটি নতুন লক-মুক্ত বাস্তবায়ন পায়। নতুন বাস্তবায়ন কর্মক্ষমতা উন্নত করে এবং মিস করা ফ্রেমগুলি হ্রাস করে, তবে MessageQueue ব্যক্তিগত ক্ষেত্র এবং পদ্ধতিগুলিতে প্রতিফলিত ক্লায়েন্টগুলিকে ভেঙে ফেলতে পারে।

প্রশমন কৌশল সহ আরও তথ্যের জন্য, MessageQueue আচরণ পরিবর্তন নির্দেশিকা দেখুন।

অ্যাক্সেসযোগ্যতা

অ্যাক্সেসিবিলিটি উন্নত করতে অ্যান্ড্রয়েড ১৭ নিম্নলিখিত পরিবর্তনগুলি করে।

জটিল IME ফিজিক্যাল কীবোর্ড টাইপিংয়ের অ্যাক্সেসিবিলিটি সাপোর্ট

এই বৈশিষ্ট্যটি CJKV ভাষা ইনপুটের জন্য স্ক্রিন রিডারের কথ্য প্রতিক্রিয়া উন্নত করার জন্য নতুন AccessibilityEvent এবং TextAttribute API প্রবর্তন করে। CJKV IME অ্যাপগুলি এখন টেক্সট কম্পোজিশনের সময় কোনও টেক্সট কনভার্সন প্রার্থী নির্বাচিত হয়েছে কিনা তা সংকেত দিতে পারে। এডিট ফিল্ড সহ অ্যাপগুলি টেক্সট পরিবর্তিত অ্যাক্সেসিবিলিটি ইভেন্ট পাঠানোর সময় টেক্সট পরিবর্তনের ধরণ নির্দিষ্ট করতে পারে। উদাহরণস্বরূপ, অ্যাপগুলি নির্দিষ্ট করতে পারে যে টেক্সট কম্পোজিশনের সময় একটি টেক্সট পরিবর্তন ঘটেছে, অথবা একটি কমিটের ফলে একটি টেক্সট পরিবর্তন হয়েছে। এটি করার ফলে স্ক্রিন রিডারের মতো অ্যাক্সেসিবিলিটি পরিষেবাগুলি টেক্সট পরিবর্তনের প্রকৃতির উপর ভিত্তি করে আরও সুনির্দিষ্ট প্রতিক্রিয়া প্রদান করতে সক্ষম হয়।

অ্যাপ গ্রহণ

  • IME অ্যাপস: সম্পাদনা ক্ষেত্রে লেখা রচনা করার সময়, IME গুলি TextAttribute.Builder.setTextSuggestionSelected() ব্যবহার করে একটি নির্দিষ্ট রূপান্তর প্রার্থী নির্বাচিত হয়েছে কিনা তা নির্দেশ করতে পারে।

  • সম্পাদনা ক্ষেত্র সহ অ্যাপ: যে অ্যাপগুলি একটি কাস্টম InputConnection বজায় রাখে তারা TextAttribute.isTextSuggestionSelected() কল করে প্রার্থী নির্বাচনের ডেটা পুনরুদ্ধার করতে পারে। TYPE_VIEW_TEXT_CHANGED ইভেন্টগুলি প্রেরণ করার সময় এই অ্যাপগুলিকে AccessibilityEvent.setTextChangeTypes() কল করতে হবে। স্ট্যান্ডার্ড TextView ব্যবহার করে এমন Android 17 টার্গেট করা অ্যাপগুলিতে এই বৈশিষ্ট্যটি ডিফল্টরূপে সক্ষম থাকবে। (অর্থাৎ, TextView IME থেকে ডেটা পুনরুদ্ধার এবং অ্যাক্সেসিবিলিটি পরিষেবাগুলিতে ইভেন্টগুলি পাঠানোর সময় টেক্সট পরিবর্তনের ধরণ সেট করার কাজ পরিচালনা করবে)।

  • অ্যাক্সেসিবিলিটি পরিষেবা: TYPE_VIEW_TEXT_CHANGED ইভেন্টগুলি প্রক্রিয়া করে এমন অ্যাক্সেসিবিলিটি পরিষেবাগুলি পরিবর্তনের প্রকৃতি সনাক্ত করতে এবং সেই অনুযায়ী তাদের প্রতিক্রিয়া কৌশলগুলি সামঞ্জস্য করতে AccessibilityEvent.getTextChangeTypes() কল করতে পারে।

নিরাপত্তা

অ্যান্ড্রয়েড ১৭ ডিভাইস এবং অ্যাপের নিরাপত্তায় নিম্নলিখিত উন্নতি করে।

কার্যকলাপ সুরক্ষা

অ্যান্ড্রয়েড ১৭-তে, প্ল্যাটফর্মটি "নিরাপদ-বাই-ডিফল্ট" আর্কিটেকচারের দিকে তার স্থানান্তর অব্যাহত রেখেছে, ফিশিং, ইন্টারঅ্যাকশন হাইজ্যাকিং এবং বিভ্রান্তিকর ডেপুটি আক্রমণের মতো উচ্চ-তীব্রতা শোষণকে হ্রাস করার জন্য ডিজাইন করা উন্নত বৈশিষ্ট্যগুলির একটি স্যুট প্রবর্তন করছে। এই আপডেটের জন্য ডেভেলপারদের অ্যাপের সামঞ্জস্যতা এবং ব্যবহারকারীর সুরক্ষা বজায় রাখার জন্য স্পষ্টভাবে নতুন সুরক্ষা মানগুলি বেছে নিতে হবে।

ডেভেলপারদের জন্য মূল প্রভাবগুলির মধ্যে রয়েছে:

  • BAL শক্তকরণ এবং উন্নত অপ্ট-ইন: আমরা IntentSender এ সুরক্ষা সম্প্রসারণ করে ব্যাকগ্রাউন্ড অ্যাক্টিভিটি লঞ্চ (BAL) সীমাবদ্ধতাগুলিকে আরও পরিমার্জন করছি। ডেভেলপারদের অবশ্যই লিগ্যাসি MODE_BACKGROUND_ACTIVITY_START_ALLOWED ধ্রুবক থেকে দূরে সরে যেতে হবে। পরিবর্তে, আপনার MODE_BACKGROUND_ACTIVITY_START_ALLOW_IF_VISIBLE এর মতো গ্রানুলার নিয়ন্ত্রণ গ্রহণ করা উচিত, যা কার্যকলাপ শুরু করার জন্য এমন পরিস্থিতিতে সীমাবদ্ধ করে যেখানে কলিং অ্যাপটি দৃশ্যমান, আক্রমণের পৃষ্ঠকে উল্লেখযোগ্যভাবে হ্রাস করে।
  • দত্তক নেওয়ার সরঞ্জাম: ডেভেলপারদের উচিত লিগ্যাসি প্যাটার্ন সনাক্ত করতে এবং ভবিষ্যতের লক্ষ্য SDK প্রয়োজনীয়তার জন্য প্রস্তুতি নিশ্চিত করতে কঠোর মোড এবং আপডেট করা লিন্ট চেক ব্যবহার করা।

লোকালহোস্ট সুরক্ষা

প্ল্যাটফর্মের নিরাপত্তা এবং ব্যবহারকারীর গোপনীয়তা উন্নত করার জন্য, Android 17 একটি নতুন ইনস্টল-টাইম অনুমতি, USE_LOOPBACK_INTERFACE প্রবর্তন করেছে। এই পরিবর্তনটি লুপব্যাক ইন্টারফেসের (উদাহরণস্বরূপ, 127.0.0.1 অথবা ::1 ) মাধ্যমে ক্রস-অ্যাপ এবং ক্রস-প্রোফাইল যোগাযোগকে সীমাবদ্ধ করে, যা পূর্বে INTERNET অনুমতির মাধ্যমে পরোক্ষভাবে অনুমোদিত ছিল। Android 17 বা উচ্চতর সংস্করণ লক্ষ্য করে অ্যাপগুলির জন্য, নিম্নলিখিত নিয়মগুলি প্রযোজ্য:

  • পারস্পরিক সম্মতি প্রয়োজন: ক্রস-অ্যাপ এবং ক্রস-প্রোফাইল যোগাযোগ এখন ডিফল্টরূপে ব্লক করা আছে। সংযোগ সফল হওয়ার জন্য, প্রেরণকারী অ্যাপ এবং গ্রহণকারী অ্যাপ উভয়কেই তাদের ম্যানিফেস্টে USE_LOOPBACK_INTERFACE অনুমতি স্পষ্টভাবে ঘোষণা করতে হবে।
  • অ্যাপ-এর মধ্যে ট্র্যাফিক অব্যাহতিপ্রাপ্ত: একই অ্যাপের মধ্যে লুপব্যাক যোগাযোগ ( অন্তঃ-অ্যাপ যোগাযোগ) অপ্রভাবিত থাকে এবং এই নতুন অনুমতির প্রয়োজন হয় না।
  • লক্ষ্য SDK আচরণ:
    • অ্যাপটি অ্যান্ড্রয়েড ১৭ বা তার উচ্চতর সংস্করণের জন্য উপযুক্ত: অনুমতিটি স্পষ্টভাবে অনুরোধ করতে হবে। যদি এটি অনুপস্থিত থাকে, তাহলে সকেট অপারেশন (যেমন TCP সংযোগ বা UDP প্রেরণ) ব্যর্থ হয়, সাধারণত একটি EPERM (অপারেশন অনুমোদিত নয়) ত্রুটি ফেরত দেয়।
    • ৩৬ বা তার কম API লেভেলের অ্যাপ টার্গেট: INTERNET অনুমতিটি বিভক্ত অনুমতি হিসেবে বিবেচিত হয়। নিম্ন API লেভেলের অ্যাপগুলিকে INTERNET থাকলে স্বয়ংক্রিয়ভাবে এই অনুমতি দেওয়া হয়।
  • সামঞ্জস্যতা সতর্কতা: যদি কোনও গ্রহণকারী অ্যাপ তার লক্ষ্য Android 17 এ আপডেট করে কিন্তু এই অনুমতির অনুরোধ করতে ব্যর্থ হয়, তাহলে অন্যান্য অ্যাপ থেকে আগত সংযোগগুলি প্রত্যাখ্যান করা হবে, এমনকি যদি প্রেরণকারী অ্যাপটি নিম্ন API স্তরের লক্ষ্য করে।

ডিফল্টরূপে CT সক্ষম করুন

যদি কোনও অ্যাপ অ্যান্ড্রয়েড ১৭ বা তার পরবর্তী ভার্সনের জন্য উপযুক্ত হয়, তাহলে সার্টিফিকেট ট্রান্সপারেন্সি (CT) ডিফল্টরূপে সক্রিয় থাকে। (অ্যান্ড্রয়েড ১৬-তে, সিটি উপলব্ধ কিন্তু অ্যাপগুলিকে অপ্ট-ইন করতে হবে।)

নিরাপদ নেটিভ ডিসিএল—সি

যদি আপনার অ্যাপটি অ্যান্ড্রয়েড ১৭ বা তার উচ্চতর ভার্সনের জন্য তৈরি হয়, তাহলে DEX এবং JAR ফাইলের জন্য অ্যান্ড্রয়েড ১৪-তে প্রবর্তিত নিরাপদ ডায়নামিক কোড লোডিং (DCL) সুরক্ষা এখন স্থানীয় লাইব্রেরিগুলিতেও প্রসারিত হবে।

System.load() ব্যবহার করে লোড করা সমস্ত নেটিভ ফাইলগুলিকে কেবল পঠনযোগ্য হিসাবে চিহ্নিত করতে হবে। অন্যথায়, সিস্টেমটি UnsatisfiedLinkError নিক্ষেপ করবে।

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

ডিভাইস ফর্ম ফ্যাক্টর

বিভিন্ন আকারের ডিভাইস এবং ফর্ম ফ্যাক্টর জুড়ে ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে অ্যান্ড্রয়েড ১৭-তে নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত করা হয়েছে।

বড় স্ক্রিনে (sw>=600dp) ওরিয়েন্টেশন, রিসাইজেবিলিটি এবং অ্যাসপেক্ট রেশিও সীমাবদ্ধতা উপেক্ষা করার জন্য প্ল্যাটফর্ম API পরিবর্তন করা হয়েছে।

আমরা Android 16-এ প্ল্যাটফর্ম API পরিবর্তনগুলি চালু করেছি যাতে API লেভেল 36 বা তার বেশি ভার্সনের অ্যাপগুলির জন্য বড় স্ক্রিনে (sw >= 600dp) ওরিয়েন্টেশন, আকৃতির অনুপাত এবং আকার পরিবর্তনের সীমাবদ্ধতা উপেক্ষা করা যায় । ডেভেলপারদের SDK 36 ব্যবহার করে এই পরিবর্তনগুলি থেকে বেরিয়ে আসার বিকল্প রয়েছে, তবে Android 17 বা তার বেশি ভার্সনের অ্যাপগুলির জন্য এই অপ্ট-আউট আর উপলব্ধ থাকবে না।

আরও তথ্যের জন্য, ওরিয়েন্টেশন এবং আকার পরিবর্তনের উপর বিধিনিষেধ উপেক্ষা করা হয়েছে দেখুন।