অ্যান্ড্রয়েড ১৩ ডেভেলপারদের জন্য দুর্দান্ত নতুন বৈশিষ্ট্য এবং API চালু করেছে। নীচের বিভাগগুলি আপনাকে আপনার অ্যাপের বৈশিষ্ট্যগুলি সম্পর্কে জানতে এবং সম্পর্কিত API গুলি দিয়ে শুরু করতে সহায়তা করে।
নতুন, পরিবর্তিত এবং সরানো API গুলির বিস্তারিত তালিকার জন্য, API diff রিপোর্টটি পড়ুন। নতুন API গুলির বিস্তারিত জানতে Android API রেফারেন্সটি দেখুন — দৃশ্যমানতার জন্য নতুন API গুলি হাইলাইট করা হয়েছে। এছাড়াও, প্ল্যাটফর্ম পরিবর্তনগুলি আপনার অ্যাপগুলিকে কোথায় প্রভাবিত করতে পারে সে সম্পর্কে জানতে, Android 13 এবং সমস্ত অ্যাপকে লক্ষ্য করে এমন অ্যাপগুলির জন্য Android 13 আচরণ পরিবর্তনগুলি পরীক্ষা করে দেখতে ভুলবেন না।
ডেভেলপারের উৎপাদনশীলতা এবং সরঞ্জাম
থিমযুক্ত অ্যাপ আইকন

অ্যান্ড্রয়েড ১৩ দিয়ে শুরু করে, আপনি থিমযুক্ত অ্যাপ আইকনগুলি বেছে নিতে পারেন। এই বৈশিষ্ট্যের সাহায্যে, সমর্থিত অ্যান্ড্রয়েড লঞ্চারগুলিতে অ্যাপ আইকনগুলি ব্যবহারকারীর পছন্দের ওয়ালপেপার এবং অন্যান্য থিমের রঙ উত্তরাধিকার সূত্রে প্রাপ্ত করার জন্য রঙিন করা হয়।
এই বৈশিষ্ট্যটি সমর্থন করার জন্য, আপনার অ্যাপটিকে একটি অভিযোজিত আইকন এবং একটি মনোক্রোম্যাটিক অ্যাপ আইকন উভয়ই প্রদান করতে হবে এবং ম্যানিফেস্টে <adaptive-icon> উপাদান থেকে মনোক্রোম্যাটিক অ্যাপ আইকনের দিকে নির্দেশ করতে হবে। যদি কোনও ব্যবহারকারী থিমযুক্ত অ্যাপ আইকন সক্ষম করে থাকেন (অন্য কথায়, সিস্টেম সেটিংসে থিমযুক্ত আইকন টগল চালু করে), এবং লঞ্চার এই বৈশিষ্ট্যটি সমর্থন করে, তাহলে সিস্টেমটি টিন্ট রঙ নির্ধারণ করতে ব্যবহারকারীর নির্বাচিত ওয়ালপেপার এবং থিমের রঙ ব্যবহার করে, যা এটি মনোক্রোম্যাটিক অ্যাপ আইকনে প্রয়োগ করে।
হোম স্ক্রিনে থিমযুক্ত অ্যাপ আইকনটি প্রদর্শিত হয় না—এবং পরিবর্তে অভিযোজিত বা স্ট্যান্ডার্ড অ্যাপ আইকনটি প্রদর্শিত হয়—নিম্নলিখিত যেকোনো পরিস্থিতিতে:
- যদি ব্যবহারকারী থিমযুক্ত অ্যাপ আইকনগুলি সক্ষম না করে থাকেন
- যদি আপনার অ্যাপটি একরঙা অ্যাপ আইকন প্রদান না করে
- যদি লঞ্চারটি থিমযুক্ত অ্যাপ আইকন সমর্থন না করে
আরও বিস্তারিত এবং নির্দেশাবলীর জন্য, অ্যাডাপ্টিভ আইকন দেখুন।
প্রতি অ্যাপের ভাষা পছন্দ

অনেক ক্ষেত্রে, বহুভাষিক ব্যবহারকারীরা তাদের সিস্টেম ভাষাকে একটি ভাষাতে সেট করেন—যেমন ইংরেজি—কিন্তু তারা নির্দিষ্ট অ্যাপের জন্য অন্যান্য ভাষা নির্বাচন করতে চান, যেমন ডাচ, চীনা বা হিন্দি। এই ব্যবহারকারীদের জন্য অ্যাপগুলিকে আরও ভালো অভিজ্ঞতা প্রদানে সহায়তা করার জন্য, Android 13 একাধিক ভাষা সমর্থন করে এমন অ্যাপগুলির জন্য নিম্নলিখিত বৈশিষ্ট্যগুলি প্রবর্তন করে:
সিস্টেম সেটিংস : একটি কেন্দ্রীভূত অবস্থান যেখানে ব্যবহারকারীরা প্রতিটি অ্যাপের জন্য পছন্দের ভাষা নির্বাচন করতে পারেন।
আপনার অ্যাপের ম্যানিফেস্টে
android:localeConfigঅ্যাট্রিবিউটটি ডিক্লেয়ার করতে হবে যাতে সিস্টেমটি বুঝতে পারে যে এটি একাধিক ভাষা সমর্থন করে। আরও জানতে, একটি রিসোর্স ফাইল তৈরি করার এবং আপনার অ্যাপের ম্যানিফেস্ট ফাইলে এটি ডিক্লেয়ার করার নির্দেশাবলী দেখুন।অতিরিক্ত API গুলি : এই পাবলিক API গুলি, যেমন
LocaleManagerএরsetApplicationLocales()এবংgetApplicationLocales()পদ্ধতিগুলি, অ্যাপগুলিকে রানটাইমের সময় সিস্টেম ভাষা থেকে আলাদা একটি ভাষা সেট করতে দেয়।এই API গুলি স্বয়ংক্রিয়ভাবে সিস্টেম সেটিংসের সাথে সিঙ্ক হয়; অতএব, যেসব অ্যাপ এই API গুলি ব্যবহার করে কাস্টম ইন-অ্যাপ ভাষা পিকার তৈরি করে, তারা নিশ্চিত করবে যে তাদের ব্যবহারকারীরা তাদের ভাষা পছন্দগুলি যেখানেই নির্বাচন করুন না কেন, তাদের একটি সামঞ্জস্যপূর্ণ ব্যবহারকারীর অভিজ্ঞতা থাকবে। পাবলিক API গুলি আপনাকে বয়লারপ্লেট কোডের পরিমাণ কমাতেও সাহায্য করে, তারা বিভক্ত APK সমর্থন করে এবং অ্যাপ-স্তরের ব্যবহারকারী ভাষা সেটিংস সংরক্ষণ করার জন্য অ্যাপগুলির জন্য অটো ব্যাকআপ সমর্থন করে।
পূর্ববর্তী অ্যান্ড্রয়েড সংস্করণগুলির সাথে ব্যাকওয়ার্ড সামঞ্জস্যের জন্য, AndroidX-এ সমতুল্য API গুলিও উপলব্ধ। আমরা Appcompat 1.6.0-beta01 বা উচ্চতর সংস্করণে যোগ করা API গুলি ব্যবহার করার পরামর্শ দিচ্ছি।
যেসব অ্যাপ একাধিক ভাষা সমর্থন করে না, সেগুলি এই পরিবর্তনগুলির দ্বারা প্রভাবিত হয় না।
উন্নত টেক্সট এবং ভাষা সমর্থন
অ্যান্ড্রয়েড ১৩-তে বেশ কিছু বৈশিষ্ট্য, টেক্সট এবং ভাষার উন্নতি অন্তর্ভুক্ত রয়েছে যা আপনাকে আরও উন্নত অভিজ্ঞতা প্রদান করতে সাহায্য করে, যা নিম্নলিখিত বিভাগগুলিতে বর্ণনা করা হয়েছে:
দ্রুত হাইফেনেশন
হাইফেনেশন মোড়ানো টেক্সট পড়া সহজ করে তোলে এবং আপনার UI কে আরও অভিযোজিত করতে সাহায্য করে। Android 13 থেকে শুরু করে, হাইফেনেশন কর্মক্ষমতা 200% পর্যন্ত অপ্টিমাইজ করা হয় যাতে আপনি রেন্ডারিং কর্মক্ষমতার উপর প্রায় কোনও প্রভাব ছাড়াই আপনার TextView এ এটি সক্ষম করতে পারেন। দ্রুত হাইফেনেশন সক্ষম করতে, setHyphenationFrequency() এ fullFast বা normalFast ফ্রিকোয়েন্সি ব্যবহার করুন।
টেক্সট কনভার্সন API গুলি
জাপানি এবং চীনা ভাষায় কথা বলা লোকেরা ফোনেটিক লেটারিং ইনপুট পদ্ধতি ব্যবহার করে, যা প্রায়শই অনুসন্ধানকে ধীর করে দেয় এবং স্বয়ংক্রিয় সমাপ্তির মতো বৈশিষ্ট্যগুলিও ব্যবহার করে। অ্যান্ড্রয়েড ১৩-তে, অ্যাপগুলি নতুন টেক্সট কনভার্সন API কল করতে পারে যাতে ব্যবহারকারীরা যা খুঁজছেন তা দ্রুত এবং সহজে খুঁজে পেতে পারেন। পূর্বে, উদাহরণস্বরূপ, অনুসন্ধানের জন্য একজন জাপানি ব্যবহারকারীকে এই পদক্ষেপগুলি করতে হত:
- তাদের অনুসন্ধান শব্দের (যেমন একটি স্থান বা একটি অ্যাপের নাম) ধ্বনিগত উচ্চারণ হিসেবে হিরাগানা লিখুন।
- হিরাগানা অক্ষরগুলিকে কাঞ্জিতে রূপান্তর করতে কীবোর্ড ব্যবহার করুন
- কাঞ্জি অক্ষর ব্যবহার করে পুনরায় অনুসন্ধান করুন
- অবশেষে তাদের অনুসন্ধানের ফলাফল পান
নতুন টেক্সট কনভার্সন এপিআই-এর মাধ্যমে, জাপানি ব্যবহারকারীরা হিরাগানা টাইপ করতে পারবেন এবং ২য় এবং ৩য় ধাপ এড়িয়ে তাৎক্ষণিকভাবে কাঞ্জি অনুসন্ধান ফলাফল সরাসরি দেখতে পারবেন।
ল্যাটিন-বহির্ভূত স্ক্রিপ্টের জন্য উন্নত লাইন উচ্চতা
অ্যান্ড্রয়েড ১৩ ল্যাটিন নয় এমন লিপির (যেমন তামিল, বার্মিজ, তেলেগু এবং তিব্বতি) প্রদর্শন উন্নত করে, প্রতিটি ভাষার জন্য অভিযোজিত লাইনের উচ্চতা ব্যবহার করে। নতুন লাইনের উচ্চতা ক্লিপিং প্রতিরোধ করে এবং অক্ষরের অবস্থান উন্নত করে। আপনার অ্যাপটি কেবল অ্যান্ড্রয়েড ১৩-কে লক্ষ্য করে এই উন্নতিগুলির সুবিধা নিতে পারে। নতুন লাইন স্পেসিং ব্যবহার করার সময় আপনার অ্যাপগুলি পরীক্ষা করতে ভুলবেন না কারণ পরিবর্তনগুলি ল্যাটিন নয় এমন ভাষাগুলিতে আপনার UI-কে প্রভাবিত করতে পারে।

উন্নত জাপানি টেক্সট মোড়ানো
অ্যান্ড্রয়েড ১৩ থেকে শুরু করে, টেক্সটভিউস আরও মসৃণ এবং পঠনযোগ্য জাপানি অ্যাপ্লিকেশনের জন্য বুনসেটসু (প্রাকৃতিক শোনায় এমন শব্দের ক্ষুদ্রতম একক) বা অক্ষর অনুসারে বাক্যাংশ ব্যবহার করে টেক্সট মোড়ানো যেতে পারে। আপনি টেক্সটভিউসের সাথে android:lineBreakWordStyle="phrase" ব্যবহার করে এই মোড়কের সুবিধা নিতে পারেন।

ইউনিকোড লাইব্রেরি আপডেট
অ্যান্ড্রয়েড ১৩ সর্বশেষ উন্নতি, সংশোধন এবং পরিবর্তনগুলি যুক্ত করেছে যা ইউনিকোড আইসিইউ 70 , ইউনিকোড সিএলডিআর 40 এবং ইউনিকোড 14.0 এ অন্তর্ভুক্ত।
এখানে কয়েকটি উল্লেখযোগ্য পরিবর্তন রয়েছে:
- ইংরেজি (কানাডা)
en‑CAএবং ইংরেজি (ফিলিপাইন প্রজাতন্ত্র)en‑PHউভয় ভাষাই ইংরেজি (যুক্তরাজ্য)en‑GBএর পরিবর্তে ইংরেজি (মার্কিন যুক্তরাষ্ট্র)enঅনুবাদ সংস্থান ব্যবহার করে। - স্প্যানিশ
es, ইতালীয়it, পর্তুগিজpt, এবং পর্তুগিজ (পর্তুগাল)pt‑PTএর জন্যmanyবহুবচন বিভাগটি চালু করা হয়েছে। CLDR v38- তে প্রবর্তিত ফরাসি ভাষার মতো, এটি বৃহৎ সংখ্যার জন্য ব্যবহৃত হয়।
রঙিন ভেক্টর ফন্ট

অ্যান্ড্রয়েড ১৩ থেকে শুরু করে, সিস্টেমটিতে COLR সংস্করণ ১ (COLRv1) ফন্টের জন্য রেন্ডারিং সাপোর্ট অন্তর্ভুক্ত রয়েছে এবং সিস্টেম ইমোজি COLRv1 ফর্ম্যাটে আপডেট করা হয়েছে। COLRv1 একটি অত্যন্ত কমপ্যাক্ট ফন্ট ফর্ম্যাট যা যেকোনো আকারে দ্রুত এবং স্পষ্টভাবে রেন্ডার করে।
বেশিরভাগ অ্যাপের ক্ষেত্রে, সিস্টেম সবকিছু পরিচালনা করে এবং COLRv1 ঠিক কাজ করে। তবে, যদি আপনার অ্যাপটি নিজস্ব টেক্সট রেন্ডারিং প্রয়োগ করে এবং সিস্টেমের ফন্ট ব্যবহার করে, তাহলে আমরা ইমোজি রেন্ডারিং পরীক্ষা করার পরামর্শ দিচ্ছি।
COLRv1 সম্পর্কে আরও জানতে, নিম্নলিখিত রিসোর্সগুলি দেখুন:
- ক্রোম ডেভেলপারদের ব্লগ ঘোষণা
- ক্রোমে COLRv1 কালার ভেক্টর ফন্ট পাঠানো হচ্ছে (ভিডিও)
- COLR টেবিল স্পেসিফিকেশন
দ্রুত সেটিংস প্লেসমেন্ট API
নোটিফিকেশন শেডে থাকা 'কুইক সেটিংস' ব্যবহারকারীদের জন্য একটি সুবিধাজনক উপায়, যাতে তারা অ্যাপের প্রেক্ষাপট ছাড়াই সেটিংস পরিবর্তন করতে পারে অথবা দ্রুত পদক্ষেপ নিতে পারে। কাস্টম টাইলস সরবরাহকারী অ্যাপগুলির জন্য, আমরা ব্যবহারকারীদের জন্য দ্রুত সেটিংসে আপনার টাইলস আবিষ্কার করা এবং যোগ করা সহজ করে তুলছি। একটি নতুন টাইল প্লেসমেন্ট API ব্যবহার করে, আপনার অ্যাপ এখন ব্যবহারকারীকে সরাসরি সক্রিয় দ্রুত সেটিংস টাইলসের সেটে আপনার কাস্টম টাইল যোগ করতে অনুরোধ করতে পারে। একটি নতুন সিস্টেম ডায়ালগ ব্যবহারকারীকে আপনার অ্যাপটি না রেখেই এক ধাপে টাইল যোগ করতে দেয়, টাইল যোগ করার জন্য দ্রুত সেটিংসে যাওয়ার পরিবর্তে।

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

ভবিষ্যদ্বাণীমূলক ব্যাক ইশারা
অ্যান্ড্রয়েড ১৩ ফোন, বড় স্ক্রিন এবং ফোল্ডেবল ডিভাইসের মতো অ্যান্ড্রয়েড ডিভাইসের জন্য একটি ভবিষ্যদ্বাণীমূলক ব্যাক জেসচার চালু করেছে। এই বৈশিষ্ট্যটি সমর্থন করার জন্য আপনাকে আপনার অ্যাপ আপডেট করতে হবে।
বিস্তারিত ডকুমেন্টেশন দেখতে, "আপনার অ্যাপ আপডেট করুন যাতে একটি ভবিষ্যদ্বাণীমূলক ব্যাক জেসচার সমর্থন করা যায়" দেখুন। আপনি আমাদের কোডল্যাবও ব্যবহার করে দেখতে পারেন।
ব্লুটুথ এলই অডিও
লো এনার্জি (LE) অডিও হল ওয়্যারলেস অডিও যা ব্লুটুথ ক্লাসিককে প্রতিস্থাপন করার জন্য তৈরি করা হয়েছে এবং নির্দিষ্ট ব্যবহারের ক্ষেত্রে এবং সংযোগ টপোলজি সক্ষম করে। এটি ব্যবহারকারীদের তাদের অডিও বন্ধু এবং পরিবারের সাথে শেয়ার এবং সম্প্রচার করতে, অথবা তথ্য, বিনোদন বা অ্যাক্সেসযোগ্যতার জন্য পাবলিক সম্প্রচারে সাবস্ক্রাইব করতে দেয়। এটি এমনভাবে ডিজাইন করা হয়েছে যাতে ব্যবহারকারীরা ব্যাটারি লাইফ নষ্ট না করেই উচ্চ বিশ্বস্ততার অডিও পেতে পারেন এবং ব্লুটুথ ক্লাসিকের সাথে সম্ভব নয় এমন বিভিন্ন ব্যবহারের ক্ষেত্রে নির্বিঘ্নে স্যুইচ করতে পারেন। অ্যান্ড্রয়েড 13 থেকে শুরু করে, সিস্টেমটিতে LE অডিওর জন্য অন্তর্নির্মিত সমর্থন রয়েছে, তাই ডেভেলপাররা সামঞ্জস্যপূর্ণ ডিভাইসগুলিতে বিনামূল্যে এই ক্ষমতাগুলি পান।
মিডি ২.০
অ্যান্ড্রয়েড ১৩ থেকে শুরু করে, সিস্টেমটিতে MIDI 2.0 স্ট্যান্ডার্ডের জন্য সমর্থন রয়েছে, যার মধ্যে USB এর মাধ্যমে MIDI 2.0 হার্ডওয়্যার সংযোগ করার ক্ষমতা অন্তর্ভুক্ত রয়েছে। এই স্ট্যান্ডার্ডটি কন্ট্রোলারগুলির জন্য বর্ধিত রেজোলিউশন, অ-পশ্চিমা স্বরের জন্য আরও ভাল সমর্থন এবং প্রতি-নোট কন্ট্রোলার ব্যবহার করে আরও অভিব্যক্তিপূর্ণ কর্মক্ষমতার মতো বৈশিষ্ট্যগুলি অফার করে।
স্প্ল্যাশ স্ক্রিনের দক্ষতার উন্নতি
অ্যান্ড্রয়েড ১৩ স্প্ল্যাশ স্ক্রিন এপিআই-তে অ্যানিমেটেড স্প্ল্যাশ স্ক্রিনের দক্ষতা উন্নত করে:
সিস্টেমটি সরাসরি
AnimatedVectorDrawableথেকে অ্যানিমেশনের সময়কাল অনুমান করে। Android 13 এর আগে,windowSplashScreenAnimationDurationসরাসরি সেট করা প্রয়োজন ছিল।অ্যান্ড্রয়েড ১৩ এবং তার পরবর্তী সংস্করণে আপনার অ্যাপটি সবসময় স্প্ল্যাশ স্ক্রিনে আইকনটি প্রদর্শন করে কিনা তা আরও নিয়ন্ত্রণের জন্য নতুন
windowSplashScreenBehaviorঅ্যাট্রিবিউট ব্যবহার করুন।
বিস্তারিত ডকুমেন্টেশন দেখতে, স্প্ল্যাশ স্ক্রিন দেখুন।
ART অপ্টিমাইজেশন
অ্যান্ড্রয়েড ১৩ (এপিআই লেভেল ৩৩) এবং তার উচ্চতর সংস্করণে, ART নেটিভ কোডে এবং থেকে স্যুইচিং অনেক দ্রুত করে তোলে, যার ফলে JNI কল এখন ২.৫ গুণ দ্রুততর হয়। রানটাইম রেফারেন্স প্রসেসিংটিও পুনঃনির্মাণ করা হয়েছে যাতে এটি বেশিরভাগ ক্ষেত্রেই ব্লকিং-মুক্ত থাকে, যা জ্যাঙ্ককে আরও কমিয়ে দেয়। এছাড়াও, আপনি Reference.refersTo() পাবলিক API ব্যবহার করে অপ্রয়োজনীয় বস্তুগুলিকে দ্রুত পুনরুদ্ধার করতে পারেন এবং আপনি লক্ষ্য করবেন যে অপ্টিমাইজড ক্লাস এবং পদ্ধতি অনুসন্ধানের জন্য ইন্টারপ্রেটার এখন দ্রুততর। ART ইনস্টলেশনের সময় আরও বাইট-কোড যাচাইকরণ করে, রানটাইমে যাচাইকরণের খরচ এড়ায় এবং অ্যাপ স্টার্টআপের সময় দ্রুত রাখে।
গোপনীয়তা এবং নিরাপত্তা
প্রসঙ্গ-নিবন্ধিত রিসিভারের নিরাপদ রপ্তানি
রানটাইম রিসিভারগুলিকে আরও নিরাপদ করতে, Android 13 আপনার অ্যাপের জন্য একটি নিবন্ধিত ব্রডকাস্ট রিসিভার এক্সপোর্ট করা উচিত কিনা এবং ডিভাইসের অন্যান্য অ্যাপগুলিতে দৃশ্যমান হওয়া উচিত কিনা তা নির্দিষ্ট করার ক্ষমতা প্রবর্তন করে। Android এর পূর্ববর্তী সংস্করণগুলিতে, ডিভাইসের যেকোনো অ্যাপ একটি গতিশীলভাবে নিবন্ধিত রিসিভারকে একটি অরক্ষিত সম্প্রচার পাঠাতে পারত যদি না সেই রিসিভারটি স্বাক্ষর অনুমতি দ্বারা সুরক্ষিত থাকে।
এই এক্সপোর্টিং কনফিগারেশনটি সেই অ্যাপগুলিতে উপলব্ধ যা নিম্নলিখিতগুলির মধ্যে কমপক্ষে একটি করে:
- AndroidX Core লাইব্রেরির 1.9.0 বা তার পরবর্তী সংস্করণের
ContextCompatক্লাসটি ব্যবহার করুন। - Android 13 বা তার উচ্চতর ভার্সনকে টার্গেট করুন।
ফটো পিকার
অ্যান্ড্রয়েড ১৩ (এপিআই লেভেল ৩৩) এবং তার পরবর্তী ভার্সনে ফটো পিকারের অভিজ্ঞতা অন্তর্ভুক্ত। যখন আপনার অ্যাপটি ফটো পিকার চালু করে, তখন ব্যবহারকারীরা আপনার অ্যাপের সাথে শেয়ার করার জন্য নির্দিষ্ট ছবি এবং ভিডিও নির্বাচন করে, যেমন প্রোফাইল ছবি, আপনার অ্যাপটিকে পুরো মিডিয়া লাইব্রেরি দেখার অ্যাক্সেস দেওয়ার পরিবর্তে। এটি ব্যবহারকারীর ফটো এবং ভিডিও অ্যাক্সেস করার প্রস্তাবিত উপায়।
ফটো পিকার ব্যবহারকারীদের জন্য উন্নত গোপনীয়তা প্রদান করে কারণ আপনার অ্যাপটিকে কোনও রানটাইম অনুমতি ঘোষণা করার প্রয়োজন হয় না। এছাড়াও, ফটো পিকার অ্যাপগুলির জন্য একটি অন্তর্নির্মিত, মানসম্মত UI প্রদান করে, যা আরও সামঞ্জস্যপূর্ণ ব্যবহারকারীর অভিজ্ঞতা তৈরি করে।
কাছাকাছি ওয়াই-ফাই ডিভাইসের জন্য নতুন রানটাইম অনুমতি
অ্যান্ড্রয়েড ১৩ (এপিআই লেভেল ৩৩) NEARBY_DEVICES অনুমতি গোষ্ঠীতে এমন অ্যাপগুলির জন্য একটি নতুন রানটাইম অনুমতি প্রবর্তন করেছে যা Wi-Fi এর মাধ্যমে কাছাকাছি অ্যাক্সেস পয়েন্টগুলিতে ডিভাইসের সংযোগ পরিচালনা করে। এই অ্যাপগুলিকে বিভিন্ন Wi-Fi API কল করার সময় নতুন অনুমতি, NEARBY_WIFI_DEVICES ঘোষণা করতে হবে। এছাড়াও, যতক্ষণ পর্যন্ত অ্যাপগুলি Wi-Fi API থেকে ভৌত অবস্থান গ্রহণ না করে, ততক্ষণ পর্যন্ত Android 13 বা উচ্চতর ভার্সনগুলিকে লক্ষ্য করার সময় তাদের ACCESS_FINE_LOCATION অনুমতি ঘোষণা করার প্রয়োজন নেই।
কাছাকাছি ওয়াই-ফাই ডিভাইসের অনুমতি সম্পর্কে আরও জানুন।
সঠিক অ্যালার্ম ব্যবহারের জন্য নতুন অনুমতি
যদি আপনার অ্যাপটি অ্যান্ড্রয়েড ১৩ বা তার পরবর্তী সংস্করণের জন্য উপযুক্ত হয়, তাহলে আপনি USE_EXACT_ALARM অনুমতি ব্যবহার করতে পারেন, যা আপনার অ্যাপকে স্বয়ংক্রিয়ভাবে মঞ্জুর করা হয়। তবে, এই অনুমতি ব্যবহার করার জন্য, আপনার অ্যাপটিকে নিম্নলিখিত মানদণ্ডগুলির মধ্যে কমপক্ষে একটি পূরণ করতে হবে:
- তোমার অ্যাপটি একটি অ্যালার্ম ঘড়ি অ্যাপ অথবা একটি টাইমার অ্যাপ।
- আপনার অ্যাপটি একটি ক্যালেন্ডার অ্যাপ যা আসন্ন ইভেন্টগুলির জন্য বিজ্ঞপ্তি দেখায়।
যদি আপনার অ্যাপটি সঠিক অ্যালার্ম সেট করে কিন্তু পূর্ববর্তী তালিকার কোনও ক্ষেত্রেই সন্তুষ্ট না হয়, তাহলে পরিবর্তে SCHEDULE_EXACT_ALARM অনুমতি ঘোষণা করা চালিয়ে যান এবং ব্যবহারকারী আপনার অ্যাপে অ্যাক্সেস অস্বীকার করলে পরিস্থিতির জন্য প্রস্তুত থাকুন।
ডেভেলপারদের ডাউনগ্রেডেবল অনুমতি
অ্যান্ড্রয়েড ১৩ থেকে শুরু করে, আপনার অ্যাপটি অব্যবহৃত রানটাইম অনুমতিগুলিতে অ্যাক্সেস প্রত্যাহার করতে পারে। এই API আপনার অ্যাপটিকে নিম্নলিখিতগুলির মতো গোপনীয়তা-বর্ধক কাজগুলি সম্পাদন করতে দেয়:
- অব্যবহৃত অনুমতিগুলি সরান।
- অনুমতির সর্বোত্তম অনুশীলনগুলি মেনে চলুন, যা ব্যবহারকারীর আস্থা বৃদ্ধি করে। আপনি ব্যবহারকারীদের একটি ডায়ালগ দেখানোর কথা বিবেচনা করতে পারেন যেখানে আপনি সক্রিয়ভাবে প্রত্যাহার করা অনুমতিগুলি প্রদর্শন করা হবে।
APK স্বাক্ষর স্কিম v3.1
অ্যান্ড্রয়েড ১৩ APK সিগনেচার স্কিম v3.1 এর জন্য সমর্থন যোগ করে, যা বিদ্যমান APK সিগনেচার স্কিম v3 এর চেয়ে উন্নত। এই স্কিমটি APK সিগনেচার স্কিম v3 এর ঘূর্ণন সম্পর্কিত কিছু জ্ঞাত সমস্যা সমাধান করে । বিশেষ করে, v3.1 সিগনেচার স্কিমটি SDK সংস্করণ টার্গেটিং সমর্থন করে, যা প্ল্যাটফর্মের পরবর্তী রিলিজকে লক্ষ্য করে ঘূর্ণনকে অনুমতি দেয়।
v3.1 স্বাক্ষর স্কিমটি এমন একটি ব্লক আইডি ব্যবহার করে যা 12L বা তার কম সংস্করণে স্বীকৃত নয়। অতএব, প্ল্যাটফর্মটি নিম্নলিখিত স্বাক্ষরকারী আচরণ প্রয়োগ করে:
- অ্যান্ড্রয়েড ১৩ বা তার পরবর্তী ভার্সন চালিত ডিভাইসগুলি 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 বা তার কম।
Keystore এবং KeyMint-এ আরও ভালো ত্রুটি রিপোর্টিং
কী জেনারেট করে এমন অ্যাপগুলির জন্য, Keystore এবং KeyMint এখন আরও বিস্তারিত এবং সঠিক ত্রুটি নির্দেশক প্রদান করে। আমরা java.security.ProviderException এর অধীনে একটি ব্যতিক্রম শ্রেণীর শ্রেণিবিন্যাস যুক্ত করেছি, যার মধ্যে Android-নির্দিষ্ট ব্যতিক্রম রয়েছে যার মধ্যে Keystore/KeyMint ত্রুটি কোড অন্তর্ভুক্ত রয়েছে এবং ত্রুটিটি পুনরায় চেষ্টা করা যাবে কিনা। আপনি কী জেনারেশনের পদ্ধতিগুলিও পরিবর্তন করতে পারেন এবং নতুন ব্যতিক্রমগুলি ফেলে দেওয়ার জন্য (সাইনিং, এনক্রিপশন) ব্যবহার করতে পারেন। উন্নত ত্রুটি প্রতিবেদন কেবল কী জেনারেশনের মধ্যে সীমাবদ্ধ নয় এবং এখন আপনাকে কী জেনারেশন পুনরায় চেষ্টা করার জন্য প্রয়োজনীয় জিনিসগুলি দেবে।
ট্যাবলেট এবং বড় স্ক্রিন সাপোর্ট
অ্যান্ড্রয়েড ১৩, অ্যান্ড্রয়েড ১২-তে প্রবর্তিত ট্যাবলেট অপ্টিমাইজেশন এবং ১২L ফিচার ড্রপের উপর ভিত্তি করে তৈরি—যার মধ্যে রয়েছে সিস্টেম UI-এর জন্য অপ্টিমাইজেশন, আরও ভালো মাল্টিটাস্কিং এবং উন্নত সামঞ্জস্য মোড। আপনার পরীক্ষার অংশ হিসেবে, নিশ্চিত করুন যে আপনার অ্যাপগুলি ট্যাবলেট এবং অন্যান্য বড়-স্ক্রিন ডিভাইসে সেরা দেখাচ্ছে।
নতুন কী এবং কী পরীক্ষা করতে হবে সে সম্পর্কে আরও তথ্যের জন্য, ট্যাবলেট এবং বড়-স্ক্রিন সহায়তা পৃষ্ঠাটি দেখুন।
গ্রাফিক্স
প্রোগ্রামেবল শেডার

অ্যান্ড্রয়েড ১৩ থেকে শুরু করে, সিস্টেমটিতে প্রোগ্রামেবল RuntimeShader অবজেক্টের জন্য সমর্থন রয়েছে, যার আচরণ অ্যান্ড্রয়েড গ্রাফিক্স শেডিং ল্যাঙ্গুয়েজ ( AGSL ) ব্যবহার করে সংজ্ঞায়িত করা হয়েছে। AGSL তার সিনট্যাক্সের বেশিরভাগ অংশ GLSL এর সাথে ভাগ করে নেয়, তবে অ্যান্ড্রয়েড রেন্ডারিং ইঞ্জিনের মধ্যে অ্যান্ড্রয়েডের ক্যানভাসের মধ্যে পেইন্টিং কাস্টমাইজ করার পাশাপাশি ভিউ কন্টেন্ট ফিল্টার করার জন্য কাজ করে। অ্যান্ড্রয়েড অভ্যন্তরীণভাবে রিপল ইফেক্ট , ব্লার এবং স্ট্রেচ ওভারস্ক্রোল বাস্তবায়নের জন্য এই শেডারগুলি ব্যবহার করে। অ্যান্ড্রয়েড ১৩ এবং উচ্চতর সংস্করণগুলি আপনাকে আপনার অ্যাপের জন্য অনুরূপ উন্নত প্রভাব তৈরি করতে সক্ষম করে।
কোরিওগ্রাফারের উন্নতি
অ্যান্ড্রয়েড ১৩ Choreographer এবং ASurfaceControl এ পাবলিক API পদ্ধতি চালু করেছে যা অ্যাপগুলিকে সম্ভাব্য ফ্রেম টাইমলাইন সম্পর্কে আরও তথ্য প্রদান করে এবং ফ্রেম লাইফসাইকেল সম্পর্কে SurfaceFlinger এ আরও প্রসঙ্গ যোগ করে। আগের মতোই, অ্যাপগুলি Choreographer কলব্যাক পোস্ট করতে পারে এবং ফ্রেম টাইমলাইনের তথ্য গ্রহণ করতে পারে। অ্যান্ড্রয়েড ১৩ (API লেভেল ৩৩) এ, Choreographer একাধিক সম্ভাব্য উপস্থাপনার সময় এবং তাদের সংশ্লিষ্ট ফ্রেমের সময়সীমা ফেরত দেয়। অ্যাপগুলি উপস্থাপনার সময় বেছে নিতে পারে এবং পরবর্তীতে SurfaceFlinger পছন্দের বিষয়ে অবহিত করতে পারে । এরপর SurfaceFlinger পছন্দসই উপস্থাপনার সময়ের আগে লেনদেন বা ল্যাচ বাফার প্রয়োগ করার চেষ্টা করে না।

ক্যামেরা
HDR ভিডিও ক্যাপচার
অ্যান্ড্রয়েড ১৩ থেকে শুরু করে, ক্যামেরা২ এপিআই হাই ডাইনামিক রেঞ্জ (এইচডিআর) ভিডিও ক্যাপচার সমর্থন করে, যা আপনাকে আপনার ক্যামেরা ব্যবহার করে এইচডিআর ভিডিও কন্টেন্টের প্রিভিউ এবং রেকর্ড করতে সক্ষম করে। স্ট্যান্ডার্ড ডাইনামিক রেঞ্জ (এসডিআর) এর তুলনায়, এইচডিআর রঙের বিস্তৃত পরিসর অফার করে এবং লুমিন্যান্স উপাদানের গতিশীল পরিসর বৃদ্ধি করে (বর্তমান ১০০ সিডি/মিটার২ থেকে ১০০০ সিডি/মিটার২ পর্যন্ত)। এর ফলে ভিডিওর গুণমান আরও ঘনিষ্ঠভাবে বাস্তব জীবনের সাথে মিলে যায়, আরও সমৃদ্ধ রঙ, উজ্জ্বল হাইলাইট এবং গাঢ় ছায়া সহ।
HDR ভিডিও ক্যাপচার সম্পর্কে আরও জানতে, HDR ভিডিও ক্যাপচার ডকুমেন্টেশন দেখুন।
মিডিয়া
স্থানিক অডিও
স্পেশিয়াল অডিও হল একটি নিমজ্জিত অডিও অভিজ্ঞতা যা আপনার ব্যবহারকারীদের জন্য মিডিয়া কন্টেন্টকে আরও বাস্তবসম্মত করে তোলে। এই বৈশিষ্ট্যের সাথে কীভাবে একীভূত করবেন সে সম্পর্কে বিস্তারিত জানতে আমাদের স্পেশিয়াল অডিও ডকুমেন্টেশন দেখুন।
আগাম অডিও রাউটিং
মিডিয়া অ্যাপগুলিকে তাদের অডিও কীভাবে রাউট করা হবে তা শনাক্ত করতে সাহায্য করার জন্য, Android 13 AudioManager ক্লাসে অডিও রুট API চালু করে। getAudioDevicesForAttributes() API আপনাকে নির্দিষ্ট অডিও চালানোর জন্য ব্যবহৃত ডিভাইসগুলির একটি তালিকা পুনরুদ্ধার করতে দেয় এবং getDirectProfilesForAttributes() API আপনাকে বুঝতে সাহায্য করে যে আপনার অডিও স্ট্রিম সরাসরি চালানো যাবে কিনা। আপনার অডিও ট্র্যাকের জন্য ব্যবহার করার জন্য সেরা AudioFormat নির্ধারণ করতে এই APIগুলি ব্যবহার করুন।
অ্যাক্সেসযোগ্যতা
অডিও বর্ণনা
অ্যান্ড্রয়েড ১৩ (এপিআই লেভেল ৩৩) একটি নতুন সিস্টেম-ওয়াইড অ্যাক্সেসিবিলিটি পছন্দ চালু করেছে যা ব্যবহারকারীদের সমস্ত অ্যাপ জুড়ে অডিও বর্ণনা সক্ষম করতে দেয়। একটি অডিও বিবরণ হল একটি অতিরিক্ত বর্ণনামূলক ট্র্যাক যাতে একজন বর্ণনাকারী উপস্থাপনার মাধ্যমে কথা বলেন, অডিওতে স্বাভাবিক বিরতির সময় স্ক্রিনে কী ঘটছে তা বর্ণনা করেন। অ্যাপগুলি 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 ১১টি আপডেট
অ্যান্ড্রয়েড ১৩, অ্যাপ্লিকেশন এবং প্ল্যাটফর্ম ডেভেলপারদের জন্য লাইব্রেরি আপডেট এবং জাভা ১১ ভাষা সমর্থন উভয়ের মাধ্যমে ওপেনজেডিকে ১১ এলটিএস রিলিজের সাথে সামঞ্জস্যপূর্ণ করার জন্য অ্যান্ড্রয়েডের মূল লাইব্রেরিগুলিকে রিফ্রেশ করার কাজ শুরু করে। অ্যান্ড্রয়েড ১৩-তে প্রবর্তিত মূল লাইব্রেরি পরিবর্তনগুলি এআরটি মেইনলাইন মডিউলে গুগল প্লে সিস্টেম আপডেটের মাধ্যমে অ্যান্ড্রয়েড ১২ ডিভাইসেও উপলব্ধ হবে।
অ্যান্ড্রয়েড ১৩-তে মূল লাইব্রেরিতে নিম্নলিখিত পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে:
- স্থানীয় ভেরিয়েবল এবং প্যারামিটার ল্যাম্বডাসের জন্য
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কার্যকারিতা।ByteArrayInputঅথবাOutputStreamএবংInputঅথবাOutputStreamএর জন্য নতুনtransferTo(),readNBytes(),readAllBytes(), এবংwriteBytes()ফাংশন।java.lang.invoke.VarHandleএর রানটাইম এবং কম্পাইলার সাপোর্ট।অভ্যন্তরীণভাবে
VarHandleব্যবহার করেjava.util.concurrentকে OpenJDK 11 API তে আপডেট করে।
জাভা এবং ওপেনজেডিকে হল ওরাকল এবং/অথবা এর সহযোগীদের ট্রেডমার্ক বা নিবন্ধিত ট্রেডমার্ক।