অ্যান্ড্রয়েড 13 ডেভেলপারদের জন্য দুর্দান্ত নতুন বৈশিষ্ট্য এবং এপিআই প্রবর্তন করে। নীচের বিভাগগুলি আপনাকে আপনার অ্যাপগুলির বৈশিষ্ট্যগুলি সম্পর্কে জানতে এবং সম্পর্কিত APIগুলির সাথে শুরু করতে সহায়তা করে৷
নতুন, পরিবর্তিত এবং সরানো API-এর বিস্তারিত তালিকার জন্য, API ডিফ রিপোর্ট পড়ুন। নতুন এপিআই সম্পর্কে বিস্তারিত জানার জন্য অ্যান্ড্রয়েড এপিআই রেফারেন্স দেখুন — নতুন এপিআইগুলি দৃশ্যমানতার জন্য হাইলাইট করা হয়েছে। এছাড়াও, প্ল্যাটফর্মের পরিবর্তনগুলি আপনার অ্যাপ্লিকেশানগুলিকে প্রভাবিত করতে পারে এমন অঞ্চলগুলি সম্পর্কে জানতে, Android 13 এবং সমস্ত অ্যাপ্লিকেশানগুলিকে লক্ষ্য করে এমন অ্যাপ্লিকেশানগুলির জন্য Android 13 আচরণের পরিবর্তনগুলি পরীক্ষা করে দেখুন৷
বিকাশকারীর উত্পাদনশীলতা এবং সরঞ্জাম
থিমযুক্ত অ্যাপ আইকন
![ব্যবহারকারী থিমযুক্ত অ্যাপ আইকন বেছে নিচ্ছেন](https://developer.android.com/static/images/about/versions/13/themed-app-icons.gif?authuser=0&hl=bn)
Android 13 দিয়ে শুরু করে, আপনি থিমযুক্ত অ্যাপ আইকন বেছে নিতে পারেন। এই বৈশিষ্ট্যটির সাহায্যে, সমর্থিত অ্যান্ড্রয়েড লঞ্চারগুলিতে অ্যাপ্লিকেশন আইকনগুলি ব্যবহারকারীর নির্বাচিত ওয়ালপেপার এবং অন্যান্য থিমের রঙের উত্তরাধিকারী হওয়ার জন্য রঙিন করা হয়৷
এই বৈশিষ্ট্যটিকে সমর্থন করার জন্য, আপনার অ্যাপটিকে অবশ্যই একটি অভিযোজিত আইকন এবং একটি একরঙা অ্যাপ আইকন উভয়ই প্রদান করতে হবে এবং ম্যানিফেস্টের <adaptive-icon>
> উপাদান থেকে একরঙা অ্যাপ আইকনে নির্দেশ করতে হবে। যদি কোনও ব্যবহারকারী থিমযুক্ত অ্যাপ আইকনগুলি সক্ষম করে থাকে (অন্য কথায়, সিস্টেম সেটিংসে থিমযুক্ত আইকন টগল চালু করে) এবং লঞ্চার এই বৈশিষ্ট্যটিকে সমর্থন করে, সিস্টেমটি টিন্ট রঙ নির্ধারণ করতে ব্যবহারকারীর নির্বাচিত ওয়ালপেপার এবং থিমের রঙ ব্যবহার করে, যা এটি তখন একরঙা অ্যাপ আইকনে প্রযোজ্য।
হোম স্ক্রীন থিমযুক্ত অ্যাপ আইকন প্রদর্শন করে না—এবং এর পরিবর্তে অভিযোজিত বা মানক অ্যাপ আইকন প্রদর্শন করে—নিম্নলিখিত পরিস্থিতিতে যেকোনো একটিতে:
- ব্যবহারকারী যদি থিমযুক্ত অ্যাপ আইকন সক্রিয় না করে থাকে
- যদি আপনার অ্যাপটি একরঙা অ্যাপ আইকন প্রদান না করে
- যদি লঞ্চার থিমযুক্ত অ্যাপ আইকন সমর্থন না করে
আরও বিশদ বিবরণ এবং নির্দেশাবলীর জন্য, অভিযোজিত আইকনগুলি দেখুন।
প্রতি-অ্যাপ ভাষা পছন্দ
![](https://developer.android.com/static/images/about/versions/13/app-languages.png?authuser=0&hl=bn)
অনেক ক্ষেত্রে, বহুভাষিক ব্যবহারকারীরা তাদের সিস্টেমের ভাষাকে একটি ভাষাতে সেট করে - যেমন ইংরেজি - কিন্তু তারা নির্দিষ্ট অ্যাপের জন্য অন্যান্য ভাষা নির্বাচন করতে চায়, যেমন ডাচ, চাইনিজ বা হিন্দি। এই ব্যবহারকারীদের জন্য অ্যাপগুলিকে আরও ভাল অভিজ্ঞতা প্রদানে সহায়তা করার জন্য, Android 13 একাধিক ভাষা সমর্থন করে এমন অ্যাপগুলির জন্য নিম্নলিখিত বৈশিষ্ট্যগুলি প্রবর্তন করে:
সিস্টেম সেটিংস : একটি কেন্দ্রীভূত অবস্থান যেখানে ব্যবহারকারীরা প্রতিটি অ্যাপের জন্য একটি পছন্দের ভাষা নির্বাচন করতে পারেন।
আপনার অ্যাপটিকে অবশ্যই আপনার অ্যাপের ম্যানিফেস্টে
android:localeConfig
অ্যাট্রিবিউটটি ঘোষণা করতে হবে যাতে সিস্টেমটি একাধিক ভাষা সমর্থন করে। আরও জানতে, একটি রিসোর্স ফাইল তৈরি এবং আপনার অ্যাপের ম্যানিফেস্ট ফাইলে ঘোষণা করার নির্দেশাবলী দেখুন।অতিরিক্ত API : এই সর্বজনীন API, যেমন
setApplicationLocales()
এবংgetApplicationLocales()
পদ্ধতিLocaleManager
এ, অ্যাপগুলিকে রানটাইমে সিস্টেম ভাষা থেকে একটি ভিন্ন ভাষা সেট করতে দেয়।এই APIগুলি স্বয়ংক্রিয়ভাবে সিস্টেম সেটিংসের সাথে সিঙ্ক হয়; তাই, যে অ্যাপগুলি কাস্টম ইন-অ্যাপ ল্যাঙ্গুয়েজ পিকার তৈরি করতে এই APIগুলি ব্যবহার করে সেগুলি নিশ্চিত করবে যে তাদের ব্যবহারকারীরা তাদের ভাষা পছন্দগুলি যেখানেই বেছে নিন না কেন তাদের ব্যবহারকারীদের একটি সামঞ্জস্যপূর্ণ ব্যবহারকারীর অভিজ্ঞতা রয়েছে। পাবলিক APIগুলি আপনাকে বয়লারপ্লেট কোডের পরিমাণ কমাতেও সাহায্য করে, তারা বিভক্ত APK সমর্থন করে এবং তারা অ্যাপ-স্তরের ব্যবহারকারী ভাষা সেটিংস সংরক্ষণ করতে অ্যাপগুলির জন্য স্বয়ংক্রিয় ব্যাকআপ সমর্থন করে।
পূর্ববর্তী অ্যান্ড্রয়েড সংস্করণগুলির সাথে পিছিয়ে থাকা সামঞ্জস্যের জন্য, সমতুল্য APIগুলিও AndroidX-এ উপলব্ধ। আমরা Appcompat 1.6.0-beta01 বা উচ্চতর এপিআই ব্যবহার করার পরামর্শ দিই।
যে অ্যাপগুলি একাধিক ভাষা সমর্থন করে না সেগুলি এই পরিবর্তনগুলির দ্বারা প্রভাবিত হয় না৷
উন্নত টেক্সট এবং ভাষা সমর্থন
অ্যান্ড্রয়েড 13-এ বেশ কয়েকটি বৈশিষ্ট্যের পাঠ্য এবং ভাষার উন্নতি রয়েছে যা আপনাকে আরও সুন্দর অভিজ্ঞতা প্রদান করতে সহায়তা করে, যা নিম্নলিখিত বিভাগগুলি বর্ণনা করে:
দ্রুত হাইফেনেশন
হাইফেনেশন মোড়ানো টেক্সট পড়া সহজ করে তোলে এবং আপনার UI আরও অভিযোজিত করতে সাহায্য করে। অ্যান্ড্রয়েড 13 থেকে শুরু করে, হাইফেনেশন পারফরম্যান্স 200% পর্যন্ত অপ্টিমাইজ করা হয়েছে যাতে আপনি এটি আপনার TextView
সক্ষম করতে পারেন যাতে রেন্ডারিং কার্যক্ষমতার উপর প্রায় কোনও প্রভাব না পড়ে। দ্রুত হাইফেনেশন সক্ষম করতে, setHyphenationFrequency()
এ fullFast
বা normalFast
ফ্রিকোয়েন্সি ব্যবহার করুন।
পাঠ্য রূপান্তর API
যারা জাপানি এবং চাইনিজ ভাষায় কথা বলে তারা ফোনেটিক লেটারিং ইনপুট পদ্ধতি ব্যবহার করে, যা প্রায়শই অনুসন্ধান এবং স্বয়ংসম্পূর্ণতার মতো বৈশিষ্ট্যগুলিকে ধীর করে দেয়। অ্যান্ড্রয়েড 13-এ, অ্যাপগুলি নতুন পাঠ্য রূপান্তর API কল করতে পারে যাতে ব্যবহারকারীরা দ্রুত এবং সহজে যা খুঁজছেন তা খুঁজে পেতে পারেন। পূর্বে, উদাহরণস্বরূপ, অনুসন্ধানের জন্য একজন জাপানি ব্যবহারকারীকে এই পদক্ষেপগুলি করতে হবে:
- হিরাগানাকে তাদের অনুসন্ধান শব্দের ধ্বনিগত উচ্চারণ হিসাবে ইনপুট করুন (যেমন একটি স্থান বা একটি অ্যাপের নাম)
- হিরাগানা অক্ষরকে কাঞ্জিতে রূপান্তর করতে কীবোর্ড ব্যবহার করুন
- কাঞ্জি অক্ষর ব্যবহার করে পুনরায় অনুসন্ধান করুন
- অবশেষে তাদের অনুসন্ধান ফলাফল পান
নতুন পাঠ্য রূপান্তর API এর সাথে, জাপানি ব্যবহারকারীরা হিরাগানায় টাইপ করতে পারে এবং অবিলম্বে কাঞ্জি অনুসন্ধান ফলাফল লাইভ দেখতে পারে, ধাপ 2 এবং 3 এড়িয়ে যায়৷
অ-ল্যাটিন স্ক্রিপ্টগুলির জন্য উন্নত লাইন উচ্চতা
Android 13 প্রতিটি ভাষার জন্য অভিযোজিত লাইনের উচ্চতা ব্যবহার করে অ-ল্যাটিন স্ক্রিপ্টের (যেমন তামিল, বার্মিজ, তেলেগু এবং তিব্বতি) প্রদর্শন উন্নত করে। নতুন লাইন উচ্চতা ক্লিপিং প্রতিরোধ করে এবং অক্ষরের অবস্থান উন্নত করে। আপনার অ্যাপ শুধুমাত্র Android 13 টার্গেট করে এই উন্নতিগুলির সুবিধা নিতে পারে। নতুন লাইন স্পেসিং ব্যবহার করার সময় আপনার অ্যাপগুলি পরীক্ষা করার বিষয়টি নিশ্চিত করুন কারণ পরিবর্তনগুলি অ-ল্যাটিন ভাষায় আপনার UI কে প্রভাবিত করতে পারে।
![](https://developer.android.com/static/images/about/versions/13/line-heights.png?authuser=0&hl=bn)
উন্নত জাপানি টেক্সট মোড়ানো
Android 13 থেকে শুরু করে, TextViews আরও পালিশ এবং পঠনযোগ্য জাপানি অ্যাপ্লিকেশনের জন্য বুনসেটসু (শব্দের ক্ষুদ্রতম একক যা প্রাকৃতিক শোনাচ্ছে) বা অক্ষরের পরিবর্তে বাক্যাংশ দ্বারা পাঠ্য মোড়ক করতে পারে। আপনি TextViews এর সাথে android:lineBreakWordStyle="phrase"
ব্যবহার করে এই মোড়ানোর সুবিধা নিতে পারেন।
![](https://developer.android.com/static/images/about/versions/13/japanese-text-wrapping.png?authuser=0&hl=bn)
ইউনিকোড লাইব্রেরি আপডেট
Android 13 ইউনিকোড ICU 70 , Unicode CLDR 40 , এবং Unicode 14.0 -এ অন্তর্ভুক্ত সাম্প্রতিক উন্নতি, সংশোধন এবং পরিবর্তনগুলি যোগ করে৷
এখানে কয়েকটি উল্লেখযোগ্য পরিবর্তন রয়েছে:
- ইংরেজি (কানাডা)
en‑CA
এবং ইংরেজি (ফিলিপাইন প্রজাতন্ত্র)en‑PH
উভয়ই ইংরেজি (ইউনাইটেড স্টেটস)en
অনুবাদ সংস্থান ব্যবহার করে যখন ইংরেজি (ইউনাইটেড কিংডম)en‑GB
এর পরিবর্তে কোনো অনুবাদ সংস্থান উপলব্ধ না থাকে। - স্প্যানিশ
es
, ইতালীয়it
, পর্তুগিজpt
এবং পর্তুগিজ (পর্তুগাল)pt‑PT
এর জন্যmany
বিভাগ চালু করা হয়েছে। CLDR v38 এ প্রবর্তিত ফরাসি ভাষার অনুরূপ, এটি বড় সংখ্যার জন্য ব্যবহৃত হয়।
রঙ ভেক্টর ফন্ট
![](https://developer.android.com/static/images/about/versions/13/color-vector-fonts.png?authuser=0&hl=bn)
Android 13 থেকে শুরু করে, সিস্টেমে COLR সংস্করণ 1 (COLRv1) ফন্টের জন্য রেন্ডারিং সমর্থন এবং COLRv1 ফর্ম্যাটে সিস্টেম ইমোজি আপডেট করা অন্তর্ভুক্ত। COLRv1 হল একটি অত্যন্ত কমপ্যাক্ট ফন্ট ফরম্যাট যা যেকোনো আকারে দ্রুত এবং চটপটে রেন্ডার করে।
বেশিরভাগ অ্যাপের জন্য, সিস্টেম সবকিছু পরিচালনা করে এবং COLRv1 শুধু কাজ করে। যাইহোক, যদি আপনার অ্যাপ তার নিজস্ব টেক্সট রেন্ডারিং প্রয়োগ করে এবং সিস্টেমের ফন্ট ব্যবহার করে, আমরা ইমোজি রেন্ডারিং পরীক্ষা করার পরামর্শ দিই।
COLRv1 সম্পর্কে আরও জানতে, নিম্নলিখিত সংস্থানগুলি দেখুন:
দ্রুত সেটিংস প্লেসমেন্ট API
বিজ্ঞপ্তির ছায়ায় দ্রুত সেটিংস হল ব্যবহারকারীদের সেটিংস পরিবর্তন করার বা অ্যাপের প্রসঙ্গ না রেখে দ্রুত পদক্ষেপ নেওয়ার একটি সুবিধাজনক উপায়। কাস্টম টাইলস প্রদান করে এমন অ্যাপগুলির জন্য, আমরা ব্যবহারকারীদের জন্য দ্রুত সেটিংসে আপনার টাইলগুলি আবিষ্কার করা এবং যুক্ত করা সহজ করে দিচ্ছি। একটি নতুন টাইল প্লেসমেন্ট API ব্যবহার করে, আপনার অ্যাপ এখন ব্যবহারকারীকে সক্রিয় দ্রুত সেটিংস টাইলের সেটে সরাসরি আপনার কাস্টম টাইল যোগ করার জন্য অনুরোধ করতে পারে। একটি নতুন সিস্টেম ডায়ালগ ব্যবহারকারীকে টাইল যোগ করার জন্য দ্রুত সেটিংসে যেতে না করে, আপনার অ্যাপ না রেখে এক ধাপে টাইল যোগ করতে দেয়।
ক্লিপবোর্ড পূর্বরূপ
অ্যান্ড্রয়েড 13 থেকে শুরু করে, ক্লিপবোর্ডে সামগ্রী যোগ করা হলে সিস্টেমটি একটি স্ট্যান্ডার্ড ভিজ্যুয়াল নিশ্চিতকরণ প্রদর্শন করে। নতুন নিশ্চিতকরণ নিম্নলিখিতগুলি করে:
- কনফার্ম করে কন্টেন্ট সফলভাবে কপি করা হয়েছে।
- অনুলিপি করা বিষয়বস্তুর একটি পূর্বরূপ প্রদান করে।
এই বৈশিষ্ট্যটি অনুলিপি করার পরে অ্যাপগুলির দ্বারা প্রদর্শিত বিভিন্ন বিজ্ঞপ্তিকে মানসম্মত করে এবং ব্যবহারকারীদের তাদের ক্লিপবোর্ডে আরও নিয়ন্ত্রণের প্রস্তাব দেয়। অতিরিক্ত তথ্যের জন্য, কপি এবং পেস্ট বৈশিষ্ট্য পৃষ্ঠা দেখুন।
![উইজেট কপি/পেস্ট করুন](https://developer.android.com/static/images/about/versions/13/new-copy-paste-UI.gif?authuser=0&hl=bn)
ভবিষ্যদ্বাণীপূর্ণ ফিরে অঙ্গভঙ্গি
অ্যান্ড্রয়েড 13 ফোন, বড় স্ক্রিন এবং ফোল্ডেবলের মতো অ্যান্ড্রয়েড ডিভাইসগুলির জন্য একটি ভবিষ্যদ্বাণীমূলক ব্যাক জেসচার প্রবর্তন করে। এই বৈশিষ্ট্যটিকে সমর্থন করার জন্য আপনাকে আপনার অ্যাপ আপডেট করতে হবে।
বিস্তারিত ডকুমেন্টেশন দেখতে, একটি ভবিষ্যদ্বাণীমূলক ব্যাক জেসচার সমর্থন করতে আপনার অ্যাপ আপডেট করুন দেখুন। আপনি আমাদের কোডল্যাব ব্যবহার করে দেখতে পারেন।
ব্লুটুথ LE অডিও
লো এনার্জি (LE) অডিও হল ওয়্যারলেস অডিও যা ব্লুটুথ ক্লাসিক প্রতিস্থাপন করতে এবং নির্দিষ্ট ব্যবহারের ক্ষেত্রে এবং সংযোগ টপোলজি সক্ষম করার জন্য নির্মিত। এটি ব্যবহারকারীদের বন্ধুদের এবং পরিবারের সাথে তাদের অডিও শেয়ার এবং সম্প্রচার করতে বা তথ্য, বিনোদন, বা অ্যাক্সেসযোগ্যতার জন্য সর্বজনীন সম্প্রচারে সদস্যতা নিতে দেয়। ব্যবহারকারীরা ব্যাটারি লাইফ ত্যাগ না করেই উচ্চ বিশ্বস্ততার অডিও গ্রহণ করতে পারে এবং ব্লুটুথ ক্লাসিকের সাথে সম্ভব নয় এমন বিভিন্ন ব্যবহারের ক্ষেত্রে নির্বিঘ্নে পরিবর্তন করতে পারে তা নিশ্চিত করার জন্য এটি ডিজাইন করা হয়েছে। অ্যান্ড্রয়েড 13 থেকে শুরু করে, সিস্টেমে LE অডিওর জন্য অন্তর্নির্মিত সমর্থন অন্তর্ভুক্ত রয়েছে, তাই বিকাশকারীরা সামঞ্জস্যপূর্ণ ডিভাইসগুলিতে বিনামূল্যে এই ক্ষমতাগুলি পান।
MIDI 2.0
অ্যান্ড্রয়েড 13 থেকে শুরু করে, সিস্টেমটিতে MIDI 2.0 স্ট্যান্ডার্ডের জন্য সমর্থন রয়েছে, যার মধ্যে USB এর মাধ্যমে MIDI 2.0 হার্ডওয়্যার সংযোগ করার ক্ষমতা রয়েছে। এই স্ট্যান্ডার্ড বৈশিষ্ট্যগুলি অফার করে যেমন কন্ট্রোলারগুলির জন্য বর্ধিত রেজোলিউশন, নন-ওয়েস্টার্ন ইনটোনেশনের জন্য আরও ভাল সমর্থন এবং প্রতি-নোট কন্ট্রোলারগুলি ব্যবহার করে আরও অভিব্যক্তিপূর্ণ কর্মক্ষমতা।
স্প্ল্যাশ স্ক্রীন দক্ষতা উন্নতি
অ্যান্ড্রয়েড 13 স্প্ল্যাশ স্ক্রিন এপিআই-তে অ্যানিমেটেড স্প্ল্যাশ স্ক্রিনগুলির দক্ষতা উন্নত করে:
সিস্টেম
AnimatedVectorDrawable
থেকে সরাসরি অ্যানিমেশনের সময়কাল অনুমান করে। Android 13 এর আগে, সরাসরিwindowSplashScreenAnimationDuration
সেট করা প্রয়োজন ছিল।আপনার অ্যাপ সবসময় অ্যান্ড্রয়েড 13 এবং উচ্চতর স্প্ল্যাশ স্ক্রিনে আইকন প্রদর্শন করে কিনা তা আরও নিয়ন্ত্রণের জন্য নতুন
windowSplashScreenBehavior
অ্যাট্রিবিউট ব্যবহার করুন।
বিস্তারিত ডকুমেন্টেশন দেখতে, স্প্ল্যাশ স্ক্রিন দেখুন।
এআরটি অপ্টিমাইজেশান
Android 13 (API স্তর 33) এবং উচ্চতর, ART নেটিভ কোডে এবং থেকে অনেক দ্রুত স্যুইচিং করে, JNI কল এখন 2.5x পর্যন্ত দ্রুত। রানটাইম রেফারেন্স প্রসেসিং এটিকে বেশিরভাগই নন-ব্লকিং করার জন্য পুনরায় কাজ করা হয়েছিল, যা আরও জ্যাঙ্ককে হ্রাস করে। উপরন্তু, আপনি Reference.refersTo()
পাবলিক এপিআই ব্যবহার করতে পারেন শীঘ্রই পৌঁছানো যায় না এমন বস্তুগুলি পুনরুদ্ধার করতে, এবং আপনি লক্ষ্য করবেন অপ্টিমাইজ করা ক্লাস এবং মেথড লুকআপের জন্য ইন্টারপ্রেটার এখন দ্রুততর হয়েছে। এআরটি ইনস্টলের সময় আরও বাইট-কোড যাচাইকরণ করে, রানটাইমে যাচাইকরণের খরচ এড়ায় এবং অ্যাপ স্টার্টআপের সময় দ্রুত রাখে।
গোপনীয়তা এবং নিরাপত্তা
প্রসঙ্গ-নিবন্ধিত রিসিভারের নিরাপদ রপ্তানি
রানটাইম রিসিভারগুলিকে নিরাপদ করতে সাহায্য করার জন্য, Android 13 আপনার অ্যাপের জন্য একটি রেজিস্টার্ড ব্রডকাস্ট রিসিভার রপ্তানি করা উচিত এবং ডিভাইসের অন্যান্য অ্যাপে দৃশ্যমান হবে কিনা তা নির্দিষ্ট করার ক্ষমতা প্রবর্তন করে। অ্যান্ড্রয়েডের পূর্ববর্তী সংস্করণগুলিতে, ডিভাইসের যেকোনো অ্যাপ একটি অরক্ষিত সম্প্রচার একটি গতিশীল-নিবন্ধিত রিসিভারকে পাঠাতে পারে যদি না সেই রিসিভারটি স্বাক্ষরের অনুমতি দ্বারা সুরক্ষিত থাকে৷
এই রপ্তানি কনফিগারেশনটি এমন অ্যাপ্লিকেশানগুলিতে উপলব্ধ যা নিম্নলিখিতগুলির মধ্যে অন্তত একটি করে:
- AndroidX কোর লাইব্রেরির 1.9.0 বা উচ্চতর সংস্করণ থেকে
ContextCompat
ক্লাস ব্যবহার করুন। - টার্গেট Android 13 বা উচ্চতর।
ফটো পিকার
Android 13 (API স্তর 33) এবং উচ্চতর একটি ফটো পিকার অভিজ্ঞতা অন্তর্ভুক্ত। যখন আপনার অ্যাপ ফটো পিকার চালু করে, ব্যবহারকারীরা সম্পূর্ণ মিডিয়া লাইব্রেরি দেখার জন্য আপনার অ্যাপকে অ্যাক্সেস দেওয়ার পরিবর্তে আপনার অ্যাপের সাথে শেয়ার করার জন্য নির্দিষ্ট ছবি এবং ভিডিও নির্বাচন করে, যেমন প্রোফাইল ছবি। এটি ব্যবহারকারীর ফটো এবং ভিডিও অ্যাক্সেস করার প্রস্তাবিত উপায়।
ফটো পিকার ব্যবহারকারীদের জন্য উন্নত গোপনীয়তা প্রদান করে কারণ আপনার অ্যাপটিকে কোনো রানটাইম অনুমতি ঘোষণা করার প্রয়োজন নেই। এছাড়াও, ফটো বাছাইকারী অ্যাপগুলির জন্য একটি অন্তর্নির্মিত, প্রমিত UI প্রদান করে, যা আরও সামঞ্জস্যপূর্ণ ব্যবহারকারীর অভিজ্ঞতা তৈরি করে।
কাছাকাছি ওয়াই-ফাই ডিভাইসের জন্য নতুন রানটাইম অনুমতি
Android 13 (API স্তর 33) অ্যাপগুলির জন্য NEARBY_DEVICES
অনুমতি গোষ্ঠীতে একটি নতুন রানটাইম অনুমতি প্রবর্তন করে যেগুলি Wi-Fi এর মাধ্যমে কাছাকাছি অ্যাক্সেস পয়েন্টগুলিতে ডিভাইসের সংযোগগুলি পরিচালনা করে৷ এই অ্যাপগুলিকে অবশ্যই নতুন অনুমতি ঘোষণা করতে হবে, NEARBY_WIFI_DEVICES
, যখন তারা বিভিন্ন Wi-Fi API কল করে । উপরন্তু, যতক্ষণ পর্যন্ত অ্যাপগুলি Wi-Fi APIs থেকে প্রকৃত অবস্থান না পায়, ততক্ষণ তারা Android 13 বা উচ্চতরকে টার্গেট করার সময় তাদের ACCESS_FINE_LOCATION
অনুমতি ঘোষণা করতে হবে না।
কাছাকাছি Wi-Fi ডিভাইসের অনুমতি সম্পর্কে আরও জানুন৷
সঠিক অ্যালার্ম ব্যবহার করার জন্য নতুন অনুমতি
যদি আপনার অ্যাপ্লিকেশানটি Android 13 বা উচ্চতরকে লক্ষ্য করে, তাহলে আপনি USE_EXACT_ALARM
অনুমতি ব্যবহার করতে পারেন, যা আপনার অ্যাপে স্বয়ংক্রিয়ভাবে মঞ্জুর হয়৷ আপনার অ্যাপটি এই অনুমতিটি ব্যবহার করার জন্য, তবে, এটিকে অবশ্যই নিম্নলিখিত মানদণ্ডগুলির মধ্যে একটি অবশ্যই পূরণ করতে হবে:
- আপনার অ্যাপটি একটি অ্যালার্ম ক্লক অ্যাপ বা টাইমার অ্যাপ।
- আপনার অ্যাপটি একটি ক্যালেন্ডার অ্যাপ যা আসন্ন ইভেন্টের জন্য বিজ্ঞপ্তি দেখায়।
যদি আপনার অ্যাপটি সঠিক অ্যালার্ম সেট করে কিন্তু পূর্ববর্তী তালিকায় দেখানো উভয় ক্ষেত্রেই সন্তুষ্ট না হয়, তবে পরিবর্তে SCHEDULE_EXACT_ALARM
অনুমতি ঘোষণা করা চালিয়ে যান এবং ব্যবহারকারী আপনার অ্যাপে অ্যাক্সেস অস্বীকার করার জন্য প্রস্তুত থাকুন।
ডেভেলপার ডাউনগ্রেডেবল অনুমতি
Android 13 থেকে শুরু করে, আপনার অ্যাপ অব্যবহৃত রানটাইম অনুমতিগুলিতে অ্যাক্সেস প্রত্যাহার করতে পারে। এই API আপনার অ্যাপকে নিম্নলিখিতগুলির মতো গোপনীয়তা-বর্ধক কাজগুলি সম্পাদন করার অনুমতি দেয়:
- অব্যবহৃত অনুমতি সরান.
- অনুমতির সর্বোত্তম অনুশীলনগুলি মেনে চলুন, যা ব্যবহারকারীর বিশ্বাস উন্নত করে। আপনি ব্যবহারকারীদের একটি ডায়ালগ দেখানোর বিষয়ে বিবেচনা করতে চাইতে পারেন যা আপনি সক্রিয়ভাবে প্রত্যাহার করেছেন এমন অনুমতিগুলি প্রদর্শন করে৷
APK স্বাক্ষর স্কিম v3.1
Android 13 APK স্বাক্ষর স্কিম v3.1-এর জন্য সমর্থন যোগ করে, যা বিদ্যমান APK স্বাক্ষর স্কিম v3 এর উপর উন্নতি করে। এই স্কিমটি ঘূর্ণন সম্পর্কিত APK স্বাক্ষর স্কিম v3 এর সাথে পরিচিত কিছু সমস্যার সমাধান করে । বিশেষ করে, v3.1 স্বাক্ষর স্কিমটি SDK সংস্করণ টার্গেটিং সমর্থন করে, যা রোটেশনকে প্ল্যাটফর্মের পরবর্তী প্রকাশকে লক্ষ্য করার অনুমতি দেয়।
v3.1 স্বাক্ষর স্কিম একটি ব্লক আইডি ব্যবহার করে যা 12L বা তার নিচে স্বীকৃত নয়। অতএব, প্ল্যাটফর্ম নিম্নলিখিত স্বাক্ষরকারী আচরণ প্রয়োগ করে:
- যে ডিভাইসগুলি Android 13 বা উচ্চতর চালায় সেগুলি v3.1 ব্লকে ঘোরানো স্বাক্ষর ব্যবহার করে৷
- যে ডিভাইসগুলি অ্যান্ড্রয়েডের পুরানো সংস্করণগুলি চালায় সেগুলি ঘোরানো স্বাক্ষরকারীকে উপেক্ষা করে এবং পরিবর্তে v3.0 ব্লকে আসল স্বাক্ষরকারী ব্যবহার করে৷
যে অ্যাপগুলি এখনও তাদের সাইনিং কী ঘোরায়নি তাদের কোনো অতিরিক্ত পদক্ষেপের প্রয়োজন নেই৷ যখনই এই অ্যাপগুলি ঘোরানো বেছে নেয়, সিস্টেমটি ডিফল্টরূপে v3.1 স্বাক্ষর স্কিম প্রয়োগ করে৷
যে অ্যাপগুলি ইতিমধ্যে ঘোরানো হয়েছে এবং v3.0 সাইনিং ব্লকে তাদের ঘোরানো সাইনিং কী ব্যবহার চালিয়ে যেতে চায় তাদের apksigner
আমন্ত্রণ আপডেট করতে হবে:
apksigner sign --ks keystore.jks | --key key.pk8 --cert cert.x509.pem --rotation-min-sdk-version API_LEVEL [signer_options] app-name.apk
...যেখানে API_LEVEL
32 বা কম।
কীস্টোর এবং কীমিন্টে আরও ভাল ত্রুটি প্রতিবেদন করা
কী তৈরি করে এমন অ্যাপগুলির জন্য, কীস্টোর এবং কীমিন্ট এখন আরও বিস্তারিত এবং সঠিক ত্রুটি নির্দেশক প্রদান করে। আমরা java.security.ProviderException
অধীনে একটি ব্যতিক্রম শ্রেণির শ্রেণিবিন্যাস যুক্ত করেছি, Android-নির্দিষ্ট ব্যতিক্রমগুলির সাথে যা Keystore/KeyMint ত্রুটি কোডগুলি অন্তর্ভুক্ত করে এবং ত্রুটিটি পুনরায় চেষ্টা করা যায় কিনা। আপনি কী তৈরির পদ্ধতিগুলিও সংশোধন করতে পারেন এবং নতুন ব্যতিক্রমগুলি ছুঁড়ে দেওয়ার জন্য (সাইনিং, এনক্রিপশন) ব্যবহার করতে পারেন। উন্নত ত্রুটি রিপোর্টিং কী জেনারেশনের মধ্যে সীমাবদ্ধ নয় এবং এখন আপনাকে কী জেনারেশনের পুনরায় চেষ্টা করতে হবে তা দেওয়া উচিত।
ট্যাবলেট এবং বড় পর্দা সমর্থন
অ্যান্ড্রয়েড 13 অ্যান্ড্রয়েড 12-এ প্রবর্তিত ট্যাবলেট অপ্টিমাইজেশান এবং 12L ফিচার ড্রপের উপর তৈরি করে—যার মধ্যে সিস্টেম UI এর জন্য অপ্টিমাইজেশান, আরও ভাল মাল্টিটাস্কিং এবং উন্নত সামঞ্জস্য মোড রয়েছে। আপনার পরীক্ষার অংশ হিসাবে, ট্যাবলেট এবং অন্যান্য বড়-স্ক্রীন ডিভাইসগুলিতে আপনার অ্যাপগুলি তাদের সেরা দেখাচ্ছে তা নিশ্চিত করুন৷
নতুন কী এবং কী পরীক্ষা করতে হবে সে সম্পর্কে আরও তথ্যের জন্য, ট্যাবলেট এবং বড়-স্ক্রিন সমর্থন পৃষ্ঠাটি দেখুন।
গ্রাফিক্স
প্রোগ্রামেবল শেডার
![](https://developer.android.com/static/images/about/versions/13/agsl-shader.gif?authuser=0&hl=bn)
অ্যান্ড্রয়েড 13 থেকে শুরু করে, সিস্টেমে অ্যানড্রয়েড গ্রাফিক্স শেডিং ল্যাঙ্গুয়েজ ( এজিএসএল ) ব্যবহার করে সংজ্ঞায়িত আচরণ সহ প্রোগ্রামেবল RuntimeShader
অবজেক্টের জন্য সমর্থন অন্তর্ভুক্ত রয়েছে। AGSL এর বেশিরভাগ সিনট্যাক্স GLSL এর সাথে শেয়ার করে, কিন্তু Android এর ক্যানভাসের মধ্যে পেইন্টিং কাস্টমাইজ করার পাশাপাশি ভিউ কন্টেন্ট ফিল্টার করার জন্য Android রেন্ডারিং ইঞ্জিনের মধ্যে কাজ করে। অ্যান্ড্রয়েড অভ্যন্তরীণভাবে এই শেডারগুলিকে রিপল ইফেক্ট , ব্লার এবং স্ট্রেচ ওভারস্ক্রোল প্রয়োগ করতে ব্যবহার করে। Android 13 এবং উচ্চতর আপনাকে আপনার অ্যাপের জন্য অনুরূপ উন্নত প্রভাব তৈরি করতে সক্ষম করে।
কোরিওগ্রাফার উন্নতি
Android 13 Choreographer
এবং ASurfaceControl
জন্য সর্বজনীন API পদ্ধতিগুলি প্রবর্তন করে যা অ্যাপগুলিকে সম্ভাব্য ফ্রেম টাইমলাইন সম্পর্কে আরও তথ্য প্রদান করে এবং ফ্রেম জীবনচক্র সম্পর্কে SurfaceFlinger
আরও প্রসঙ্গ যোগ করে। আগের মতো, অ্যাপগুলি Choreographer
একটি কলব্যাক পোস্ট করতে পারে এবং ফ্রেম টাইমলাইন তথ্য পেতে পারে। অ্যান্ড্রয়েড 13 (এপিআই লেভেল 33) এ, Choreographer
একাধিক সম্ভাব্য উপস্থাপনার সময় এবং তাদের সংশ্লিষ্ট ফ্রেমের সময়সীমা প্রদান করে। অ্যাপগুলি উপস্থাপনার সময় বেছে নিতে পারে এবং পরবর্তীতে পছন্দের SurfaceFlinger
অবহিত করতে পারে । SurfaceFlinger
তারপর পছন্দসই উপস্থাপনা সময়ের আগে লেনদেন বা ল্যাচ বাফার প্রয়োগ করার চেষ্টা করে না।
![](https://developer.android.com/static/images/about/versions/13/13-choreographer.png?authuser=0&hl=bn)
ক্যামেরা
HDR ভিডিও ক্যাপচার
Android 13 থেকে শুরু করে, Camera2 APIs হাই ডায়নামিক রেঞ্জ (HDR) ভিডিও ক্যাপচার সমর্থন করে, যা আপনাকে আপনার ক্যামেরা ব্যবহার করে HDR ভিডিও সামগ্রীর পূর্বরূপ দেখতে এবং রেকর্ড করতে সক্ষম করে। স্ট্যান্ডার্ড ডায়নামিক রেঞ্জের (এসডিআর) তুলনায়, HDR রঙের বিস্তৃত পরিসর সরবরাহ করে এবং লুমিন্যান্স উপাদানের গতিশীল পরিসর বাড়ায় (বর্তমান 100 cd/m2 থেকে cd/m2 এর 1000s পর্যন্ত)। এর ফলে ভিডিওর গুণমান পাওয়া যায় যা বাস্তব জীবনের সাথে আরও ঘনিষ্ঠভাবে মেলে, সমৃদ্ধ রং, উজ্জ্বল হাইলাইট এবং গাঢ় ছায়া।
HDR ভিডিও ক্যাপচার সম্পর্কে আরও জানতে, HDR ভিডিও ক্যাপচার ডকুমেন্টেশন দেখুন।
মিডিয়া
স্থানিক অডিও
স্থানিক অডিও হল একটি নিমজ্জিত অডিও অভিজ্ঞতা যা আপনার ব্যবহারকারীদের জন্য মিডিয়া বিষয়বস্তুকে আরও বাস্তবসম্মত করে তোলে। এই বৈশিষ্ট্যটির সাথে কীভাবে সংহত করতে হয় তার বিশদ বিবরণের জন্য আমাদের স্থানিক অডিও ডকুমেন্টেশন দেখুন।
প্রত্যাশিত অডিও রাউটিং
মিডিয়া অ্যাপ্লিকেশানগুলিকে তাদের অডিও কীভাবে রাউট করা হবে তা শনাক্ত করতে সহায়তা করার জন্য, Android 13 AudioManager
ক্লাসে অডিও রুট APIগুলি প্রবর্তন করে৷ getAudioDevicesForAttributes()
API আপনাকে ডিভাইসগুলির একটি তালিকা পুনরুদ্ধার করতে দেয় যা নির্দিষ্ট অডিও চালানোর জন্য ব্যবহার করা যেতে পারে এবং getDirectProfilesForAttributes()
API আপনাকে বুঝতে সাহায্য করে আপনার অডিও স্ট্রিম সরাসরি চালানো যাবে কিনা। আপনার অডিও ট্র্যাকের জন্য ব্যবহার করার জন্য সেরা AudioFormat
নির্ধারণ করতে এই APIগুলি ব্যবহার করুন৷
অ্যাক্সেসযোগ্যতা
অডিও বর্ণনা
অ্যান্ড্রয়েড 13 (এপিআই লেভেল 33) একটি নতুন সিস্টেম-ওয়াইড অ্যাক্সেসিবিলিটি পছন্দ প্রবর্তন করেছে যা ব্যবহারকারীদের সমস্ত অ্যাপ জুড়ে অডিও বিবরণ সক্ষম করতে দেয়। একটি অডিও বর্ণনা হল একটি অতিরিক্ত বর্ণনার ট্র্যাক যাতে একজন বর্ণনাকারী উপস্থাপনার মাধ্যমে কথা বলে, অডিওতে স্বাভাবিক বিরতির সময় পর্দায় কী ঘটছে তা বর্ণনা করে। অ্যাপগুলি isAudioDescriptionRequested()
দিয়ে অনুসন্ধান করে অডিও বর্ণনা ট্র্যাকের জন্য ব্যবহারকারীর পছন্দ অনুসরণ করতে পারে, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:
কোটলিন
private lateinit var accessibilityManager: AccessibilityManager // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager::class.java) // Where your media player is initialized if (accessibilityManager.isAudioDescriptionRequested) { // User has requested to enable audio descriptions }
জাভা
private AccessibilityManager accessibilityManager; // In onCreate(): accessibilityManager = getSystemService(AccessibilityManager.class); // Where your media player is initialized if(accessibilityManager.isAudioDescriptionRequested()) { // User has requested to enable audio descriptions }
অ্যাপ্লিকেশানগুলি AccessbilityManager
একজন শ্রোতা যুক্ত করে ব্যবহারকারীর পছন্দ পরিবর্তনের নিরীক্ষণ করতে পারে:
কোটলিন
private val listener = AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled -> // Preference changed; reflect its state in your media player } override fun onStart() { super.onStart() accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener) } override fun onStop() { super.onStop() accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener) }
জাভা
private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> { // Preference changed; reflect its state in your media player }; @Override protected void onStart() { super.onStart(); accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener); } @Override protected void onStop() { super.onStop(); accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener); }
মূল কার্যকারিতা
OpenJDK 11 আপডেট
অ্যান্ড্রয়েড 13 অ্যাপ্লিকেশন এবং প্ল্যাটফর্ম বিকাশকারীদের জন্য লাইব্রেরি আপডেট এবং জাভা 11 ভাষা সমর্থন উভয়ের সাথে OpenJDK 11 LTS রিলিজের সাথে সারিবদ্ধ করার জন্য Android এর মূল লাইব্রেরিগুলিকে রিফ্রেশ করার কাজ শুরু করে। অ্যান্ড্রয়েড 13-এ প্রবর্তিত মূল লাইব্রেরি পরিবর্তনগুলি এআরটি মেইনলাইন মডিউলে গুগল প্লে সিস্টেম আপডেটের মাধ্যমে অ্যান্ড্রয়েড 12 ডিভাইসগুলিতেও উপলব্ধ হবে।
Android 13 মূল লাইব্রেরিতে নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত করে:
- স্থানীয় ভেরিয়েবল এবং প্যারামিটার ল্যাম্বডাস হিসাবে
var
কীওয়ার্ডের জন্য সমর্থন। স্ট্রিং ক্লাসে নতুন পদ্ধতি:
-
isBlank()
-
lines()
-
repeat()
-
strip()
-
stripLeading()
-
stripTrailing()
-
Collection.toArray(IntFunction)
এর জন্য সমর্থন একটি অ্যারের সাথে একটি সংগ্রহকে মানিয়ে নেওয়া সহজ করতে।java.util
ক্লাসেifPresentOrElse()
,isEmpty()
,orElseThrow()
, এবংstream()
এর জন্য সমর্থনOptional
,OptionalDouble
,OptionalInt
, এবংOptionalLong
।সকেটের পুনরায় ব্যবহার সহ
SocketOptions
জন্য বর্ধিত সমর্থন।NullReader
,NullWriter
,InputStream
,OutputStream
, এবংtransferTo()
Reader
কার্যকারিতা যা পঠিত অক্ষরগুলি একজনWriter
কাছে স্থানান্তর করে।Charsets
ব্যবহার করে URL এনকোডিং এবং ডিকোডিংয়ের জন্য কার্যকারিতা যুক্ত করা হয়েছে।FileReader
,FileWriter
,PrintStream
, এবংPrintWriter
এর জন্যCharset
কার্যকারিতা।নতুন
transferTo()
,readNBytes()
,readAllBytes()
, এবংwriteBytes()
ফাংশনByteArrayInput
বাOutputStream
এবংInput
বাOutputStream
জন্য।java.lang.invoke.VarHandle
এর জন্য রানটাইম এবং কম্পাইলার সমর্থন।অভ্যন্তরীণভাবে
VarHandle
ব্যবহার করে OpenJDK 11 API-এjava.util.concurrent
আপডেট করে।
Java এবং OpenJDK হল ওরাকল এবং/অথবা এর সহযোগীদের ট্রেডমার্ক বা নিবন্ধিত ট্রেডমার্ক।