বৈশিষ্ট্য এবং APIs ওভারভিউ

অ্যান্ড্রয়েড ১৪ ডেভেলপারদের জন্য দুর্দান্ত বৈশিষ্ট্য এবং API গুলি উপস্থাপন করেছে। নিম্নলিখিতগুলি আপনাকে আপনার অ্যাপগুলির বৈশিষ্ট্যগুলি সম্পর্কে জানতে এবং সম্পর্কিত API গুলি দিয়ে শুরু করতে সহায়তা করে।

যোগ করা, পরিবর্তিত এবং সরানো API গুলির বিস্তারিত তালিকার জন্য, API diff রিপোর্টটি পড়ুন। যোগ করা API গুলির বিস্তারিত জানতে Android API রেফারেন্সটি দেখুন — Android 14 এর জন্য, API লেভেল 34 এ যোগ করা API গুলি সন্ধান করুন। প্ল্যাটফর্ম পরিবর্তনগুলি আপনার অ্যাপগুলিকে কোথায় প্রভাবিত করতে পারে সে সম্পর্কে জানতে, Android 14 এবং সমস্ত অ্যাপকে লক্ষ্য করে এমন অ্যাপগুলির জন্য Android 14 আচরণ পরিবর্তনগুলি পরীক্ষা করে দেখতে ভুলবেন না।

আন্তর্জাতিকীকরণ

প্রতি অ্যাপের ভাষা পছন্দ

Android 14 এই অতিরিক্ত ক্ষমতা সহ Android 13 (API লেভেল 33) এ প্রবর্তিত প্রতি-অ্যাপ ভাষার বৈশিষ্ট্যগুলিতে প্রসারিত হয়:

  • স্বয়ংক্রিয়ভাবে একটি অ্যাপের localeConfig তৈরি করুন : Android Studio Giraffe Canary 7 এবং AGP 8.1.0-alpha07 দিয়ে শুরু করে, আপনি স্বয়ংক্রিয়ভাবে প্রতি-অ্যাপ ভাষা পছন্দগুলিকে সমর্থন করার জন্য আপনার অ্যাপ কনফিগার করতে পারেন। আপনার প্রকল্প সংস্থানগুলির উপর ভিত্তি করে, Android Gradle প্লাগইন LocaleConfig ফাইল তৈরি করে এবং চূড়ান্ত ম্যানিফেস্ট ফাইলে এটির একটি রেফারেন্স যোগ করে, তাই আপনাকে আর ফাইলটি ম্যানুয়ালি তৈরি বা আপডেট করতে হবে না। LocaleConfig ফাইলে অন্তর্ভুক্ত করার জন্য লোকেলগুলি নির্ধারণ করতে AGP আপনার অ্যাপ মডিউলের res ফোল্ডার এবং যেকোনো লাইব্রেরি মডিউল নির্ভরতাগুলির সংস্থানগুলি ব্যবহার করে।

  • একটি অ্যাপের localeConfig এর জন্য ডায়নামিক আপডেট : ডিভাইসের সিস্টেম সেটিংসে আপনার অ্যাপের সমর্থিত ভাষার তালিকা গতিশীলভাবে আপডেট করতে LocaleManagersetOverrideLocaleConfig() এবং getOverrideLocaleConfig() পদ্ধতি ব্যবহার করুন। প্রতি অঞ্চলে সমর্থিত ভাষার তালিকা কাস্টমাইজ করতে এই নমনীয়তা ব্যবহার করুন, A/B পরীক্ষা চালান, অথবা আপনার অ্যাপ স্থানীয়করণের জন্য সার্ভার-সাইড পুশ ব্যবহার করলে লোকেলের একটি আপডেট করা তালিকা প্রদান করুন।

  • ইনপুট মেথড এডিটর (IMEs)-এর জন্য অ্যাপের ভাষার দৃশ্যমানতা : IMEs বর্তমান অ্যাপের ভাষা চেক করতে getApplicationLocales() পদ্ধতি ব্যবহার করতে পারে এবং সেই ভাষার সাথে IME ভাষা মেলে।

ব্যাকরণগত প্রতিফলন API

3 বিলিয়ন মানুষ লিঙ্গভিত্তিক ভাষায় কথা বলে: এমন ভাষা যেখানে ব্যাকরণগত বিভাগগুলি-যেমন বিশেষ্য, ক্রিয়া, বিশেষণ এবং অব্যয়গুলি-আপনি যে লোকে এবং বস্তুগুলির সাথে কথা বলেন বা তাদের লিঙ্গ অনুসারে প্রভাবিত করে৷ ঐতিহ্যগতভাবে, অনেক লিঙ্গযুক্ত ভাষা ডিফল্ট বা জেনেরিক লিঙ্গ হিসাবে পুংলিঙ্গ ব্যাকরণগত লিঙ্গ ব্যবহার করে।

ভুল ব্যাকরণগত লিঙ্গে ব্যবহারকারীদের সম্বোধন করা, যেমন পুরুষালি ব্যাকরণগত লিঙ্গে মহিলাদের সম্বোধন করা, তাদের কর্মক্ষমতা এবং মনোভাবকে নেতিবাচকভাবে প্রভাবিত করতে পারে। বিপরীতে, ভাষা সহ একটি UI যা ব্যবহারকারীর ব্যাকরণগত লিঙ্গকে সঠিকভাবে প্রতিফলিত করে ব্যবহারকারীর ব্যস্ততা উন্নত করতে পারে এবং আরও ব্যক্তিগতকৃত এবং স্বাভাবিক-শব্দযুক্ত ব্যবহারকারীর অভিজ্ঞতা প্রদান করতে পারে।

লিঙ্গভিত্তিক ভাষার জন্য একটি ব্যবহারকারী-কেন্দ্রিক UI তৈরি করতে আপনাকে সাহায্য করার জন্য, Android 14 ব্যাকরণগত ইনফ্লেকশন API প্রবর্তন করেছে, যা আপনাকে আপনার অ্যাপ রিফ্যাক্টর না করেই ব্যাকরণগত লিঙ্গের জন্য সমর্থন যোগ করতে দেয়।

,

লিঙ্গভিত্তিক ভাষার জন্য একটি ব্যবহারকারী-কেন্দ্রিক UI তৈরি করতে আপনাকে সাহায্য করার জন্য, Android 14 ব্যাকরণগত ইনফ্লেকশন API প্রবর্তন করেছে, যা আপনাকে আপনার অ্যাপ রিফ্যাক্টর না করেই ব্যাকরণগত লিঙ্গের জন্য সমর্থন যোগ করতে দেয়।

,

লিঙ্গভিত্তিক ভাষার জন্য একটি ব্যবহারকারী-কেন্দ্রিক UI তৈরি করতে আপনাকে সাহায্য করার জন্য, Android 14 ব্যাকরণগত ইনফ্লেকশন API প্রবর্তন করেছে, যা আপনাকে আপনার অ্যাপ রিফ্যাক্টর না করেই ব্যাকরণগত লিঙ্গের জন্য সমর্থন যোগ করতে দেয়।

,

লিঙ্গভিত্তিক ভাষার জন্য একটি ব্যবহারকারী-কেন্দ্রিক UI তৈরি করতে আপনাকে সাহায্য করার জন্য, Android 14 ব্যাকরণগত ইনফ্লেকশন API প্রবর্তন করেছে, যা আপনাকে আপনার অ্যাপ রিফ্যাক্টর না করেই ব্যাকরণগত লিঙ্গের জন্য সমর্থন যোগ করতে দেয়।

আঞ্চলিক পছন্দসমূহ

আঞ্চলিক পছন্দগুলি ব্যবহারকারীদের তাপমাত্রা ইউনিট, সপ্তাহের প্রথম দিন এবং নম্বর সিস্টেমগুলিকে ব্যক্তিগতকৃত করতে সক্ষম করে৷ মার্কিন যুক্তরাষ্ট্রে বসবাসকারী একজন ইউরোপীয় ব্যক্তি ফারেনহাইটের পরিবর্তে তাপমাত্রার একক সেলসিয়াসে থাকতে পছন্দ করতে পারেন এবং অ্যাপগুলির জন্য রবিবারের মার্কিন ডিফল্টের পরিবর্তে সোমবারকে সপ্তাহের শুরু হিসাবে বিবেচনা করতে পারে।

এই পছন্দগুলির জন্য নতুন অ্যান্ড্রয়েড সেটিংস মেনুগুলি ব্যবহারকারীদের অ্যাপ পছন্দগুলি পরিবর্তন করতে একটি আবিষ্কারযোগ্য এবং কেন্দ্রীভূত অবস্থান প্রদান করে৷ এই পছন্দগুলি ব্যাকআপ এবং পুনরুদ্ধারের মাধ্যমেও বজায় থাকে। বেশ কিছু API এবং উদ্দেশ্য — যেমন getTemperatureUnit এবং getFirstDayOfWeek — আপনার অ্যাপটিকে ব্যবহারকারীর পছন্দগুলিতে পড়ার অ্যাক্সেস মঞ্জুর করে, যাতে আপনার অ্যাপ কীভাবে তথ্য প্রদর্শন করে তা সামঞ্জস্য করতে পারে৷ আঞ্চলিক পছন্দ পরিবর্তন হলে লোকেল কনফিগারেশন পরিবর্তনগুলি পরিচালনা করতে আপনি ACTION_LOCALE_CHANGED এ একটি BroadcastReceiver নিবন্ধন করতে পারেন৷

এই সেটিংসগুলি খুঁজতে, সেটিংস অ্যাপটি খুলুন এবং সিস্টেম > ভাষা এবং ইনপুট > আঞ্চলিক পছন্দগুলিতে নেভিগেট করুন।

অ্যান্ড্রয়েড সিস্টেম সেটিংসে আঞ্চলিক পছন্দের স্ক্রীন।
অ্যান্ড্রয়েড সিস্টেম সেটিংসে আঞ্চলিক পছন্দের জন্য তাপমাত্রার বিকল্প।

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

নন-লিনিয়ার ফন্ট স্কেলিং ২০০% এ

অ্যান্ড্রয়েড ১৪ থেকে শুরু করে, সিস্টেমটি ২০০% পর্যন্ত ফন্ট স্কেলিং সমর্থন করে, যা ব্যবহারকারীদের অতিরিক্ত অ্যাক্সেসিবিলিটি বিকল্প প্রদান করে।

স্ক্রিনে বৃহৎ টেক্সট এলিমেন্ট যাতে খুব বেশি স্কেলিং না করে, তার জন্য সিস্টেমটি একটি নন-লিনিয়ার স্কেলিং কার্ভ প্রয়োগ করে। এই স্কেলিং কৌশলের অর্থ হল বৃহৎ টেক্সট ছোট টেক্সটের সমান হারে স্কেলিং করে না। নন-লিনিয়ার ফন্ট স্কেলিং বিভিন্ন আকারের উপাদানের মধ্যে আনুপাতিক স্তরক্রম বজায় রাখতে সাহায্য করে এবং উচ্চ ডিগ্রীতে লিনিয়ার টেক্সট স্কেলিং (যেমন টেক্সট কেটে ফেলা বা অত্যন্ত বড় ডিসপ্লে সাইজের কারণে পড়া কঠিন হয়ে পড়া) সমস্যাগুলি কমাতে সাহায্য করে।

নন-লিনিয়ার ফন্ট স্কেলিং দিয়ে আপনার অ্যাপটি পরীক্ষা করুন

আপনার অ্যাপ পরীক্ষা করার জন্য ডিভাইসের অ্যাক্সেসিবিলিটি সেটিংসে সর্বোচ্চ ফন্ট সাইজ সক্ষম করুন।

যদি আপনি ইতিমধ্যেই টেক্সট সাইজিং নির্ধারণের জন্য স্কেলড পিক্সেল (sp) ইউনিট ব্যবহার করেন, তাহলে এই অতিরিক্ত বিকল্পগুলি এবং স্কেলিং উন্নতিগুলি আপনার অ্যাপের টেক্সটে স্বয়ংক্রিয়ভাবে প্রয়োগ করা হবে। তবে, আপনার অ্যাপটি সঠিকভাবে ফন্ট সাইজ প্রয়োগ করে এবং ব্যবহারযোগ্যতাকে প্রভাবিত না করে বড় ফন্ট সাইজগুলিকে সামঞ্জস্য করতে পারে তা নিশ্চিত করার জন্য আপনার সর্বোচ্চ ফন্ট সাইজ (200%) সক্ষম করে UI পরীক্ষা করা উচিত।

২০০% ফন্ট সাইজ সক্ষম করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

  1. সেটিংস অ্যাপটি খুলুন এবং অ্যাক্সেসিবিলিটি > ডিসপ্লে সাইজ এবং টেক্সট এ যান।
  2. ফন্ট সাইজ বিকল্পের জন্য, প্লাস (+) আইকনে ট্যাপ করুন যতক্ষণ না সর্বোচ্চ ফন্ট সাইজ সেটিং সক্ষম হয়, যেমনটি এই বিভাগের সাথে থাকা ছবিতে দেখানো হয়েছে।

টেক্সট-সাইজ এর জন্য স্কেলড পিক্সেল (sp) ইউনিট ব্যবহার করুন

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

প্যাডিংয়ের জন্য sp ইউনিট ব্যবহার করবেন না বা অন্তর্নিহিত প্যাডিং ধরে নিয়ে ভিউ হাইট নির্ধারণ করবেন না: নন-লিনিয়ার ফন্ট স্কেলিংয়ে sp মাত্রা সমানুপাতিক নাও হতে পারে, তাই 4sp + 20sp 24sp এর সমান নাও হতে পারে।

স্কেলড পিক্সেল (sp) ইউনিট রূপান্তর করুন

sp ইউনিট থেকে পিক্সেলে রূপান্তর করতে TypedValue.applyDimension() ব্যবহার করুন, এবং পিক্সেলকে sp তে রূপান্তর করতে TypedValue.deriveDimension() ব্যবহার করুন। এই পদ্ধতিগুলি স্বয়ংক্রিয়ভাবে উপযুক্ত নন-লিনিয়ার স্কেলিং কার্ভ প্রয়োগ করে।

Configuration.fontScale অথবা DisplayMetrics.scaledDensity ব্যবহার করে হার্ডকোডিং সমীকরণ এড়িয়ে চলুন । যেহেতু ফন্ট স্কেলিং অরৈখিক, তাই scaledDensity ক্ষেত্রটি আর সঠিক নয়। fontScale ক্ষেত্রটি কেবল তথ্যের উদ্দেশ্যে ব্যবহার করা উচিত কারণ ফন্টগুলি আর একক স্কেলার মান দিয়ে স্কেল করা হয় না।

লাইনহাইটের জন্য sp ইউনিট ব্যবহার করুন

সর্বদা dp এর পরিবর্তে sp ইউনিট ব্যবহার করে android:lineHeight সংজ্ঞায়িত করুন, যাতে লাইনের উচ্চতা আপনার টেক্সটের সাথে স্কেল হয়। অন্যথায়, যদি আপনার টেক্সট sp হয় কিন্তু আপনার lineHeight dp বা px এ থাকে, তাহলে এটি স্কেল করে না এবং সঙ্কুচিত দেখায়। TextView স্বয়ংক্রিয়ভাবে lineHeight সংশোধন করে যাতে আপনার অভিপ্রেত অনুপাতগুলি সংরক্ষিত থাকে, তবে শুধুমাত্র যদি textSize এবং lineHeight উভয়ই sp ইউনিটে সংজ্ঞায়িত করা হয়।

ক্যামেরা এবং মিডিয়া

ছবির জন্য আল্ট্রা এইচডিআর

标准动态范围 (SDR) 与高动态范围 (HDR) 图片质量对比示意图。

Android 14 新增了对高动态范围 (HDR) 图片的支持,可在拍摄照片时保留更多来自传感器的信息,从而实现鲜艳的色彩和更高的对比度。Android 使用 Ultra HDR 格式,该格式与 JPEG 图片完全向后兼容,可让应用与 HDR 图片无缝互操作,并根据需要以标准动态范围 (SDR) 显示这些图片。

当您的应用选择为其 activity 窗口使用 HDR 界面(通过清单条目或通过在运行时调用 Window.setColorMode())时,框架会自动在界面中以 HDR 格式渲染这些图片。您还可以在受支持的设备上拍摄压缩的 Ultra HDR 静态图片。从传感器中恢复的颜色越多,后期编辑的灵活性就越高。与 Ultra HDR 图片关联的 Gainmap 可用于使用 OpenGL 或 Vulkan 渲染这些图片。

ক্যামেরা এক্সটেনশনে জুম, ফোকাস, পোস্টভিউ এবং আরও অনেক কিছু

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

  • ডায়নামিক স্টিল ক্যাপচার প্রসেসিং লেটেন্সি অনুমান বর্তমান দৃশ্য এবং পরিবেশ পরিস্থিতির উপর ভিত্তি করে অনেক বেশি সঠিক এখনও ক্যাপচার লেটেন্সি অনুমান প্রদান করে। একটি StillCaptureLatency অবজেক্ট পেতে CameraExtensionSession.getRealtimeStillCaptureLatency() কল করুন যাতে দুটি লেটেন্সি অনুমান পদ্ধতি রয়েছে৷ getCaptureLatency() পদ্ধতিটি onCaptureStarted এবং onCaptureProcessStarted() এর মধ্যে আনুমানিক লেটেন্সি প্রদান করে এবং getProcessingLatency() পদ্ধতিটি onCaptureProcessStarted() এবং উপলব্ধ চূড়ান্ত প্রক্রিয়াকৃত ফ্রেমের মধ্যে আনুমানিক লেটেন্সি প্রদান করে।
  • ক্যাপচার অগ্রগতি কলব্যাকগুলির জন্য সমর্থন যাতে অ্যাপগুলি দীর্ঘ-চলমান, স্থির-ক্যাপচার প্রক্রিয়াকরণ ক্রিয়াকলাপগুলির বর্তমান অগ্রগতি প্রদর্শন করতে পারে। আপনি CameraExtensionCharacteristics.isCaptureProcessProgressAvailable এর সাথে এই বৈশিষ্ট্যটি উপলব্ধ কিনা তা পরীক্ষা করতে পারেন, এবং যদি এটি হয়, তাহলে আপনি onCaptureProcessProgressed() কলব্যাক প্রয়োগ করেন, যার অগ্রগতি (0 থেকে 100 পর্যন্ত) একটি প্যারামিটার হিসাবে পাস করা হয়েছে৷
  • এক্সটেনশন নির্দিষ্ট মেটাডেটা, যেমন CaptureRequest.EXTENSION_STRENGTH একটি এক্সটেনশন প্রভাবের পরিমাণে ডায়াল করার জন্য, যেমন EXTENSION_BOKEH এর সাথে ব্যাকগ্রাউন্ড ব্লারের পরিমাণ।

  • ক্যামেরা এক্সটেনশনগুলিতে স্টিল ক্যাপচারের জন্য পোস্টভিউ বৈশিষ্ট্য, যা চূড়ান্ত চিত্রের চেয়ে কম প্রক্রিয়াজাত চিত্র প্রদান করে। যদি একটি এক্সটেনশন প্রসেসিং লেটেন্সি বাড়িয়ে দেয়, তাহলে UX উন্নত করার জন্য একটি পোস্টভিউ ইমেজ প্লেসহোল্ডার হিসেবে প্রদান করা যেতে পারে এবং পরে চূড়ান্ত ইমেজের জন্য স্যুইচ আউট করা যেতে পারে। আপনি CameraExtensionCharacteristics.isPostviewAvailable এর সাথে এই বৈশিষ্ট্যটি উপলব্ধ কিনা তা পরীক্ষা করতে পারেন। তারপর আপনি ExtensionSessionConfiguration.setPostviewOutputConfiguration এ একটি OutputConfiguration পাস করতে পারেন।

  • SurfaceView এর জন্য সমর্থন আরও অপ্টিমাইজ করা এবং শক্তি-দক্ষ প্রিভিউ রেন্ডার পাথের জন্য অনুমতি দেয়।

  • এক্সটেনশন ব্যবহারের সময় ফোকাস এবং জুম করার জন্য ট্যাপ করার জন্য সমর্থন।

ইন-সেন্সর জুম

CameraCharacteristics 中的 REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE 包含 SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW 时,您的应用可以使用高级传感器功能,将剪裁后的 RAW 数据流的像素与全视野范围相同,方法是将 CaptureRequest 与将数据流用例设置为 CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW 的 RAW 目标搭配使用。通过实现请求替换控件,更新后的相机可让用户在其他相机控件准备就绪之前使用缩放控件。

লসলেস ইউএসবি অডিও

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

ডেভেলপারের উৎপাদনশীলতা এবং সরঞ্জাম

শংসাপত্র ব্যবস্থাপক

অ্যান্ড্রয়েড 14 একটি প্ল্যাটফর্ম API হিসাবে ক্রেডেনশিয়াল ম্যানেজার যুক্ত করে, Google Play পরিষেবাগুলি ব্যবহার করে জেটপ্যাক লাইব্রেরির মাধ্যমে Android 4.4 (API স্তর 19) ডিভাইসগুলিতে অতিরিক্ত সমর্থন সহ। শংসাপত্র ব্যবস্থাপকের লক্ষ্য হল ব্যবহারকারী-কনফিগার করা শংসাপত্র প্রদানকারীদের সাথে শংসাপত্র পুনরুদ্ধার এবং সঞ্চয় করে এমন API সহ ব্যবহারকারীদের জন্য সাইন-ইন সহজ করা। ক্রেডেনশিয়াল ম্যানেজার একাধিক সাইন-ইন পদ্ধতি সমর্থন করে, যার মধ্যে ব্যবহারকারীর নাম এবং পাসওয়ার্ড, পাসকি এবং ফেডারেটেড সাইন-ইন সমাধান (যেমন Google-এর সাথে সাইন-ইন) একক API-এ অন্তর্ভুক্ত।

পাসকি অনেক সুবিধা প্রদান করে। উদাহরণস্বরূপ, পাসকিগুলি শিল্পের মানগুলির উপর তৈরি করা হয়, বিভিন্ন অপারেটিং সিস্টেম এবং ব্রাউজার ইকোসিস্টেম জুড়ে কাজ করতে পারে এবং ওয়েবসাইট এবং অ্যাপ উভয়ের সাথেই ব্যবহার করা যেতে পারে।

আরও তথ্যের জন্য, ক্রেডেনশিয়াল ম্যানেজার এবং পাসকি ডকুমেন্টেশন এবং ক্রেডেনশিয়াল ম্যানেজার এবং পাসকি সম্পর্কে ব্লগপোস্ট দেখুন।

স্বাস্থ্য সংযোগ

Health Connect হল ব্যবহারকারীর স্বাস্থ্য এবং ফিটনেস ডেটার জন্য একটি অন-ডিভাইস সংগ্রহস্থল। এটি ব্যবহারকারীদের তাদের পছন্দের অ্যাপগুলির মধ্যে ডেটা শেয়ার করতে দেয়, এই অ্যাপগুলির সাথে তারা কোন ডেটা ভাগ করতে চায় তা নিয়ন্ত্রণ করতে একটি একক জায়গা দিয়ে।

Android 14-এর পূর্বে Android সংস্করণে চলমান ডিভাইসগুলিতে, Health Connect Google Play স্টোরে একটি অ্যাপ হিসেবে ডাউনলোড করার জন্য উপলব্ধ। Android 14 দিয়ে শুরু করে, Health Connect হল প্ল্যাটফর্মের অংশ এবং আলাদা ডাউনলোডের প্রয়োজন ছাড়াই Google Play সিস্টেম আপডেটের মাধ্যমে আপডেট গ্রহণ করে। এটির সাহায্যে, Health Connect ঘন ঘন আপডেট করা যেতে পারে এবং আপনার অ্যাপগুলি Android 14 বা উচ্চতর সংস্করণে চালিত ডিভাইসগুলিতে উপলব্ধ থাকা Health Connect-এর উপর নির্ভর করতে পারে। ব্যবহারকারীরা তাদের ডিভাইসের সেটিংস থেকে, সিস্টেম সেটিংসে একত্রিত গোপনীয়তা নিয়ন্ত্রণ সহ Health Connect অ্যাক্সেস করতে পারে৷

ব্যবহারকারীরা Android 14 বা তার উচ্চতর সংস্করণে চলমান ডিভাইসগুলিতে একটি পৃথক অ্যাপ ডাউনলোড ছাড়াই Health Connect ব্যবহার শুরু করতে পারেন।
ব্যবহারকারীরা সিস্টেম সেটিংসের মাধ্যমে কোন অ্যাপগুলি তাদের স্বাস্থ্য এবং ফিটনেস ডেটা অ্যাক্সেস করতে পারে তা নিয়ন্ত্রণ করতে পারে।

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

আরও তথ্যের জন্য, স্বাস্থ্য সংযোগ ডকুমেন্টেশন এবং অ্যান্ড্রয়েড হেলথ-এ নতুন কী আছে ব্লগপোস্ট দেখুন।

OpenJDK ১৭টি আপডেট

অ্যান্ড্রয়েড 14 অ্যাপ এবং প্ল্যাটফর্ম ডেভেলপারদের জন্য লাইব্রেরি আপডেট এবং জাভা 17 ভাষা সমর্থন উভয় সহ সর্বশেষ OpenJDK LTS রিলিজের বৈশিষ্ট্যগুলির সাথে সারিবদ্ধ করার জন্য Android এর মূল লাইব্রেরিগুলিকে রিফ্রেশ করার কাজ চালিয়ে যাচ্ছে।

নিম্নলিখিত বৈশিষ্ট্য এবং উন্নতি অন্তর্ভুক্ত করা হয়েছে:

  • জাভা 17 সমর্থনে প্রায় 300টি java.base ক্লাস আপডেট করা হয়েছে।
  • টেক্সট ব্লক , যা জাভা প্রোগ্রামিং ভাষায় মাল্টি-লাইন স্ট্রিং লিটারেল প্রবর্তন করে।
  • instanceof-এর জন্য প্যাটার্ন ম্যাচিং , যা কোনো বস্তুকে কোনো অতিরিক্ত ভেরিয়েবল ছাড়াই একটি instanceof একটি নির্দিষ্ট ধরণ হিসেবে গণ্য করার অনুমতি দেয়।
  • সীলমোহর করা ক্লাস , যা আপনাকে কোন ক্লাস এবং ইন্টারফেসগুলিকে প্রসারিত বা প্রয়োগ করতে পারে তা সীমাবদ্ধ করতে দেয়।

গুগল প্লে সিস্টেম আপডেট (প্রজেক্ট মেইনলাইন) এর জন্য ধন্যবাদ, 600 মিলিয়নেরও বেশি ডিভাইস সর্বশেষতম অ্যান্ড্রয়েড রানটাইম (ART) আপডেট পেতে সক্ষম হয়েছে যাতে এই পরিবর্তনগুলি অন্তর্ভুক্ত রয়েছে। এটি আমাদের অঙ্গীকারের অংশ যাতে অ্যাপগুলিকে ডিভাইস জুড়ে আরও সামঞ্জস্যপূর্ণ, সুরক্ষিত পরিবেশ দেওয়া যায় এবং প্ল্যাটফর্ম রিলিজ ছাড়া ব্যবহারকারীদের কাছে নতুন বৈশিষ্ট্য এবং ক্ষমতা প্রদান করা যায়।

Java এবং OpenJDK হল ওরাকল এবং/অথবা এর সহযোগীদের ট্রেডমার্ক বা নিবন্ধিত ট্রেডমার্ক।

অ্যাপ স্টোরের জন্য উন্নতি

Android 14 引入了多个 PackageInstaller API,可帮助应用商店改善其用户体验。

下载之前请求批准安装

安装或更新应用可能需要用户批准。例如,当使用 REQUEST_INSTALL_PACKAGES 权限的安装程序尝试安装新应用时。在之前的 Android 版本中,只有在将 APK 写入安装会话并且提交会话后,应用商店才能请求用户批准。

从 Android 14 开始,requestUserPreapproval() 方法可让安装程序在提交安装会话之前请求用户批准。此项改进可让应用商店将任何 APK 的下载操作推迟到用户批准安装之后。此外,用户批准安装后,应用商店可以在后台下载并安装应用,而不会干扰用户。

承担未来更新的责任

借助 setRequestUpdateOwnership() 方法,安装程序可以向系统表明它打算负责将被安装的应用未来的更新。此 capability 可实现更新所有权强制执行,即仅允许更新所有者为应用安装自动更新。更新所有权强制执行有助于确保用户仅收到来自预期应用商店的更新。

任何其他安装程序(包括使用 INSTALL_PACKAGES 权限的安装程序)都必须获得用户的明确批准,才能安装更新。如果用户决定继续从其他来源安装更新,则会失去更新所有权。

在干扰较少的时段更新应用

应用商店通常希望避免更新正在使用的应用,因为这会导致应用正在运行的进程被终止,而这可能会中断用户正在执行的操作。

从 Android 14 开始,InstallConstraints API 让安装程序可以确保其应用更新在适当的时机进行。例如,应用商店可以调用 commitSessionAfterInstallConstraintsAreMet() 方法来确保仅在用户不再与相应应用互动时才进行更新。

无缝安装可选拆分

借助拆分 APK,应用的功能可以通过单独的 APK 文件提供,而不是以单体式 APK 的形式提供。借助拆分 APK,应用商店可以优化不同应用组件的提供。例如,应用商店可能会根据目标设备的属性进行优化。自在 API 级别 22 中引入以来,PackageInstaller API 一直支持拆分。

在 Android 14 中,setDontKillApp() 方法可让安装程序指明在安装新的拆分项时应用的运行进程不应终止。应用商店可以使用此功能,在用户使用应用时无缝安装应用的新功能。

অ্যাপ মেটাডেটা বান্ডেল

অ্যান্ড্রয়েড 14 থেকে শুরু করে, অ্যান্ড্রয়েড প্যাকেজ ইনস্টলার আপনাকে অ্যাপ মেটাডেটা নির্দিষ্ট করতে দেয়, যেমন ডেটা নিরাপত্তা অনুশীলন, অ্যাপ স্টোর পৃষ্ঠাগুলিতে অন্তর্ভুক্ত করার জন্য যেমন Google Play।

ব্যবহারকারীরা কখন ডিভাইসের স্ক্রিনশট নেয় তা শনাক্ত করুন

为了打造更加标准化的屏幕截图检测体验,Android 14 引入了可保护隐私的屏幕截图检测 API。借助此 API,应用可以按 activity 注册回调。如果用户在该 activity 可见时截取屏幕截图,系统会调用这些回调并通知用户。

ব্যবহারকারীর অভিজ্ঞতা

শেয়ারশিট কাস্টম অ্যাকশন এবং উন্নত র‍্যাঙ্কিং

অ্যান্ড্রয়েড 14 ব্যবহারকারীদের জন্য কাস্টম অ্যাপ অ্যাকশন এবং আরও তথ্যপূর্ণ পূর্বরূপ ফলাফল সমর্থন করতে সিস্টেম শেয়ারশীট আপডেট করে।

কাস্টম অ্যাকশন যোগ করুন

অ্যান্ড্রয়েড 14 এর সাথে, আপনার অ্যাপটি এটি যে সিস্টেম শেয়ারশীটে আহ্বান করে তাতে কাস্টম অ্যাকশন যোগ করতে পারে।

শেয়ারশীটে কাস্টম অ্যাকশনের স্ক্রিনশট।

সরাসরি শেয়ার লক্ষ্যের র‌্যাঙ্কিং উন্নত করুন

অ্যান্ড্রয়েড 14 ব্যবহারকারীর জন্য আরও সহায়ক ফলাফল প্রদানের জন্য সরাসরি শেয়ারের লক্ষ্যগুলির র‌্যাঙ্কিং নির্ধারণ করতে অ্যাপ থেকে আরও বেশি সংকেত ব্যবহার করে। র‍্যাঙ্কিংয়ের জন্য সবচেয়ে দরকারী সংকেত প্রদান করতে, আপনার সরাসরি শেয়ার লক্ষ্যগুলির র‌্যাঙ্কিং উন্নত করার জন্য নির্দেশিকা অনুসরণ করুন। যোগাযোগ অ্যাপগুলি বহির্গামী এবং আগত বার্তাগুলির জন্য শর্টকাট ব্যবহারেরও রিপোর্ট করতে পারে।

শেয়ারশীটে সরাসরি শেয়ার সারি, যেমন 1 দ্বারা দেখানো হয়েছে

প্রেডিক্টিভ ব্যাকের জন্য বিল্ট-ইন এবং কাস্টম অ্যানিমেশনের জন্য সমর্থন

ভিডিও: ভবিষ্যদ্বাণীমূলক ব্যাক অ্যানিমেশন

Android 13 একটি বিকাশকারী বিকল্পের পিছনে ভবিষ্যদ্বাণীমূলক ব্যাক-টু-হোম অ্যানিমেশন চালু করেছে। ডেভেলপার বিকল্প চালু থাকা সমর্থিত অ্যাপে ব্যবহার করা হলে, পিছনে সোয়াইপ করা একটি অ্যানিমেশন দেখায় যা নির্দেশ করে যে পিছনের অঙ্গভঙ্গি অ্যাপ থেকে হোম স্ক্রিনে ফিরে আসে।

অ্যান্ড্রয়েড 14-এ একাধিক উন্নতি এবং ভবিষ্যদ্বাণীমূলক পিছনের জন্য নতুন নির্দেশিকা রয়েছে:

এই অ্যান্ড্রয়েড 14 প্রিভিউ রিলিজের সাথে, প্রেডিকটিভ ব্যাকের সমস্ত বৈশিষ্ট্য একটি বিকাশকারী বিকল্পের পিছনে থাকে। আপনার অ্যাপ্লিকেশানটিকে পূর্বাভাসমূলক পিছনে স্থানান্তর করতে বিকাশকারী নির্দেশিকা দেখুন, সেইসাথে কাস্টম ইন-অ্যাপ ট্রানজিশন তৈরি করার জন্য বিকাশকারী নির্দেশিকা দেখুন৷

প্রতি অ্যাপে বড় স্ক্রিনের ডিভাইস প্রস্তুতকারক ওভাররাইড করে

প্রতি-অ্যাপ ওভাররাইডগুলি ডিভাইস নির্মাতাদের বড় স্ক্রিনের ডিভাইসে অ্যাপের আচরণ পরিবর্তন করতে সক্ষম করে। উদাহরণ স্বরূপ, FORCE_RESIZE_APP ওভাররাইড সিস্টেমকে ডিসপ্লে ডাইমেনশনের সাথে ফিট করার জন্য অ্যাপের আকার পরিবর্তন করার নির্দেশ দেয় (আকারের সামঞ্জস্য মোড এড়িয়ে যাওয়া) এমনকি যদি অ্যাপ ম্যানিফেস্টে resizeableActivity="false" সেট করা থাকে।

ওভাররাইডগুলি বড় স্ক্রিনে ব্যবহারকারীর অভিজ্ঞতা উন্নত করার উদ্দেশ্যে করা হয়েছে৷

নতুন ম্যানিফেস্ট বৈশিষ্ট্যগুলি আপনাকে আপনার অ্যাপের জন্য কিছু ডিভাইস প্রস্তুতকারক ওভাররাইড অক্ষম করতে সক্ষম করে৷

প্রতি অ্যাপে বড় স্ক্রিন ব্যবহারকারীর ওভাররাইড

প্রতি-অ্যাপ ওভাররাইড বড় স্ক্রিনের ডিভাইসে অ্যাপের আচরণ পরিবর্তন করে। উদাহরণস্বরূপ, OVERRIDE_MIN_ASPECT_RATIO_LARGE ডিভাইস নির্মাতা ওভাররাইড অ্যাপের কনফিগারেশন নির্বিশেষে অ্যাপের আকৃতির অনুপাত 16:9 এ সেট করে।

Android 14 QPR1 ব্যবহারকারীদের বড় স্ক্রিনের ডিভাইসে একটি নতুন সেটিংস মেনুর মাধ্যমে প্রতি-অ্যাপ ওভাররাইড প্রয়োগ করতে সক্ষম করে।

অ্যাপ স্ক্রিন শেয়ারিং

借助应用界面共享功能,用户可以在录制屏幕内容时共享应用窗口,而不是整个设备屏幕。

在应用屏幕共享模式下,状态栏、导航栏、通知和其他系统界面元素会从共享显示屏中排除。系统只会分享所选应用的内容。

应用屏幕共享功能可让用户运行多个应用,但将内容共享限制为单个应用,从而提高工作效率并保护隐私。

Pixel 8 Pro-তে Gboard-এ LLM-চালিত স্মার্ট রিপ্লাই

ডিসেম্বর ফিচার ড্রপ সহ Pixel 8 Pro ডিভাইসে, ডেভেলপাররা Google Tensor-এ চলমান অন-ডিভাইস লার্জ ল্যাঙ্গুয়েজ মডেল (LLMs) দ্বারা চালিত Gboard-এ উচ্চ মানের স্মার্ট উত্তর ব্যবহার করে দেখতে পারেন।

এই বৈশিষ্ট্যটি হোয়াটসঅ্যাপ, লাইন এবং KakaoTalk-এ US ইংরেজির জন্য সীমিত প্রিভিউ হিসাবে উপলব্ধ। আপনার কীবোর্ড হিসাবে Gboard সহ একটি Pixel 8 Pro ডিভাইস ব্যবহার করতে হবে।

এটি ব্যবহার করে দেখতে, প্রথমে সেটিংস > বিকাশকারী বিকল্প > AiCore সেটিংস > Aicore Persistent সক্ষম করুন এ বৈশিষ্ট্যটি সক্ষম করুন।

এরপর, ইনকামিং মেসেজের প্রতিক্রিয়ায় Gboard-এর সাজেশন স্ট্রিপে LLM-চালিত স্মার্ট রিপ্লাই দেখতে একটি সমর্থিত অ্যাপে একটি কথোপকথন খুলুন।

উচ্চ মানের স্মার্ট উত্তর প্রদান করতে Gboard অন-ডিভাইস LLM ব্যবহার করে।

গ্রাফিক্স

পাথগুলি অনুসন্ধানযোগ্য এবং ইন্টারপোলেটেবল

অ্যান্ড্রয়েডের Path এপিআই হল ভেক্টর গ্রাফিক্স তৈরি এবং রেন্ডার করার জন্য একটি শক্তিশালী এবং নমনীয় প্রক্রিয়া, একটি পাথ স্ট্রোক বা পূরণ করার ক্ষমতা, লাইন সেগমেন্ট বা চতুর্ভুজ বা ঘনবক্ররেখা থেকে একটি পথ তৈরি করা, আরও জটিল আকার পেতে বুলিয়ান অপারেশন সম্পাদন করা, বা সমস্ত এই একযোগে. একটি সীমাবদ্ধতা হল একটি পথ বস্তুতে আসলে কী আছে তা খুঁজে বের করার ক্ষমতা; বস্তুর অভ্যন্তরীণগুলি সৃষ্টির পরে কলারদের কাছে অস্বচ্ছ।

একটি Path তৈরি করতে, আপনি পাথ সেগমেন্ট যোগ করার জন্য moveTo() , lineTo() , এবং cubicTo() এর মতো পদ্ধতিগুলিকে কল করুন৷ কিন্তু সেগমেন্টগুলি কী তা জিজ্ঞাসা করার কোনও উপায় নেই, তাই আপনাকে সৃষ্টির সময় সেই তথ্যটি ধরে রাখতে হবে।

অ্যান্ড্রয়েড 14 থেকে শুরু করে, আপনি সেগুলির ভিতরে কী আছে তা খুঁজে পেতে পাথগুলি অনুসন্ধান করতে পারেন৷ প্রথমে, আপনাকে Path.getPathIterator API ব্যবহার করে একটি PathIterator অবজেক্ট পেতে হবে:

কোটলিন

val path = Path().apply {
    moveTo(1.0f, 1.0f)
    lineTo(2.0f, 2.0f)
    close()
}
val pathIterator = path.pathIterator

জাভা

Path path = new Path();
path.moveTo(1.0F, 1.0F);
path.lineTo(2.0F, 2.0F);
path.close();
PathIterator pathIterator = path.getPathIterator();

এর পরে, আপনি প্রতিটি সেগমেন্টের জন্য প্রয়োজনীয় সমস্ত ডেটা পুনরুদ্ধার করে একের পর এক সেগমেন্টের মাধ্যমে পুনরাবৃত্তি করতে PathIterator কল করতে পারেন। এই উদাহরণটি PathIterator.Segment অবজেক্ট ব্যবহার করে, যা আপনার জন্য ডেটা প্যাকেজ করে:

কোটলিন

for (segment in pathIterator) {
    println("segment: ${segment.verb}, ${segment.points}")
}

জাভা

while (pathIterator.hasNext()) {
    PathIterator.Segment segment = pathIterator.next();
    Log.i(LOG_TAG, "segment: " + segment.getVerb() + ", " + segment.getPoints());
}

PathIterator এর একটি নন-অ্যালোকেটিং সংস্করণ রয়েছে next() যেখানে আপনি পয়েন্ট ডেটা ধরে রাখতে একটি বাফারে পাস করতে পারেন।

Path ডেটা অনুসন্ধানের গুরুত্বপূর্ণ ব্যবহারের ক্ষেত্রে একটি হল ইন্টারপোলেশন। উদাহরণস্বরূপ, আপনি দুটি ভিন্ন পথের মধ্যে অ্যানিমেট (বা morph ) করতে চাইতে পারেন। সেই ব্যবহারের ক্ষেত্রে আরও সরল করার জন্য, Android 14-এ Path interpolate() পদ্ধতিও অন্তর্ভুক্ত রয়েছে। দুটি পাথের একই অভ্যন্তরীণ কাঠামো রয়েছে বলে ধরে নিলে, interpolate() পদ্ধতিটি সেই ইন্টারপোলেটেড ফলাফলের সাথে একটি নতুন Path তৈরি করে। এই উদাহরণটি এমন একটি পথ প্রদান করে যার আকৃতি অর্ধেক পথ (.5 এর রৈখিক ইন্টারপোলেশন) path এবং otherPath মধ্যে:

কোটলিন

val interpolatedResult = Path()
if (path.isInterpolatable(otherPath)) {
    path.interpolate(otherPath, .5f, interpolatedResult)
}

জাভা

Path interpolatedResult = new Path();
if (path.isInterpolatable(otherPath)) {
    path.interpolate(otherPath, 0.5F, interpolatedResult);
}

জেটপ্যাক গ্রাফিক্স-পাথ লাইব্রেরি অ্যান্ড্রয়েডের পূর্ববর্তী সংস্করণগুলির জন্যও অনুরূপ API সক্ষম করে।

ভার্টেক্স এবং ফ্র্যাগমেন্ট শেডার সহ কাস্টম মেশ

অ্যান্ড্রয়েড দীর্ঘকাল ধরে কাস্টম শেডিং সহ ত্রিভুজ মেশ অঙ্কনকে সমর্থন করেছে, তবে ইনপুট জাল বিন্যাসটি কয়েকটি পূর্বনির্ধারিত বৈশিষ্ট্য সংমিশ্রণে সীমাবদ্ধ রয়েছে। অ্যান্ড্রয়েড 14 কাস্টম মেশের জন্য সমর্থন যোগ করে, যেটিকে ত্রিভুজ বা ত্রিভুজ স্ট্রিপ হিসাবে সংজ্ঞায়িত করা যেতে পারে এবং ঐচ্ছিকভাবে সূচিবদ্ধ করা যেতে পারে। এই জালগুলি AGSL- এ লেখা কাস্টম বৈশিষ্ট্য , শীর্ষবিন্দু স্ট্রাইড, ভিন্নতা , এবং শীর্ষবিন্দু এবং খণ্ড শেডার দিয়ে নির্দিষ্ট করা হয়েছে।

ভার্টেক্স শেডার বিভিন্নতাকে সংজ্ঞায়িত করে, যেমন অবস্থান এবং রঙ, যখন ফ্র্যাগমেন্ট শেডার ঐচ্ছিকভাবে পিক্সেলের জন্য রঙকে সংজ্ঞায়িত করতে পারে, সাধারণত ভার্টেক্স শেডার দ্বারা সৃষ্ট ভিন্নতা ব্যবহার করে। যদি ফ্র্যাগমেন্ট শেডার দ্বারা রঙ প্রদান করা হয়, তাহলে এটি জাল আঁকার সময় নির্বাচিত ব্লেন্ড মোড ব্যবহার করে বর্তমান Paint রঙের সাথে মিশ্রিত করা হয়। অতিরিক্ত নমনীয়তার জন্য ইউনিফর্মগুলিকে খণ্ড এবং শীর্ষবিন্দুতে প্রেরণ করা যেতে পারে।

ক্যানভাসের জন্য হার্ডওয়্যার বাফার রেন্ডারার

协助使用 Android 的 Canvas API 通过 硬件加速至 HardwareBuffer、Android 14 引入了 HardwareBufferRenderer。如果您的用例涉及通过 SurfaceControl 与系统合成器通信以实现低延迟绘制,此 API 特别有用。