পূর্ববর্তী রিলিজের মতো, Android 16-এ আচরণের পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা আপনার অ্যাপকে প্রভাবিত করতে পারে। নিম্নলিখিত আচরণ পরিবর্তনগুলি শুধুমাত্র Android 16 বা উচ্চতরকে লক্ষ্য করে এমন অ্যাপগুলিতে প্রযোজ্য। যদি আপনার অ্যাপটি Android 16 বা উচ্চতরকে লক্ষ্য করে থাকে, তাহলে প্রযোজ্য ক্ষেত্রে এই আচরণগুলিকে সমর্থন করার জন্য আপনার অ্যাপটি সংশোধন করা উচিত।
আপনার অ্যাপ্লিকেশানের targetSdkVersion
নির্বিশেষে Android 16-এ চলমান সমস্ত অ্যাপ্লিকেশানকে প্রভাবিত করে এমন আচরণের পরিবর্তনগুলির তালিকাটিও পর্যালোচনা করতে ভুলবেন না।
ব্যবহারকারীর অভিজ্ঞতা এবং সিস্টেম UI
Android 16-এ নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা আরও সামঞ্জস্যপূর্ণ, স্বজ্ঞাত ব্যবহারকারীর অভিজ্ঞতা তৈরি করার উদ্দেশ্যে করা হয়েছে৷
ভবিষ্যদ্বাণীমূলক ফিরে জন্য মাইগ্রেশন বা অপ্ট-আউট প্রয়োজন
অ্যান্ড্রয়েড 16 বা তার বেশির দিকে লক্ষ্য করে এবং একটি অ্যান্ড্রয়েড 16 বা উচ্চতর ডিভাইসে চলমান অ্যাপ্লিকেশানগুলির জন্য, ভবিষ্যদ্বাণীমূলক ব্যাক সিস্টেম অ্যানিমেশনগুলি (ব্যাক-টু-হোম, ক্রস-টাস্ক এবং ক্রস-অ্যাক্টিভিটি) ডিফল্টরূপে সক্রিয় থাকে। উপরন্তু, onBackPressed
বলা হয় না এবং KeyEvent.KEYCODE_BACK
আর পাঠানো হয় না।
যদি আপনার অ্যাপ ব্যাক ইভেন্টে বাধা দেয় এবং আপনি এখনও ভবিষ্যদ্বাণীতে স্থানান্তরিত না হন, তাহলে সমর্থিত ব্যাক নেভিগেশন API ব্যবহার করতে আপনার অ্যাপ আপডেট করুন । অথবা আপনার অ্যাপের AndroidManifest.xml
ফাইলের <application>
বা <activity>
ট্যাগে android:enableOnBackInvokedCallback
অ্যাট্রিবিউটটিকে false
সেট করে সাময়িকভাবে অপ্ট-আউট করুন।
মূল কার্যকারিতা
Android 16-এ নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে যা Android সিস্টেমের বিভিন্ন মূল ক্ষমতাগুলিকে সংশোধন বা প্রসারিত করে৷
নির্দিষ্ট হার কাজের সময়সূচী অপ্টিমাইজেশান
Android 16 টার্গেট করার আগে, যখন scheduleAtFixedRate
একটি বৈধ প্রক্রিয়া লাইফসাইকেলের বাইরে থাকার কারণে একটি টাস্ক এক্সিকিউশন মিস করে, অ্যাপটি একটি বৈধ লাইফসাইকেলে ফিরে গেলে সমস্ত মিস করা এক্সিকিউশন অবিলম্বে কার্যকর হয়।
অ্যান্ড্রয়েড 16-কে টার্গেট করার সময়, অ্যাপটি একটি বৈধ জীবনচক্রে ফিরে এলে scheduleAtFixedRate
সর্বাধিক একটি মিস করা কার্যকর করা হয়। এই আচরণ পরিবর্তন অ্যাপের কর্মক্ষমতা উন্নত করবে বলে আশা করা হচ্ছে। আপনার অ্যাপ প্রভাবিত হয়েছে কিনা তা পরীক্ষা করতে আপনার অ্যাপে এই আচরণ পরীক্ষা করুন। এছাড়াও আপনি অ্যাপের সামঞ্জস্যতা ফ্রেমওয়ার্ক ব্যবহার করে এবং STPE_SKIP_MULTIPLE_MISSED_PERIODIC_TASKS
কম্প্যাট পতাকা সক্ষম করে পরীক্ষা করতে পারেন।
বড় পর্দা এবং ফর্ম ফ্যাক্টর
Android 16 বড় স্ক্রীন ডিভাইসে প্রদর্শিত হলে অ্যাপগুলির জন্য নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত করে৷
অভিযোজিত বিন্যাস
অ্যান্ড্রয়েড অ্যাপ্লিকেশানগুলি এখন বিভিন্ন ডিভাইসে (যেমন ফোন, ট্যাবলেট, ফোল্ডেবল এবং ডেস্কটপ) এবং বড় স্ক্রিনে (যেমন স্প্লিট স্ক্রিন এবং ডেস্কটপ উইন্ডোজিং) উইন্ডো করার মোডগুলিতে চলছে, ডেভেলপারদের উচিত যে কোনও স্ক্রীন এবং উইন্ডোর সাথে খাপ খাইয়ে নেওয়া Android অ্যাপ তৈরি করা আকার, ডিভাইস অভিযোজন নির্বিশেষে। আজকের মাল্টিডিভাইস বিশ্বে সীমাবদ্ধতা এবং পরিবর্তনযোগ্যতার মতো দৃষ্টান্তগুলি খুব সীমাবদ্ধ।
অভিযোজন, পরিবর্তনযোগ্যতা এবং আকৃতির অনুপাতের সীমাবদ্ধতা উপেক্ষা করুন
অ্যান্ড্রয়েড 16 টার্গেট করা অ্যাপগুলির জন্য, অ্যান্ড্রয়েড 16-এ সিস্টেম কীভাবে অভিযোজন, পরিবর্তনযোগ্যতা এবং আকৃতির অনুপাতের সীমাবদ্ধতাগুলি পরিচালনা করে তার পরিবর্তনগুলি অন্তর্ভুক্ত করে৷ সবচেয়ে ছোট প্রস্থ >= 600dp সহ ডিসপ্লেতে, বিধিনিষেধ আর প্রযোজ্য নয়। অ্যাসপেক্ট রেশিও বা ব্যবহারকারীর পছন্দের অভিযোজন নির্বিশেষে অ্যাপগুলি সম্পূর্ণ ডিসপ্লে উইন্ডোটি পূরণ করে এবং পিলারবক্সিং ব্যবহার করা হয় না।
এই পরিবর্তনটি একটি নতুন স্ট্যান্ডার্ড প্ল্যাটফর্ম আচরণ প্রবর্তন করে। অ্যান্ড্রয়েড এমন একটি মডেলের দিকে অগ্রসর হচ্ছে যেখানে অ্যাপগুলি বিভিন্ন অভিযোজন, প্রদর্শনের আকার এবং আকৃতির অনুপাতের সাথে খাপ খাইয়ে নেবে বলে আশা করা হচ্ছে। স্থির অভিযোজন বা সীমিত আকার পরিবর্তন করার মতো বিধিনিষেধগুলি অ্যাপের অভিযোজনযোগ্যতাকে বাধা দেয়, তাই আমরা সর্বোত্তম সম্ভাব্য ব্যবহারকারীর অভিজ্ঞতা প্রদানের জন্য আপনার অ্যাপটিকে অভিযোজিত করার পরামর্শ দিই।
সাধারণ ব্রেকিং পরিবর্তন
অভিযোজন, পরিবর্তনযোগ্যতা এবং আকৃতির অনুপাতের সীমাবদ্ধতাগুলিকে উপেক্ষা করা কিছু ডিভাইসে আপনার অ্যাপের UI-কে প্রভাবিত করতে পারে, বিশেষ করে এমন উপাদানগুলি যেগুলি পোর্ট্রেট অভিযোজনে লক করা ছোট লেআউটগুলির জন্য ডিজাইন করা হয়েছিল: উদাহরণস্বরূপ, প্রসারিত লেআউট এবং অফ-স্ক্রিন অ্যানিমেশন এবং উপাদানগুলির মতো সমস্যা৷ আকৃতির অনুপাত বা অভিযোজন সম্পর্কে যেকোন অনুমান আপনার অ্যাপে ভিজ্যুয়াল সমস্যা সৃষ্টি করতে পারে। কীভাবে এগুলি এড়ানো যায় এবং আপনার অ্যাপের অভিযোজিত আচরণ উন্নত করা যায় সে সম্পর্কে আরও জানুন ।
ডিভাইস ঘূর্ণন মঞ্জুরি প্রদানের ফলে আরও কার্যকলাপ পুনঃসৃষ্টি হয়, যা সঠিকভাবে সংরক্ষণ না করলে ব্যবহারকারীর অবস্থা হারাতে পারে। সেভ UI স্টেটে কীভাবে সঠিকভাবে UI স্থিতি সংরক্ষণ করবেন তা শিখুন।
বাস্তবায়নের বিবরণ
নিম্নলিখিত ম্যানিফেস্ট অ্যাট্রিবিউট এবং রানটাইম APIগুলি পূর্ণ-স্ক্রীন এবং মাল্টি-উইন্ডো মোডে বড় স্ক্রীন ডিভাইসগুলিতে উপেক্ষা করা হয়:
-
screenOrientation
-
resizableActivity
-
minAspectRatio
-
maxAspectRatio
-
setRequestedOrientation()
-
getRequestedOrientation()
screenOrientation
, setRequestedOrientation()
, এবং getRequestedOrientation()
এর জন্য নিম্নলিখিত মানগুলি উপেক্ষা করা হয়েছে:
-
portrait
-
reversePortrait
-
sensorPortrait
-
userPortrait
-
landscape
-
reverseLandscape
-
sensorLandscape
-
userLandscape
ডিসপ্লে রিসাইজযোগ্যতা সম্পর্কে, android:resizeableActivity="false"
, android:minAspectRatio
, এবং android:maxAspectRatio
কোনো প্রভাব নেই৷
অ্যান্ড্রয়েড 16-কে টার্গেট করা অ্যাপগুলির জন্য, ডিফল্টভাবে বড় স্ক্রিনে অ্যাপের অভিযোজন, পরিবর্তনযোগ্যতা এবং আকৃতির অনুপাতের সীমাবদ্ধতাগুলি উপেক্ষা করা হয়, তবে সম্পূর্ণরূপে প্রস্তুত নয় এমন প্রতিটি অ্যাপ সাময়িকভাবে অপ্ট-আউট করে এই আচরণকে ওভাররাইড করতে পারে (যার ফলে স্থাপনের আগের আচরণ সামঞ্জস্য মোডে)।
ব্যতিক্রম
নিম্নলিখিত পরিস্থিতিতে Android 16 অভিযোজন, পরিবর্তনযোগ্যতা এবং আকৃতির অনুপাতের সীমাবদ্ধতা প্রযোজ্য নয়:
- গেমস (
android:appCategory
পতাকার উপর ভিত্তি করে) - ব্যবহারকারীরা ডিভাইসের আকৃতির অনুপাত সেটিংসে অ্যাপের ডিফল্ট আচরণে স্পষ্টভাবে নির্বাচন করছেন
-
sw600dp
এর থেকে ছোট স্ক্রীন
সাময়িকভাবে অপ্ট আউট করুন
একটি নির্দিষ্ট কার্যকলাপ অপ্ট আউট করতে, PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY
ম্যানিফেস্ট সম্পত্তি ঘোষণা করুন:
<activity ...>
<property android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY" android:value="true" />
...
</activity>
যদি আপনার অ্যাপের অনেক অংশ Android 16-এর জন্য প্রস্তুত না হয়, তাহলে আপনি অ্যাপ্লিকেশন স্তরে একই সম্পত্তি প্রয়োগ করে সম্পূর্ণরূপে অপ্ট আউট করতে পারেন:
<application ...>
<property android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY" android:value="true" />
</application>
স্বাস্থ্য এবং ফিটনেস
Android 16-এ স্বাস্থ্য এবং ফিটনেস ডেটা সম্পর্কিত নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে৷
স্বাস্থ্য এবং ফিটনেস অনুমতি
অ্যান্ড্রয়েড 16 বা উচ্চতরকে লক্ষ্য করা অ্যাপগুলির জন্য, BODY_SENSORS
অনুমতিগুলি android.permissions.health
এর অধীনে দানাদার অনুমতিগুলিতে রূপান্তরিত হচ্ছে যা Health Connect দ্বারাও ব্যবহৃত হয়৷ যে কোনো API এর আগে BODY_SENSORS
বা BODY_SENSORS_BACKGROUND
জন্য এখন সংশ্লিষ্ট android.permissions.health
অনুমতি প্রয়োজন। এটি নিম্নলিখিত ডেটা প্রকার, API এবং ফোরগ্রাউন্ড পরিষেবার প্রকারগুলিকে প্রভাবিত করে:
- Wear Health Services থেকে
HEART_RATE_BPM
- Android সেন্সর ম্যানেজার থেকে
Sensor.TYPE_HEART_RATE
- Wear
ProtoLayout
থেকেheartRateAccuracy
এবংheartRateBpm
-
FOREGROUND_SERVICE_TYPE_HEALTH
যেখানেBODY_SENSORS
এর জায়গায় সংশ্লিষ্টandroid.permission.health
অনুমতি প্রয়োজন
যদি আপনার অ্যাপ এই APIগুলি ব্যবহার করে, তাহলে এটিকে এখন সংশ্লিষ্ট দানাদার অনুমতির অনুরোধ করা উচিত:
- ব্যবহারের সময় হার্ট রেট, SpO2 বা ত্বকের তাপমাত্রা পর্যবেক্ষণের জন্য:
android.permissions.health
অধীনে দানাদার অনুমতির জন্য অনুরোধ করুন, যেমনBODY_SENSORS
পরিবর্তেREAD_HEART_RATE
। - ব্যাকগ্রাউন্ড সেন্সর অ্যাক্সেসের জন্য:
BODY_SENSORS_BACKGROUND
এর পরিবর্তেREAD_HEALTH_DATA_IN_BACKGROUND
অনুরোধ করুন।
এই অনুমতিগুলি স্বাস্থ্য, ফিটনেস এবং সুস্থতার ডেটার জন্য Android ডেটাস্টোর Health Connect থেকে ডেটা পড়ার অ্যাক্সেস রক্ষা করে সেই অনুমতিগুলির মতোই৷