আগের সংস্করণগুলোর মতোই, Android 17-এ কিছু গুরুত্বপূর্ণ পরিবর্তন আনা হয়েছে যা আপনার অ্যাপের আচরণে প্রভাব ফেলতে পারে। এই পরিবর্তনগুলো শুধুমাত্র সেই অ্যাপগুলোর জন্য প্রযোজ্য, যেগুলো Android 17 (API level 37) বা তার উপরের ভার্সন টার্গেট করে তৈরি করা হয়েছে। তাই আপনার অ্যাপ যদি Android 17 টার্গেট করে, তাহলে নতুন আচরণগুলোর সাথে সামঞ্জস্য রাখতে প্রয়োজনীয় আপডেট করা জরুরি।
এছাড়াও মনে রাখতে হবে, Android 17-এ এমন কিছু পরিবর্তন রয়েছে যা সব অ্যাপের ক্ষেত্রেই কার্যকর হবে, অ্যাপ কোন targetSdkVersion ব্যবহার করছে তা বিবেচ্য নয়।
নিচে Android 17-এর গুরুত্বপূর্ণ পরিবর্তনগুলো সহজ ভাষায় তুলে ধরা হলো।
Android 17-এর গুরুত্বপূর্ণ পরিবর্তনসমূহ
Core Functionality
MessageQueue-এর নতুন Lock-Free Implementation
Android 17-এ android.os.MessageQueue-এর জন্য নতুন lock-free implementation যুক্ত করা হয়েছে। এর ফলে অ্যাপের পারফরম্যান্স আরও দ্রুত হবে এবং frame drop বা lag কমবে।
তবে যেসব অ্যাপ MessageQueue-এর private field বা method reflection-এর মাধ্যমে ব্যবহার করে, সেগুলোতে সমস্যা দেখা দিতে পারে। তাই এমন অ্যাপগুলোকে নতুন আচরণের সাথে সামঞ্জস্যপূর্ণ করে আপডেট করতে হবে।
Static Final Field আর পরিবর্তন করা যাবে না
Android 17 টার্গেট করা অ্যাপগুলো আর static final field পরিবর্তন করতে পারবে না। যদি কোনো অ্যাপ reflection ব্যবহার করে এই ধরনের field পরিবর্তনের চেষ্টা করে, তাহলে IllegalAccessException দেখাবে। আর JNI API ব্যবহার করে পরিবর্তনের চেষ্টা করলে অ্যাপ সরাসরি crash করতে পারে।
Accessibility উন্নয়ন
CJKV ভাষার জন্য উন্নত Screen Reader Support
Android 17-এ Accessibility আরও উন্নত করা হয়েছে, বিশেষ করে চাইনিজ, জাপানিজ, কোরিয়ান ও ভিয়েতনামিজ (CJKV) ভাষার জন্য। নতুন AccessibilityEvent এবং TextAttribute API যুক্ত হওয়ায় screen reader এখন আরও নির্ভুলভাবে text পরিবর্তনের তথ্য বুঝতে পারবে। এতে visually impaired ব্যবহারকারীরা আরও ভালো অভিজ্ঞতা পাবেন।
IME অ্যাপের জন্য সুবিধা
Keyboard বা IME অ্যাপ এখন বুঝাতে পারবে কোনো text suggestion user নির্বাচন করেছে কিনা।
Custom InputConnection ব্যবহৃত অ্যাপ
যেসব অ্যাপ custom edit field ব্যবহার করে, তারা text change type নির্ধারণ করতে পারবে। ফলে accessibility service সহজে বুঝতে পারবে text typing-এর সময় পরিবর্তন হয়েছে নাকি final commit হয়েছে।
Privacy ও নিরাপত্তা
Encrypted Client Hello (ECH) Support
Android 17-এ নতুনভাবে ECH বা Encrypted Client Hello সাপোর্ট যুক্ত হয়েছে। এটি TLS connection-এর সময় Server Name Indication (SNI) এনক্রিপ্ট করে, ফলে ব্যবহারকারী কোন ওয়েবসাইটে সংযোগ দিচ্ছে তা সহজে ট্র্যাক করা যায় না। এতে ব্যবহারকারীর privacy আরও সুরক্ষিত থাকে।
তবে ECH কাজ করার জন্য:
- অ্যাপের networking library-তে ECH support থাকতে হবে
- Server-এও ECH enabled থাকতে হবে
Local Network Permission বাধ্যতামূলক
Android 17-এ local network access-এর জন্য নতুন ACCESS_LOCAL_NETWORK permission চালু করা হয়েছে।এখন LAN বা local network-এর ডিভাইস যেমন:
- Smart Home Device
- Casting Device
- Local IoT Device
এর সাথে সংযোগ করতে চাইলে অ্যাপকে এই permission নিতে হবে। Android 16-এ এটি optional ছিল, কিন্তু Android 17 থেকে এটি বাধ্যতামূলক করা হয়েছে।
External Keyboard ব্যবহার করলে Password আরও নিরাপদ
যদি ব্যবহারকারী external physical keyboard ব্যবহার করেন, তাহলে Android 17 password field-এর সব character hidden রাখবে। আগে শেষ typed character কিছু সময়ের জন্য দেখা যেত, কিন্তু বড় স্ক্রিন ও external keyboard-এর কারণে privacy ঝুঁকি বাড়ায় এখন এটি আরও নিরাপদ করা হয়েছে।
OTP SMS Protection আরও শক্তিশালী
Android 17-এ OTP সম্পর্কিত SMS সুরক্ষা আরও উন্নত করা হয়েছে। এখন সাধারণ OTP SMS message অ্যাপের কাছে সঙ্গে সঙ্গে পৌঁছাবে না। বেশিরভাগ ক্ষেত্রে ৩ ঘণ্টা delay হবে, যাতে OTP hijacking প্রতিরোধ করা যায়।
যেসব অ্যাপ OTP পড়ার উপর নির্ভর করে, তাদের এখন:
- SMS Retriever API অথবা
- SMS User Consent API
ব্যবহার করার পরামর্শ দেওয়া হয়েছে।
Security উন্নয়ন
Activity Security আরও কঠোর
Android 17 “secure-by-default” নীতিকে আরও শক্তিশালী করেছে। এতে phishing, interaction hijacking এবং confused deputy attack-এর মতো ঝুঁকি কমানো হয়েছে।
বিশেষ করে:
- Background Activity Launch (BAL) restrictions আরও কঠোর হয়েছে
- পুরোনো
MODE_BACKGROUND_ACTIVITY_START_ALLOWEDব্যবহারের পরিবর্তে নতুন secure mode ব্যবহার করতে হবে
Certificate Transparency (CT) ডিফল্টভাবে চালু
Android 17 টার্গেট করা অ্যাপগুলোর জন্য Certificate Transparency এখন default হিসেবে enabled থাকবে।এর ফলে SSL certificate আরও নির্ভরযোগ্য ও নিরাপদ হবে।
Dynamic Code Loading আরও নিরাপদ
Android 14-এ শুরু হওয়া Safer Dynamic Code Loading (DCL) সুরক্ষা এখন native library-এর ক্ষেত্রেও প্রযোজ্য।
System.load() দিয়ে load করা native file অবশ্যই read-only হতে হবে। অন্যথায় UnsatisfiedLinkError দেখা দেবে।
Contacts Data-তে PII সুরক্ষা
ব্যবহারকারীর ব্যক্তিগত তথ্য (PII) সুরক্ষার জন্য Android 17 এখন কিছু sensitive field লুকিয়ে রাখবে।
যেমন:
- ACCOUNT_NAME
- ACCOUNT_TYPE
এসব তথ্য সরাসরি access করা যাবে না।
Strict SQL Validation
Contacts database query করার সময় এখন আরও কঠোর SQL validation চালু হয়েছে।
যদি অ্যাপের READ_CONTACTS permission না থাকে এবং ভুল query ব্যবহার করা হয়, তাহলে exception তৈরি হবে।
Media পরিবর্তন
Background Audio Restrictions
Android 17-এ background audio নিয়ন্ত্রণ আরও কঠোর করা হয়েছে।
যদি কোনো অ্যাপ background-এ থেকে:
- Audio play করে
- Audio focus নেয়
- Volume পরিবর্তন করে
তাহলে foreground service চালু থাকতে হবে।
কিছু ক্ষেত্রে:
- While-in-use capability অথবা
- Exact alarm permission
প্রয়োজন হতে পারে।
Large Screen ও Foldable Device Support
Orientation Restriction উপেক্ষা করা হবে
বড় স্ক্রিনের ডিভাইস (sw >= 600dp) যেমন:
- Tablet
- Foldable Phone
এখন orientation, aspect ratio ও resize restriction উপেক্ষা করতে পারে।
Android 17 টার্গেট করা অ্যাপগুলো আর আগের মতো opt-out করতে পারবে না।
Connectivity পরিবর্তন
BluetoothSocket read() আচরণ পরিবর্তন
Android 17-এ RFCOMM BluetoothSocket-এর read() method এখন connection বন্ধ হলে -1 return করবে।
আগে অনেক অ্যাপ শুধু IOException ধরেই loop বন্ধ করত। এখন অ্যাপকে -1 return value-ও চেক করতে হবে, না হলে read loop ঠিকভাবে বন্ধ নাও হতে পারে।
Android 17 মূলত পারফরম্যান্স, privacy, security এবং accessibility আরও উন্নত করার দিকে গুরুত্ব দিয়েছে। নতুন permission system, stricter security policy এবং enhanced user privacy-এর কারণে ডেভেলপারদের অ্যাপ আপডেট করা এখন আরও গুরুত্বপূর্ণ হয়ে উঠেছে।
যেসব অ্যাপ Android 17 target করবে, তাদের অবশ্যই নতুন behavior changes ভালোভাবে বুঝে প্রয়োজনীয় পরিবর্তন করতে হবে, যাতে অ্যাপ stable, secure এবং user-friendly থাকে।
