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

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

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

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

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

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

Beginning with Android 17, apps targeting Android 17 or higher receive a new lock-free implementation of android.os.MessageQueue. The new implementation improves performance and reduces missed frames, but may break clients that reflect on MessageQueue private fields and methods.

For more information, including mitigation strategies, see MessageQueue behavior change guidance.

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

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

জটিল 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() কল করতে পারে।

নিরাপত্তা

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

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

In Android 17, the platform continues its shift toward a "secure-by-default" architecture, introducing a suite of enhancements designed to mitigate high-severity exploits such as phishing, interaction hijacking, and confused deputy attacks. This update requires developers to explicitly opt in to new security standards to maintain app compatibility and user protection.

Key impacts for developers include:

  • BAL hardening & improved opt-in: We are refining Background Activity Launch (BAL) restrictions by extending protections to IntentSender. Developers must migrate away from the legacy MODE_BACKGROUND_ACTIVITY_START_ALLOWED constant. Instead, you should adopt granular controls like MODE_BACKGROUND_ACTIVITY_START_ALLOW_IF_VISIBLE, which restricts activity starts to scenarios where the calling app is visible, significantly reducing the attack surface.
  • Adoption tools: Developers should utilize strict mode and updated lint checks to identify legacy patterns and ensure readiness for future target SDK requirements.

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

To improve platform security and user privacy, Android 17 introduces a new install-time permission, USE_LOOPBACK_INTERFACE. This change restricts cross-app and cross-profile communication over the loopback interface (for example, 127.0.0.1 or ::1), which was previously implicitly allowed with the INTERNET permission. For apps targeting Android 17 or higher, the following rules apply:

  • Mutual consent required: cross-app and cross-profile communication is now blocked by default. For a connection to succeed, both the sending app and the receiving app must explicitly declare the USE_LOOPBACK_INTERFACE permission in their manifests.
  • Intra-app traffic exempt: Loopback communication within the same app (intra-app communication) remains unaffected and does not require this new permission.
  • Target SDK behavior:
    • App targets Android 17 or higher: The permission must be explicitly requested. If it is missing, socket operations (such as TCP connect or UDP send) fail, typically returning an EPERM (operation not permitted) error.
    • App targets API level 36 or lower: The permission is treated as a split permission on INTERNET. Apps targeting lower API levels are auto-granted this permission if they hold INTERNET.
  • Compatibility warning: If a receiving app updates its target to Android 17 but fails to request this permission, incoming connections from other apps are be rejected, even if the sending app targets a lower API level.

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

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

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

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

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

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

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

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

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

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

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