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

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

যোগ করা, পরিবর্তিত এবং সরানো API-এর বিস্তারিত তালিকার জন্য, API ডিফ রিপোর্ট পড়ুন। যোগ করা 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 billion people speak gendered languages: languages where grammatical categories—such as nouns, verbs, adjectives, and prepositions—inflect according to the gender of people and objects you talk to or about. Traditionally, many gendered languages use masculine grammatical gender as the default or generic gender.

Addressing users in the wrong grammatical gender, such as addressing women in masculine grammatical gender, can negatively impact their performance and attitude. In contrast, a UI with language that correctly reflects the user's grammatical gender can improve user engagement and provide a more personalized and natural-sounding user experience.

To help you build a user-centric UI for gendered languages, Android 14 introduces the Grammatical Inflection API, which lets you add support for grammatical gender without refactoring your app.

আঞ্চলিক পছন্দ

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

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

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

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

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

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

Starting in Android 14, the system supports font scaling up to 200%, providing low-vision users with additional accessibility options that align with Web Content Accessibility Guidelines (WCAG).

To prevent large text elements on screen from scaling too large, the system applies a nonlinear scaling curve. This scaling strategy means that large text doesn't scale at the same rate as smaller text. Nonlinear font scaling helps preserve the proportional hierarchy between elements of different sizes while mitigating issues with linear text scaling at high degrees (such as text being cut off or text that becomes harder to read due to an extremely large display sizes).

Test your app with nonlinear font scaling

Enable the maximum font size in a device's accessibility settings to test your app.

If you already use scaled pixels (sp) units to define text sizing, then these additional options and scaling improvements are applied automatically to the text in your app. However, you should still perform UI testing with the maximum font size enabled (200%) to ensure that your app applies the font sizes correctly and can accommodate larger font sizes without impacting usability.

To enable 200% font size, follow these steps:

  1. Open the Settings app and navigate to Accessibility > Display size and text.
  2. For the Font size option, tap the plus (+) icon until the maximum font size setting is enabled, as shown in the image that accompanies this section.

Use scaled pixel (sp) units for text-sizes

Remember to always specify text sizes in sp units. When your app uses sp units, Android can apply the user's preferred text size and scale it appropriately.

Don't use sp units for padding or define view heights assuming implicit padding: with nonlinear font scaling sp dimensions might not be proportional, so 4sp + 20sp might not equal 24sp.

Convert scaled pixel (sp) units

Use TypedValue.applyDimension() to convert from sp units to pixels, and use TypedValue.deriveDimension() to convert pixels to sp. These methods apply the appropriate nonlinear scaling curve automatically.

Avoid hardcoding equations using Configuration.fontScale or DisplayMetrics.scaledDensity. Because font scaling is nonlinear, the scaledDensity field is no longer accurate. The fontScale field should be used for informational purposes only because fonts are no longer scaled with a single scalar value.

Use sp units for lineHeight

Always define android:lineHeight using sp units instead of dp, so the line height scales along with your text. Otherwise, if your text is sp but your lineHeight is in dp or px, it doesn't scale and looks cramped. TextView automatically corrects the lineHeight so that your intended proportions are preserved, but only if both textSize and lineHeight are defined in sp units.

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

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

স্ট্যান্ডার্ড ডায়নামিক রেঞ্জ (এসডিআর) বনাম হাই ডায়নামিক রেঞ্জ (এইচডিআর) ছবির মানের একটি চিত্র।

Android 14 হাই ডায়নামিক রেঞ্জ (HDR) চিত্রগুলির জন্য সমর্থন যোগ করে যা একটি ফটো তোলার সময় সেন্সর থেকে আরও তথ্য ধরে রাখে, যা প্রাণবন্ত রঙ এবং বৃহত্তর বৈসাদৃশ্য সক্ষম করে। অ্যান্ড্রয়েড আল্ট্রা এইচডিআর ফরম্যাট ব্যবহার করে, যা JPEG ছবির সাথে সম্পূর্ণ পশ্চাৎপদ সামঞ্জস্যপূর্ণ, অ্যাপগুলিকে HDR চিত্রগুলির সাথে নির্বিঘ্নে আন্তঃঅপারেটিং করার অনুমতি দেয়, সেগুলিকে প্রয়োজন অনুসারে স্ট্যান্ডার্ড ডায়নামিক রেঞ্জে (SDR) প্রদর্শন করে৷

HDR-এ UI-তে এই ছবিগুলি রেন্ডার করা ফ্রেমওয়ার্ক দ্বারা স্বয়ংক্রিয়ভাবে সম্পন্ন হয় যখন আপনার অ্যাপটি তার কার্যকলাপ উইন্ডোর জন্য HDR UI ব্যবহার করতে বেছে নেয়, হয় একটি ম্যানিফেস্ট এন্ট্রির মাধ্যমে বা রানটাইমে Window.setColorMode() কল করে । আপনি সমর্থিত ডিভাইসগুলিতে সংকুচিত আল্ট্রা এইচডিআর স্থির চিত্রগুলিও ক্যাপচার করতে পারেন। সেন্সর থেকে আরো রং উদ্ধারের সাথে, পোস্টে সম্পাদনা আরও নমনীয় হতে পারে। আল্ট্রা এইচডিআর ইমেজের সাথে যুক্ত Gainmap OpenGL বা Vulkan ব্যবহার করে রেন্ডার করতে ব্যবহার করা যেতে পারে।

,
স্ট্যান্ডার্ড ডায়নামিক রেঞ্জ (এসডিআর) বনাম হাই ডায়নামিক রেঞ্জ (এইচডিআর) ছবির মানের একটি চিত্র।

Android 14 হাই ডায়নামিক রেঞ্জ (HDR) চিত্রগুলির জন্য সমর্থন যোগ করে যা একটি ফটো তোলার সময় সেন্সর থেকে আরও তথ্য ধরে রাখে, যা প্রাণবন্ত রঙ এবং বৃহত্তর বৈসাদৃশ্য সক্ষম করে। অ্যান্ড্রয়েড আল্ট্রা এইচডিআর ফরম্যাট ব্যবহার করে, যা JPEG ছবির সাথে সম্পূর্ণ পশ্চাৎপদ সামঞ্জস্যপূর্ণ, অ্যাপগুলিকে HDR চিত্রগুলির সাথে নির্বিঘ্নে আন্তঃঅপারেটিং করার অনুমতি দেয়, সেগুলিকে প্রয়োজন অনুসারে স্ট্যান্ডার্ড ডায়নামিক রেঞ্জে (SDR) প্রদর্শন করে৷

HDR-এ UI-তে এই ছবিগুলি রেন্ডার করা ফ্রেমওয়ার্ক দ্বারা স্বয়ংক্রিয়ভাবে সম্পন্ন হয় যখন আপনার অ্যাপটি তার কার্যকলাপ উইন্ডোর জন্য HDR UI ব্যবহার করতে বেছে নেয়, হয় একটি ম্যানিফেস্ট এন্ট্রির মাধ্যমে বা রানটাইমে Window.setColorMode() কল করে । আপনি সমর্থিত ডিভাইসগুলিতে সংকুচিত আল্ট্রা এইচডিআর স্থির চিত্রগুলিও ক্যাপচার করতে পারেন। সেন্সর থেকে আরো রং পুনরুদ্ধার করার সাথে, পোস্টে সম্পাদনা আরও নমনীয় হতে পারে। আল্ট্রা এইচডিআর ইমেজের সাথে যুক্ত 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 এ সেট করা হয়েছে। অনুরোধ ওভাররাইড নিয়ন্ত্রণ বাস্তবায়ন করে, আপডেট করা ক্যামেরা ব্যবহারকারীদের জুম নিয়ন্ত্রণ দেয় এমনকি অন্যান্য ক্যামেরা নিয়ন্ত্রণ প্রস্তুত হওয়ার আগেই।

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

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 17 আপডেট

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

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

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

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

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

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

অ্যান্ড্রয়েড 14 বেশ কয়েকটি PackageInstaller এপিআই প্রবর্তন করে যা অ্যাপ স্টোরগুলিকে তাদের ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে দেয়।

ডাউনলোড করার আগে ইনস্টল করার অনুমোদনের জন্য অনুরোধ করুন

একটি অ্যাপ ইনস্টল বা আপডেট করার জন্য ব্যবহারকারীর অনুমোদনের প্রয়োজন হতে পারে। উদাহরণস্বরূপ, যখন একটি ইনস্টলার REQUEST_INSTALL_PACKAGES অনুমতি ব্যবহার করে একটি নতুন অ্যাপ ইনস্টল করার চেষ্টা করে৷ পূর্ববর্তী অ্যান্ড্রয়েড সংস্করণগুলিতে, অ্যাপ স্টোরগুলি শুধুমাত্র ইনস্টল সেশনে APK লেখার পরে এবং সেশনটি প্রতিশ্রুতিবদ্ধ হওয়ার পরে ব্যবহারকারীর অনুমোদনের অনুরোধ করতে পারে৷

Android 14 দিয়ে শুরু করে, requestUserPreapproval() পদ্ধতিটি ইনস্টলারদের ইনস্টল সেশন করার আগে ব্যবহারকারীর অনুমোদনের অনুরোধ করতে দেয়। এই উন্নতিটি ব্যবহারকারীর দ্বারা ইনস্টলেশন অনুমোদন না হওয়া পর্যন্ত একটি অ্যাপ স্টোরকে যেকোনো APK ডাউনলোড করা স্থগিত করতে দেয়। অধিকন্তু, একবার একজন ব্যবহারকারী ইনস্টলেশন অনুমোদন করলে, অ্যাপ স্টোর ব্যবহারকারীকে বাধা না দিয়ে পটভূমিতে অ্যাপটি ডাউনলোড এবং ইনস্টল করতে পারে।

ভবিষ্যতের আপডেটের জন্য দায়িত্ব দাবি করুন

setRequestUpdateOwnership() পদ্ধতিটি একটি ইনস্টলারকে সিস্টেমকে নির্দেশ করতে দেয় যে এটি ইনস্টল করা একটি অ্যাপের ভবিষ্যতের আপডেটের জন্য দায়ী হতে চায়। এই ক্ষমতা আপডেট মালিকানা এনফোর্সমেন্টকে সক্ষম করে, যার মানে শুধুমাত্র আপডেট মালিককে অ্যাপে স্বয়ংক্রিয় আপডেট ইনস্টল করার অনুমতি দেওয়া হয়। আপডেট মালিকানা এনফোর্সমেন্ট নিশ্চিত করতে সাহায্য করে যে ব্যবহারকারীরা শুধুমাত্র প্রত্যাশিত অ্যাপ স্টোর থেকে আপডেট পান।

INSTALL_PACKAGES অনুমতি ব্যবহার করা সহ অন্য যেকোনো ইনস্টলারকে একটি আপডেট ইনস্টল করার জন্য স্পষ্ট ব্যবহারকারীর অনুমোদন পেতে হবে। যদি একজন ব্যবহারকারী অন্য উৎস থেকে আপডেট নিয়ে এগিয়ে যাওয়ার সিদ্ধান্ত নেন, তাহলে আপডেটের মালিকানা হারিয়ে যায়।

কম ব্যাঘাতমূলক সময়ে অ্যাপ আপডেট করুন

অ্যাপ স্টোরগুলি সাধারণত সক্রিয়ভাবে ব্যবহার করা একটি অ্যাপ আপডেট করা এড়াতে চায় কারণ এটি অ্যাপের চলমান প্রক্রিয়াগুলিকে হত্যার দিকে নিয়ে যায়, যা ব্যবহারকারী যা করছিল তা সম্ভাব্যভাবে বাধা দেয়।

Android 14 দিয়ে শুরু করে, InstallConstraints API ইনস্টলারদের তাদের অ্যাপ আপডেটগুলি একটি উপযুক্ত মুহূর্তে ঘটে তা নিশ্চিত করার একটি উপায় দেয়। উদাহরণ স্বরূপ, একটি অ্যাপ স্টোর commitSessionAfterInstallConstraintsAreMet() পদ্ধতিতে কল করতে পারে যাতে নিশ্চিত করা যায় যে একটি আপডেট শুধুমাত্র তখনই প্রতিশ্রুতিবদ্ধ যখন ব্যবহারকারী আর প্রশ্নযুক্ত অ্যাপের সাথে ইন্টারঅ্যাক্ট করছেন না।

নির্বিঘ্নে ঐচ্ছিক বিভাজন ইনস্টল করুন

বিভক্ত APK-এর সাহায্যে, কোনো অ্যাপের বৈশিষ্ট্যগুলিকে একচেটিয়া APK না করে আলাদা APK ফাইলে বিতরণ করা যেতে পারে। স্প্লিট APK অ্যাপ স্টোরগুলিকে বিভিন্ন অ্যাপের উপাদানের ডেলিভারি অপ্টিমাইজ করার অনুমতি দেয়। উদাহরণস্বরূপ, অ্যাপ স্টোরগুলি লক্ষ্য ডিভাইসের বৈশিষ্ট্যের উপর ভিত্তি করে অপ্টিমাইজ করতে পারে। PackageInstaller API API স্তর 22-এ প্রবর্তনের পর থেকে বিভাজন সমর্থন করেছে।

Android 14-এ, setDontKillApp() পদ্ধতিটি একটি ইনস্টলারকে ইঙ্গিত করতে দেয় যে নতুন স্প্লিটগুলি ইনস্টল করার সময় অ্যাপের চলমান প্রক্রিয়াগুলিকে হত্যা করা উচিত নয়। অ্যাপ স্টোরগুলি ব্যবহারকারী অ্যাপটি ব্যবহার করার সময় একটি অ্যাপের নতুন বৈশিষ্ট্যগুলি নির্বিঘ্নে ইনস্টল করতে এই বৈশিষ্ট্যটি ব্যবহার করতে পারে।

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

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

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

To create a more standardized experience for detecting screenshots, Android 14 introduces a privacy-preserving screenshot detection API. This API lets apps register callbacks on a per-activity basis. These callbacks are invoked, and the user is notified, when the user takes a screenshot while that activity is visible.

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

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

Android 14 updates the system sharesheet to support custom app actions and more informative preview results for users.

Add custom actions

With Android 14, your app can add custom actions to the system sharesheet it invokes.

Screenshot of custom actions on the sharesheet.

Improve ranking of Direct Share targets

Android 14 uses more signals from apps to determine the ranking of the direct share targets to provide more helpful results for the user. To provide the most useful signal for ranking, follow the guidance for improving rankings of your Direct Share targets. Communication apps can also report shortcut usage for outgoing and incoming messages.

Direct Share row in the sharesheet, as shown by 1

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

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

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

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

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

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

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

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

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

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

Per-app overrides change the behavior of apps on large screen devices. For example, the OVERRIDE_MIN_ASPECT_RATIO_LARGE device manufacturer override sets the app aspect ratio to 16:9 regardless of the app's configuration.

Android 14 QPR1 enables users to apply per‑app overrides by means of a new settings menu on large screen devices.

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

অ্যাপ স্ক্রিন শেয়ারিং ব্যবহারকারীদের স্ক্রিন সামগ্রী রেকর্ডিংয়ের সময় পুরো ডিভাইস স্ক্রীনের পরিবর্তে একটি অ্যাপ উইন্ডো শেয়ার করতে সক্ষম করে।

অ্যাপ স্ক্রিন ভাগ করে নেওয়ার সাথে, স্ট্যাটাস বার, নেভিগেশন বার, বিজ্ঞপ্তি এবং অন্যান্য সিস্টেম UI উপাদানগুলি ভাগ করা ডিসপ্লে থেকে বাদ দেওয়া হয়। শুধুমাত্র নির্বাচিত অ্যাপের বিষয়বস্তু শেয়ার করা হয়।

অ্যাপ স্ক্রিন শেয়ারিং ব্যবহারকারীদের একাধিক অ্যাপ চালাতে সক্ষম করার মাধ্যমে উৎপাদনশীলতা এবং গোপনীয়তা উন্নত করে কিন্তু কন্টেন্ট শেয়ারিংকে একটি অ্যাপে সীমিত করে।

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 ব্যবহার করে।

গ্রাফিক্স

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

Android's Path API is a powerful and flexible mechanism for creating and rendering vector graphics, with the ability to stroke or fill a path, construct a path from line segments or quadratic or cubic curves, perform boolean operations to get even more complex shapes, or all of these simultaneously. One limitation is the ability to find out what is actually in a Path object; the internals of the object are opaque to callers after creation.

To create a Path, you call methods such as moveTo(), lineTo(), and cubicTo() to add path segments. But there has been no way to ask that path what the segments are, so you must retain that information at creation time.

Starting in Android 14, you can query paths to find out what's inside of them. First, you need to get a PathIterator object using the Path.getPathIterator API:

Kotlin

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

Java

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

Next, you can call PathIterator to iterate through the segments one by one, retrieving all of the necessary data for each segment. This example uses PathIterator.Segment objects, which packages up the data for you:

Kotlin

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

Java

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

PathIterator also has a non-allocating version of next() where you can pass in a buffer to hold the point data.

One of the important use cases of querying Path data is interpolation. For example, you might want to animate (or morph) between two different paths. To further simplify that use case, Android 14 also includes the interpolate() method on Path. Assuming the two paths have the same internal structure, the interpolate() method creates a new Path with that interpolated result. This example returns a path whose shape is halfway (a linear interpolation of .5) between path and otherPath:

Kotlin

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

Java

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

The Jetpack graphics-path library enables similar APIs for earlier versions of Android as well.

শীর্ষবিন্দু এবং খণ্ড শেডার সহ কাস্টম মেশ

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

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

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

HardwareBuffer হার্ডওয়্যার ত্বরণের সাথে আঁকতে অ্যান্ড্রয়েডের Canvas এপিআই ব্যবহারে সহায়তা করার জন্য, Android 14 HardwareBufferRenderer প্রবর্তন করেছে। এই APIটি বিশেষভাবে উপযোগী হয় যখন আপনার ব্যবহারের ক্ষেত্রে SurfaceControl মাধ্যমে সিস্টেম কম্পোজিটরের সাথে কম-লেটেন্সি অঙ্কনের জন্য যোগাযোগ জড়িত থাকে।