Android 10 বৈশিষ্ট্য এবং API

অ্যান্ড্রয়েড 10 ব্যবহারকারী এবং বিকাশকারীদের জন্য দুর্দান্ত বৈশিষ্ট্য এবং ক্ষমতা উপস্থাপন করে। এই দস্তাবেজটি ডেভেলপারদের জন্য কী উপলব্ধ তা হাইলাইট করে৷

এপিআই সম্পর্কে জানতে, এপিআই ডিফ রিপোর্ট পড়ুন বা অ্যান্ড্রয়েড এপিআই রেফারেন্স দেখুন — এপিআইগুলি দেখুন যেগুলি "এপিআই লেভেল 29-এ যোগ করা হয়েছে"। এছাড়াও প্ল্যাটফর্ম পরিবর্তনগুলি আপনার অ্যাপগুলিকে প্রভাবিত করতে পারে এমন অঞ্চলগুলি সম্পর্কে জানতে Android 10 আচরণের পরিবর্তনগুলি ( এপিআই লেভেল 29 এবং সমস্ত অ্যাপ্লিকেশানগুলিকে লক্ষ্য করে ) এবং সেইসাথে গোপনীয়তার পরিবর্তনগুলি পরীক্ষা করতে ভুলবেন না৷

নিরাপত্তা বৃদ্ধি

অ্যান্ড্রয়েড 10 বেশ কয়েকটি সুরক্ষা বৈশিষ্ট্য প্রবর্তন করে, যা নিম্নলিখিত বিভাগগুলি সংক্ষিপ্ত করে।

উন্নত বায়োমেট্রিক প্রমাণীকরণ ডায়ালগ

অ্যান্ড্রয়েড 10 বায়োমেট্রিক প্রমাণীকরণ সমর্থনে নিম্নলিখিত উন্নতিগুলি প্রবর্তন করে:

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

সরাসরি APK থেকে এমবেড করা DEX কোড চালান

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

আরও তথ্যের জন্য, সরাসরি APK থেকে এম্বেড করা DEX কোড চালান দেখুন।

TLS 1.3 সমর্থন

Android 10 TLS 1.3 এর জন্য সমর্থন যোগ করে। TLS 1.3 হল TLS স্ট্যান্ডার্ডের একটি প্রধান সংশোধন যাতে কর্মক্ষমতা সুবিধা এবং উন্নত নিরাপত্তা অন্তর্ভুক্ত। আমাদের বেঞ্চমার্কগুলি নির্দেশ করে যে নিরাপদ সংযোগগুলি TLS 1.2 এর তুলনায় TLS 1.3 এর সাথে 40% দ্রুত স্থাপন করা যেতে পারে।

আমাদের TLS 1.3 বাস্তবায়ন সম্পর্কে আরও বিশদ বিবরণের জন্য, সমস্ত অ্যাপ পৃষ্ঠার আচরণ পরিবর্তনের মধ্যে TLS বিভাগটি দেখুন।

পাবলিক কনস্ক্রিপ্ট API

অ্যান্ড্রয়েড 10 অনুসারে, কনস্ক্রিপ্ট সুরক্ষা প্রদানকারীতে TLS কার্যকারিতার জন্য একটি সর্বজনীন API অন্তর্ভুক্ত রয়েছে।

android.net.ssl ​​এর অধীনে ক্লাসের সংগ্রহে কার্যকারিতা অ্যাক্সেস করার জন্য স্ট্যাটিক পদ্ধতি রয়েছে যা জেনেরিক javax.net.ssl ​​API থেকে পাওয়া যায় না। এই ক্লাসগুলির নামগুলি সংশ্লিষ্ট javax.net.ssl ​​ক্লাসের বহুবচন হিসাবে অনুমান করা যেতে পারে। উদাহরণস্বরূপ, কোড যা javax.net.ssl.SSLSocket এর দৃষ্টান্তের উপর কাজ করে তার পরিবর্তে SSLSockets থেকে পদ্ধতি ব্যবহার করতে পারে।

সংযোগ বৈশিষ্ট্য

অ্যান্ড্রয়েড 10-এ নেটওয়ার্কিং এবং কানেক্টিভিটি সম্পর্কিত বেশ কিছু উন্নতি রয়েছে।

Wi-Fi নেটওয়ার্ক সংযোগ API

Android 10 পিয়ার-টু-পিয়ার সংযোগের জন্য সমর্থন যোগ করে। এই বৈশিষ্ট্যটি আপনার অ্যাপটিকে ব্যবহারকারীকে অনুরোধ করা নেটওয়ার্কের বৈশিষ্ট্যগুলি বর্ণনা করতে WifiNetworkSpecifier ব্যবহার করে ডিভাইসটির সাথে সংযুক্ত অ্যাক্সেস পয়েন্টটি পরিবর্তন করতে অনুরোধ করতে সক্ষম করে৷ পিয়ার-টু-পিয়ার সংযোগটি অ-নেটওয়ার্ক-প্রদানের উদ্দেশ্যে ব্যবহার করা হয়, যেমন Chromecast এবং Google Home হার্ডওয়্যারের মতো গৌণ ডিভাইসগুলির জন্য বুটস্ট্র্যাপিং কনফিগারেশন।

আরও তথ্যের জন্য, পিয়ার-টু-পিয়ার সংযোগের জন্য Wi-Fi নেটওয়ার্ক অনুরোধ API দেখুন।

Wi-Fi নেটওয়ার্ক সাজেশন API

অ্যান্ড্রয়েড 10 ব্যবহারকারীকে একটি Wi-Fi অ্যাক্সেস পয়েন্টে সংযোগ করতে অনুরোধ করার জন্য আপনার অ্যাপের জন্য সমর্থন যোগ করে। কোন নেটওয়ার্কে সংযোগ করতে হবে তার জন্য আপনি পরামর্শ সরবরাহ করতে পারেন৷ প্ল্যাটফর্মটি শেষ পর্যন্ত আপনার এবং অন্যান্য অ্যাপের ইনপুটের উপর ভিত্তি করে কোন অ্যাক্সেস পয়েন্টটি গ্রহণ করবে তা বেছে নেবে।

এই বৈশিষ্ট্য সম্পর্কে আরও তথ্যের জন্য, Wi-Fi সাজেস্ট দেখুন।

Wi-Fi উচ্চ-পারফরম্যান্স এবং কম লেটেন্সি মোডের উন্নতি

অ্যান্ড্রয়েড 10 আপনাকে লেটেন্সি কমাতে অন্তর্নিহিত মডেমে একটি ইঙ্গিত প্রদান করতে দেয়।

Android 10 কার্যকরভাবে উচ্চ-পারফরম্যান্স মোড এবং লো-লেটেন্সি মোড সমর্থন করতে Wi-Fi লক API প্রসারিত করে। উচ্চ-পারফরম্যান্স এবং কম লেটেন্সি মোডের জন্য Wi-Fi পাওয়ার সেভ অক্ষম করা হয়েছে, এবং মডেম সমর্থনের উপর নির্ভর করে আরও লেটেন্সি অপ্টিমাইজেশান কম লেটেন্সি মোডে সক্ষম করা যেতে পারে।

লো-লেটেন্সি মোড শুধুমাত্র তখনই সক্ষম হয় যখন লকটি অর্জনকারী অ্যাপ্লিকেশনটি ফোরগ্রাউন্ডে চলছে এবং স্ক্রীন চালু থাকে। লো-লেটেন্সি মোড বিশেষ করে রিয়েল-টাইম মোবাইল গেমিং অ্যাপ্লিকেশনের জন্য সহায়ক।

DNS সমাধানকারীতে বিশেষায়িত লুকআপ

অ্যান্ড্রয়েড 10 ক্লিয়ারটেক্সট লুকআপ এবং ডিএনএস-ওভার-টিএলএস মোড উভয় ব্যবহার করে বিশেষায়িত ডিএনএস লুকআপের জন্য স্থানীয় সমর্থন যোগ করে। পূর্বে, প্ল্যাটফর্ম DNS সমাধানকারী শুধুমাত্র A এবং AAAA রেকর্ডগুলিকে সমর্থন করত, যা শুধুমাত্র একটি নামের সাথে যুক্ত IP ঠিকানাগুলি সন্ধান করার অনুমতি দেয়, কিন্তু অন্য কোনো রেকর্ডের ধরন সমর্থন করে না। DnsResolver API জেনেরিক, অ্যাসিঙ্ক্রোনাস রেজোলিউশন প্রদান করে, যা আপনাকে SRV , NAPTR এবং অন্যান্য রেকর্ডের ধরন দেখতে সক্ষম করে। মনে রাখবেন যে প্রতিক্রিয়া পার্সিং সম্পাদন করার জন্য অ্যাপে ছেড়ে দেওয়া হয়েছে।

NDK-ভিত্তিক অ্যাপগুলির জন্য, android_res_nsend দেখুন।

Wi-Fi ইজি কানেক্ট

অ্যান্ড্রয়েড 10 আপনাকে পিয়ার ডিভাইসে ওয়াই-ফাই শংসাপত্র সরবরাহ করতে ইজি কানেক্ট ব্যবহার করতে সক্ষম করে, WPS এর প্রতিস্থাপন হিসাবে যা অবমূল্যায়িত হয়েছে। অ্যাপ্লিকেশানগুলি ACTION_PROCESS_WIFI_EASY_CONNECT_URI উদ্দেশ্য ব্যবহার করে তাদের সেটআপ এবং প্রভিশনিং ফ্লোতে ইজি কানেক্টকে একীভূত করতে পারে৷

এই বৈশিষ্ট্য সম্পর্কে আরও তথ্যের জন্য, Wi-Fi Easy Connect দেখুন।

Wi-Fi সরাসরি সংযোগ API

WifiP2pConfig এবং WifiP2pManager API ক্লাসে Android 10-এ আপডেট রয়েছে যাতে পূর্বনির্ধারিত তথ্য ব্যবহার করে Wi-Fi ডাইরেক্টে দ্রুত সংযোগ স্থাপনের ক্ষমতা সমর্থন করে। এই তথ্যটি একটি পার্শ্ব চ্যানেলের মাধ্যমে শেয়ার করা হয়, যেমন ব্লুটুথ বা NFC৷

নিম্নলিখিত কোড নমুনা দেখায় কিভাবে পূর্বনির্ধারিত তথ্য ব্যবহার করে একটি গ্রুপ তৈরি করতে হয়:

কোটলিন

val manager = getSystemService(Context.WIFI_P2P_SERVICE) as WifiP2pManager
val channel = manager.initialize(this, mainLooper, null)

// prefer 5G band for this group
val config = WifiP2pConfig.Builder()
    .setNetworkName("networkName")
    .setPassphrase("passphrase")
    .enablePersistentMode(false)
    .setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ)
    .build()

// create a non-persistent group on 5GHz
manager.createGroup(channel, config, null)

জাভা

WifiP2pManager manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
Channel channel = manager.initialize(this, getMainLooper(), null);

// prefer 5G band for this group
WifiP2pConfig config = new WifiP2pConfig.Builder()
.setNetworkName("networkName")
.setPassphrase("passphrase")
.enablePersistentMode(false)
.setGroupOperatingBand(WifiP2pConfig.GROUP_OWNER_BAND_5GHZ)
.build();

// create a non-persistent group on 5GHz
manager.createGroup(channel, config, null);

শংসাপত্র ব্যবহার করে একটি গ্রুপে যোগ দিতে, নিম্নলিখিত দিয়ে manager.createGroup() প্রতিস্থাপন করুন:

কোটলিন

manager.connect(channel, config, null)

জাভা

manager.connect(channel, config, null);

ব্লুটুথ LE কানেকশন ওরিয়েন্টেড চ্যানেল (CoC)

Android 10 আপনার অ্যাপকে দুটি BLE ডিভাইসের মধ্যে বড় ডেটা স্ট্রিম স্থানান্তর করতে BLE CoC সংযোগ ব্যবহার করতে সক্ষম করে। এই ইন্টারফেসটি বাস্তবায়নকে সহজ করার জন্য ব্লুটুথ এবং কানেক্টিভিটি মেকানিক্সকে বিমূর্ত করে।

টেলিফোনি বৈশিষ্ট্য

অ্যান্ড্রয়েড 10 টেলিফোনি সম্পর্কিত বেশ কয়েকটি উন্নতি অন্তর্ভুক্ত করে।

কল মানের উন্নতি

অ্যান্ড্রয়েড 10 বৈশিষ্ট্যটিকে সমর্থন করে এমন ডিভাইসগুলিতে নেটওয়ার্ক থেকে এবং নেটওয়ার্কের গুণমান সহ চলমান IP মাল্টিমিডিয়া সাবসিস্টেম (IMS) কলগুলির গুণমান সম্পর্কে তথ্য সংগ্রহ করার ক্ষমতা যুক্ত করে৷

কল স্ক্রীনিং এবং কলার আইডি

অ্যান্ড্রয়েড 10 আপনার অ্যাপকে সম্ভাব্য স্প্যাম কল হিসাবে ব্যবহারকারীর ঠিকানা বইতে না থাকা কলগুলি সনাক্ত করার এবং ব্যবহারকারীর পক্ষ থেকে নীরবে স্প্যাম কলগুলি প্রত্যাখ্যান করার একটি উপায় সরবরাহ করে। এই অবরুদ্ধ কল সম্পর্কে তথ্য কল লগে ব্লক করা কল হিসাবে লগ করা হয় যাতে ব্যবহারকারীরা কল মিস করলে তাদের আরও স্বচ্ছতা প্রদান করে। এই API-এর ব্যবহার কল স্ক্রীনিং এবং কলার আইডি কার্যকারিতা প্রদানের জন্য ব্যবহারকারীর কাছ থেকে READ_CALL_LOG অনুমতি পাওয়ার প্রয়োজনীয়তা দূর করে।

কল পুনঃনির্দেশ পরিষেবা API

Android 10 কীভাবে কল ইন্টেন্টগুলি পরিচালনা করা হয় তা পরিবর্তন করে। NEW_OUTGOING_CALL সম্প্রচারটি বাতিল করা হয়েছে এবং CallRedirectionService API দিয়ে প্রতিস্থাপিত হয়েছে৷ CallRedirectionService API আপনাকে Android প্ল্যাটফর্মের দ্বারা করা বহির্গামী কলগুলি সংশোধন করার জন্য ইন্টারফেস প্রদান করে। উদাহরণস্বরূপ, তৃতীয় পক্ষের অ্যাপগুলি কলগুলি বাতিল করতে পারে এবং সেগুলিকে VoIP-এর মাধ্যমে পুনরায় রুট করতে পারে৷

বাহ্যিক সঞ্চয়স্থানে ফাইল তৈরির উন্নতি

স্কোপড স্টোরেজ প্রবর্তন করার পাশাপাশি, Android 10 বাহ্যিক স্টোরেজ সম্পর্কিত নিম্নলিখিত ক্ষমতাগুলি যোগ করে:

  • আপনি IS_PENDING পতাকাটি ব্যবহার করতে পারেন আপনার অ্যাপটিকে একটি মিডিয়া ফাইলে এক্সক্লুসিভ অ্যাক্সেস দিতে যেমন এটি ডিস্কে লেখা আছে৷
  • আপনি যদি একটি নির্দিষ্ট অবস্থান সম্পর্কে সচেতন হন যেখানে ফাইলগুলি সংরক্ষণ করা উচিত, আপনি সদ্য-লিখিত ফাইলগুলি কোথায় সংরক্ষণ করবেন তার জন্য সিস্টেমটিকে একটি ইঙ্গিত প্রদান করতে পারেন।
  • প্রতিটি বাহ্যিক স্টোরেজ ডিভাইসের একটি অনন্য ভলিউম নাম রয়েছে।

মিডিয়া এবং গ্রাফিক্স

অ্যান্ড্রয়েড 10 নিম্নলিখিত নতুন মিডিয়া এবং গ্রাফিক্স বৈশিষ্ট্য এবং APIগুলি প্রবর্তন করে:

অডিও ইনপুট শেয়ার করা হচ্ছে

অ্যান্ড্রয়েড 10 দুটি অ্যাপের জন্য একই সাথে অডিও ইনপুট শেয়ার করার ক্ষমতা যোগ করে। সম্পূর্ণ তথ্যের জন্য, শেয়ারিং অডিও ইনপুট দেখুন।

অডিও প্লেব্যাক ক্যাপচার

Android 10 একটি অ্যাপকে অন্য অ্যাপ থেকে অডিও প্লেব্যাক ক্যাপচার করার ক্ষমতা দেয়। সম্পূর্ণ তথ্যের জন্য, প্লেব্যাক ক্যাপচার দেখুন।

মিডিয়াস্টাইল বিজ্ঞপ্তিতে সিকবার

Android 10 দিয়ে শুরু করে, MediaStyle বিজ্ঞপ্তিগুলি একটি সিকবার প্রদর্শন করে। সিকবারটি PlaybackState.getPosition() থেকে প্লেব্যাকের অগ্রগতি দেখায় এবং কিছু ক্ষেত্রে সিকবারটি প্লেয়িং প্রোগ্রামে একটি অবস্থান খোঁজার জন্য ব্যবহার করা যেতে পারে। সিকবার চেহারা এবং আচরণ এই নিয়ম দ্বারা নিয়ন্ত্রিত হয়:

  • একটি সক্রিয় MediaSession থাকলে এবং এর সময়কাল ( MediaMetadata.METADATA_KEY_DURATION দ্বারা নির্দিষ্ট) থাকলে শূন্যের চেয়ে বেশি হলে সিকবারটি উপস্থিত হয়। এর মানে হল লাইভস্ট্রিম এবং রেডিও সম্প্রচারের মতো অনির্দিষ্ট স্ট্রিমগুলির জন্য বারটি উপস্থিত হয় না৷
  • সেশনটি ACTION_SEEK_TO প্রয়োগ করলে ব্যবহারকারী প্লেব্যাক অবস্থান নিয়ন্ত্রণ করতে সিকবার টেনে আনতে পারে।

নেটিভ MIDI API

অ্যান্ড্রয়েড নেটিভ MIDI API (Amidi) অ্যাপ্লিকেশন ডেভেলপারদের তাদের C/C++ অডিও/কন্ট্রোল লজিকের সাথে আরও ঘনিষ্ঠভাবে সংহত করে এবং JNI-এর প্রয়োজনীয়তা কমিয়ে, C/C++ কোড সহ MIDI ডেটা পাঠানো এবং গ্রহণ করার ক্ষমতা দেয়।

আরও তথ্যের জন্য, Android Native MIDI API দেখুন।

MediaCodecInfo উন্নতি

অ্যান্ড্রয়েড 10 MediaCodecInfo ইনফোতে পদ্ধতি যুক্ত করে যা একটি কোডেক সম্পর্কে আরও তথ্য প্রকাশ করে।

আরও তথ্যের জন্য, মিডিয়া কোডেক দেখুন।

তাপীয় API

যখন ডিভাইসগুলি খুব গরম হয়ে যায়, তখন তারা CPU এবং/অথবা GPU থ্রোটল করতে পারে এবং এটি অপ্রত্যাশিত উপায়ে অ্যাপ এবং গেমগুলিকে প্রভাবিত করতে পারে। জটিল গ্রাফিক্স, ভারী গণনা বা টেকসই নেটওয়ার্ক অ্যাক্টিভিটি ব্যবহার করা অ্যাপগুলি সমস্যায় পড়ার সম্ভাবনা বেশি, এবং সেগুলি চিপসেট এবং কোর ফ্রিকোয়েন্সি, ইন্টিগ্রেশনের মাত্রা এবং ডিভাইস প্যাকেজিং এবং ফর্ম ফ্যাক্টরের উপর ভিত্তি করে ডিভাইস জুড়ে পরিবর্তিত হতে পারে।

অ্যান্ড্রয়েড 10-এ, অ্যাপ এবং গেমগুলি ডিভাইসে পরিবর্তনগুলি নিরীক্ষণ করতে একটি তাপীয় API ব্যবহার করতে পারে এবং স্বাভাবিক তাপমাত্রা পুনরুদ্ধার করতে কম পাওয়ার ব্যবহার বজায় রাখার জন্য পদক্ষেপ নিতে পারে। অ্যাপ্লিকেশানগুলি পাওয়ারম্যানেজারে একজন শ্রোতাকে নিবন্ধন করে , যার মাধ্যমে সিস্টেমটি হালকা এবং মাঝারি থেকে গুরুতর, জটিল, জরুরী এবং শাটডাউন পর্যন্ত চলমান তাপীয় অবস্থার রিপোর্ট করে৷

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

থার্মাল API-এর জন্য একটি নতুন ডিভাইস HAL স্তর প্রয়োজন—এটি বর্তমানে Android 10 চালিত Pixel ডিভাইসগুলিতে সমর্থিত এবং আমরা যত তাড়াতাড়ি সম্ভব ইকোসিস্টেমে বিস্তৃত সমর্থন আনতে আমাদের ডিভাইস প্রস্তুতকারক অংশীদারদের সাথে কাজ করছি।

ক্যামেরা এবং ছবি

অ্যান্ড্রয়েড 10 নিম্নলিখিত নতুন ক্যামেরা- এবং চিত্র-সম্পর্কিত বৈশিষ্ট্যগুলি প্রবর্তন করে:

একরঙা ক্যামেরা সমর্থন

অ্যান্ড্রয়েড 9 (এপিআই লেভেল 28) প্রথম একরঙা ক্যামেরা ক্ষমতা চালু করেছে। অ্যান্ড্রয়েড 10 মনোক্রোম ক্যামেরা সমর্থনে বেশ কয়েকটি বর্ধন যোগ করে:

  • মেমরি দক্ষতা উন্নত করতে Y8 স্ট্রিম ফর্ম্যাট সমর্থন।
  • একরঙা কাঁচা DNG ক্যাপচারের জন্য সমর্থন।
  • নিয়মিত মনোক্রোম ক্যামেরা এবং কাছাকাছি ইনফ্রারেড ক্যামেরার মধ্যে পার্থক্য করার জন্য MONO এবং NIR CFA গণনার প্রবর্তন।

আপনি একটি নেটিভ একরঙা ছবি ক্যাপচার করতে এই বৈশিষ্ট্যটি ব্যবহার করতে পারেন৷ একটি যৌক্তিক মাল্টি-ক্যামেরা ডিভাইস একটি মনোক্রোম ক্যামেরাকে একটি ফিজিক্যাল সাব-ক্যামেরা হিসেবে ব্যবহার করতে পারে যাতে কম আলোর ছবির গুণমান ভালো হয়।

ডায়নামিক ডেপথ ফরম্যাট

অ্যান্ড্রয়েড 10 থেকে শুরু করে, ডায়নামিক ডেপথ ফরম্যাট (ডিডিএফ) নামে একটি নতুন স্কিমা ব্যবহার করে ক্যামেরাগুলি একটি পৃথক ফাইলে একটি চিত্রের জন্য গভীরতার ডেটা সংরক্ষণ করতে পারে। অ্যাপগুলি JPG ইমেজ এবং এর গভীরতার মেটাডেটা উভয়ের জন্যই অনুরোধ করতে পারে, সেই তথ্যটি ব্যবহার করে পোস্ট-প্রসেসিং-এ মূল ইমেজ ডেটা পরিবর্তন না করেই যে কোনও অস্পষ্টতা প্রয়োগ করতে।

এই বিন্যাসের স্পেসিফিকেশন পড়তে, ডায়নামিক ডেপথ ফরম্যাট দেখুন।

উচ্চ দক্ষতা ইমেজ ফাইল বিন্যাস

উচ্চ দক্ষতা ইমেজ ফাইল (HEIF) ফরম্যাট হল একটি স্ট্যান্ডার্ড ইমেজ এবং ভিডিও ফরম্যাট যা অন্যান্য ফাইল ফরম্যাটের তুলনায় উচ্চ মানের এনকোডিং এবং ছোট ফাইল সাইজ প্রবর্তন করে।

ফাইল ফরম্যাট সম্পর্কে আরও তথ্যের জন্য, HEIC দেখুন।

মাল্টি ক্যামেরার উন্নতি

Android 10 একটি একক লজিক্যাল ক্যামেরায় একাধিক ক্যামেরার ফিউজিং উন্নত করে, এটি Android 9 (API লেভেল 28) এ প্রবর্তিত একটি বৈশিষ্ট্য। নিম্নলিখিতগুলি Camera2 API এ যোগ করা হয়েছে:

  • isSessionConfigurationSupported(SessionConfiguration sessionConfig) — পাস করা সেশন কনফিগারেশনটি ক্যামেরা ক্যাপচার সেশন তৈরি করতে ব্যবহার করা যেতে পারে কিনা তা জানতে সক্ষম করে।

  • LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID —আপনাকে একটি লজিক্যাল ক্যামেরা ডিভাইসের সমর্থনকারী সক্রিয় ফিজিক্যাল ক্যামেরার আইডি নির্ধারণ করতে সক্ষম করে। আপনি আরও ভাল পাওয়ার দক্ষতা অর্জনের জন্য লজিক্যাল স্ট্রীম এবং ফিজিক্যাল সাবক্যামেরা স্ট্রীমগুলির অনুরোধ করতে ফিরে আসা আইডিগুলি ব্যবহার করতে পারেন।

অ্যাক্সেসিবিলিটি পরিষেবা API

অ্যান্ড্রয়েড 10 নিম্নলিখিত নতুন অ্যাক্সেসিবিলিটি পরিষেবা বৈশিষ্ট্য এবং APIগুলি প্রবর্তন করে:

AccessibilityNodeInfo এন্ট্রি কী পতাকা

অ্যান্ড্রয়েড 10 অনুসারে, আপনি একটি প্রদত্ত AccessibilityNodeInfo একটি কীবোর্ড বা কীপ্যাডের অংশ এমন একটি পাঠ্য এন্ট্রি কী প্রতিনিধিত্ব করে কিনা তা নির্ধারণ করতে আপনি isTextEntryKey() কল করতে পারেন।

অ্যাক্সেসিবিলিটি ডায়ালগ কথ্য প্রতিক্রিয়া

যে ক্ষেত্রে ব্যবহারকারীদের একটি অ্যাক্সেসিবিলিটি পরিষেবা শুরু করার জন্য অ্যাক্সেসিবিলিটি শর্টকাট সম্পাদন করতে হবে, Android 10 যদি পরিষেবাটি অনুরোধ করে তবে একটি টেক্সট-টু-স্পিচ প্রম্পট সহ ডায়ালগটিকে অনুমতি দেয়।

অঙ্গভঙ্গি নেভিগেশন সক্ষম হলে অ্যাক্সেসিবিলিটি শর্টকাট৷

Android 10-এ জেসচার নেভিগেশন ফিচার চালু থাকলে, অ্যাক্সেসিবিলিটি বোতামটি দৃশ্যমান বা বেছে নেওয়া যায় না। অ্যাক্সেসিবিলিটি পরিষেবা মেনু অ্যাক্সেস করতে, ব্যবহারকারীদের অবশ্যই নিম্নলিখিত অঙ্গভঙ্গিগুলির মধ্যে একটি সম্পাদন করতে হবে:

  • দুই আঙুল উপরে সোয়াইপ.
  • দুই আঙুল দিয়ে সোয়াইপ করুন এবং ধরে রাখুন।

ফিজিক্যাল কীবোর্ডের জন্য অ্যাক্সেসিবিলিটি শর্টকাট

অ্যান্ড্রয়েড 10-এ, ব্যবহারকারীরা Control+Alt+Z টিপে একটি ফিজিক্যাল কীবোর্ডে অ্যাক্সেসিবিলিটি শর্টকাট ট্রিগার করতে পারেন।

নরম কীবোর্ড কন্ট্রোলার বর্ধন

অ্যান্ড্রয়েড 10-এ, অ্যাক্সেসিবিলিটি পরিষেবাগুলি অনুরোধ করতে পারে যে সফ্ট কীবোর্ডটি প্রদর্শিত হবে এমনকি যখন ডিভাইসটি একটি হার্ড কীবোর্ড সংযুক্ত শনাক্ত করে। ব্যবহারকারীরা এই আচরণ ওভাররাইড করতে পারেন.

ব্যবহারকারী-সংজ্ঞায়িত অ্যাক্সেসিবিলিটি টাইমআউট

Android 10 getRecommendedTimeoutMillis() API প্রবর্তন করেছে। এই পদ্ধতিটি ইন্টারেক্টিভ এবং অ-ইন্টারেক্টিভ UI উপাদানগুলির জন্য ব্যবহারকারী-সংজ্ঞায়িত টাইমআউটের জন্য সমর্থন প্রদান করে। রিটার্ন মান ব্যবহারকারীর পছন্দ এবং অ্যাক্সেসিবিলিটি পরিষেবা API উভয় দ্বারা প্রভাবিত হয়।

অটোফিল উন্নতি

Android 10-এ অটোফিল পরিষেবার নিম্নলিখিত উন্নতিগুলি রয়েছে৷

সামঞ্জস্য-সম্পর্কিত অটোফিল অনুরোধ

আপনি FillRequest.FLAG_COMPATIBILITY_MODE_REQUEST পতাকা ব্যবহার করতে পারেন যে একটি স্বতঃপূরণ অনুরোধ সামঞ্জস্য মোডের মাধ্যমে তৈরি হয়েছে কিনা তা নির্ধারণ করতে৷

একই সাথে ব্যবহারকারীর নাম এবং পাসওয়ার্ড সংরক্ষণ করুন

আপনি এমন ক্ষেত্রে সমর্থন করতে পারেন যেখানে একটি অ্যাপ্লিকেশন ব্যবহারকারীর নাম, পাসওয়ার্ড এবং অন্যান্য ক্ষেত্রগুলি প্রদর্শন করতে একাধিক কার্যকলাপ ব্যবহার করে SaveInfo.FLAG_DELAY_SAVE পতাকা ব্যবহার করে।

সংরক্ষণ UI এর সাথে ব্যবহারকারীর মিথস্ক্রিয়া

আপনি ডায়ালগে একটি অ্যাকশন লিসেনার সেট করে এবং সংশ্লিষ্ট পাসওয়ার্ড রিমোট ভিউয়ের দৃশ্যমানতা পরিবর্তন করে একটি সংরক্ষণ ডায়ালগে একটি পাসওয়ার্ড ক্ষেত্র দেখাতে এবং লুকাতে পারেন।

ডেটাসেট আপডেট করার জন্য সমর্থন

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

ক্ষেত্রের শ্রেণীবিভাগের উন্নতি

অ্যান্ড্রয়েড 10 ফিল্ড ক্লাসিফিকেশন API-এর নিম্নলিখিত উন্নতিগুলিকে ধারণ করে৷

UserData.Builder Constructor

UserData.Builder কনস্ট্রাক্টরটি Builder প্যাটার্নের সাথে আরও ভালভাবে সারিবদ্ধ করার জন্য পরিবর্তিত হয়েছে।

একটি মানকে একাধিক ধরণের বিভাগ আইডিতে ম্যাপ করার অনুমতি দিন

Android 10-এ UserData.Builder ব্যবহার করার সময়, আপনি এখন একাধিক ধরনের বিভাগ আইডিতে একটি মান ম্যাপ করতে পারেন। পূর্ববর্তী রিলিজে, যদি একটি মান একাধিকবার যোগ করা হয় তবে একটি ব্যতিক্রম নিক্ষেপ করা হয়েছিল।

ক্রেডিট কার্ড নম্বরগুলির জন্য উন্নত সমর্থন

ক্ষেত্র শ্রেণিবিন্যাস এখন ক্রেডিট কার্ড নম্বরের শেষ চারটি সংখ্যা হিসাবে চার-সংখ্যার সংখ্যা সনাক্ত করতে পারে।

অ্যাপ-নির্দিষ্ট ক্ষেত্রের শ্রেণীবিভাগের জন্য সমর্থন

Android 10 FillResponse.setUserData() যোগ করে, যা আপনাকে সেশনের সময়কালের জন্য অ্যাপ-নির্দিষ্ট ব্যবহারকারীর ডেটা সেট করতে দেয়। এটি অটোফিল পরিষেবাকে অ্যাপ-নির্দিষ্ট সামগ্রী সহ ক্ষেত্রের ধরন সনাক্ত করতে সহায়তা করে৷

UI এবং সিস্টেম নিয়ন্ত্রণ

Android 10 নিম্নলিখিত ব্যবহারকারী-ইন্টারফেসের উন্নতি প্রদান করে:

JVMTI পপফ্রেম ক্যাপ সমর্থন করুন

Android 10 Android JVMTI বাস্তবায়নে can_pop_frames সক্ষমতার জন্য সমর্থন যোগ করে। ডিবাগ করার সময়, এই বৈশিষ্ট্যটি আপনাকে ব্রেকপয়েন্টে বিরতি দেওয়ার পরে এবং স্থানীয়, গ্লোবাল, বা একটি ফাংশন বাস্তবায়নের সামঞ্জস্য করার পরে ফাংশনগুলি পুনরায় চালানোর অনুমতি দেয়। আরও তথ্যের জন্য, ওরাকলের পপ ফ্রেম রেফারেন্স পৃষ্ঠা দেখুন।

সারফেস কন্ট্রোল API

অ্যান্ড্রয়েড 10 সিস্টেম-কম্পোজিটরে নিম্ন-স্তরের অ্যাক্সেসের জন্য একটি SurfaceControl API প্রদান করে ( SurfaceFlinger )। বেশিরভাগ ব্যবহারকারীর জন্য, কম্পোজিটর ব্যবহার করার সঠিক উপায় হল SurfaceView। SurfaceControl API নির্দিষ্ট কিছু ক্ষেত্রে কার্যকর হতে পারে, উদাহরণস্বরূপ:

  • একাধিক পৃষ্ঠের সিঙ্ক্রোনাইজেশন
  • ক্রস-প্রক্রিয়া পৃষ্ঠ এমবেডিং
  • নিম্ন স্তরের জীবনকাল ব্যবস্থাপনা

SurfaceControl API SDK এবং NDK বাইন্ডিং উভয় ক্ষেত্রেই উপলব্ধ। NDK বাস্তবায়নে কম্পোজিটরের সাথে বাফারের ম্যানুয়াল বিনিময়ের জন্য একটি API অন্তর্ভুক্ত রয়েছে। এটি এমন ব্যবহারকারীদের জন্য একটি বিকল্প প্রদান করে যারা BufferQueue এর সীমাবদ্ধতার বিরুদ্ধে চলে গেছে।

ওয়েবভিউ হ্যাং রেন্ডারার সনাক্তকরণ

অ্যান্ড্রয়েড 10 WebViewRenderProcessClient অ্যাবস্ট্রাক্ট ক্লাস প্রবর্তন করে, যেটি অ্যাপগুলি একটি WebView প্রতিক্রিয়াহীন হয়ে পড়েছে কিনা তা সনাক্ত করতে ব্যবহার করতে পারে। এই ক্লাস ব্যবহার করতে:

  1. আপনার নিজস্ব সাবক্লাস সংজ্ঞায়িত করুন এবং এর onRenderProcessResponsive() এবং onRenderProcessUnresponsive() পদ্ধতিগুলি প্রয়োগ করুন।
  2. এক বা একাধিক WebView অবজেক্টে আপনার WebViewRenderProcessClient এর একটি উদাহরণ সংযুক্ত করুন।
  3. WebView যদি প্রতিক্রিয়াহীন হয়ে যায়, সিস্টেমটি ক্লায়েন্টের onRenderProcessUnresponsive() পদ্ধতিতে কল করে, WebView এবং WebViewRenderProcess পাস করে। (যদি WebView একক-প্রক্রিয়া হয়, WebViewRenderProcess প্যারামিটারটি শূন্য।) আপনার অ্যাপ যথাযথ ব্যবস্থা নিতে পারে, যেমন ব্যবহারকারীকে একটি ডায়ালগ বক্স দেখানো যে তারা রেন্ডারিং প্রক্রিয়াটি থামাতে চান কিনা।

WebView যদি প্রতিক্রিয়াহীন থেকে যায়, তবে সিস্টেমটি পর্যায়ক্রমে (প্রতি পাঁচ সেকেন্ডে একবারের বেশি নয়) onRenderProcessUnresponsive() কল করে, কিন্তু অন্য কোনও পদক্ষেপ নেয় না। যদি WebView আবার প্রতিক্রিয়াশীল হয়ে যায়, সিস্টেমটি শুধুমাত্র একবার onRenderProcessResponsive() কল করে।

সেটিংস প্যানেল

অ্যান্ড্রয়েড 10 সেটিংস প্যানেল প্রবর্তন করে, একটি API যা অ্যাপগুলিকে তাদের অ্যাপের প্রসঙ্গে ব্যবহারকারীদের সেটিংস দেখানোর অনুমতি দেয়। এটি ব্যবহারকারীদের অ্যাপটি ব্যবহার করার জন্য এনএফসি বা মোবাইল ডেটার মতো জিনিসগুলি পরিবর্তন করতে সেটিংসে যেতে বাধা দেয়।

চিত্র 1. ডিভাইসটি নেটওয়ার্কের সাথে সংযুক্ত না থাকা অবস্থায় ব্যবহারকারী একটি ওয়েব পৃষ্ঠা খোলার চেষ্টা করে৷ Chrome ইন্টারনেট সংযোগ সেটিংস প্যানেল পপ আপ করে...

চিত্র 2. ব্যবহারকারী Wi-Fi চালু করতে পারেন এবং Chrome অ্যাপ না রেখে একটি নেটওয়ার্ক নির্বাচন করতে পারেন৷

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

একটি সেটিংস প্যানেল প্রদর্শন করতে, নিম্নলিখিত Settings.Panel একটি দিয়ে একটি অভিপ্রায় ফায়ার করুন৷ প্যানেল অ্যাকশন:

কোটলিন

val panelIntent = Intent(Settings.Panel.settings_panel_type)
startActivityForResult(panelIntent)

জাভা

Intent panelIntent = new Intent(Settings.Panel.settings_panel_type);
startActivityForResult(panelIntent);

settings_panel_type এর মধ্যে একটি হতে পারে:

ACTION_INTERNET_CONNECTIVITY
ইন্টারনেট সংযোগের সাথে সম্পর্কিত সেটিংস দেখায়, যেমন বিমান মোড, ওয়াই-ফাই এবং মোবাইল ডেটা।
ACTION_WIFI
Wi-Fi সেটিংস দেখায়, কিন্তু অন্যান্য সংযোগ সেটিংস নয় ৷ বড় আপলোড বা ডাউনলোড করার জন্য একটি Wi-Fi সংযোগ প্রয়োজন এমন অ্যাপগুলির জন্য এটি কার্যকর।
ACTION_NFC
কাছাকাছি-ক্ষেত্র যোগাযোগ (NFC) সম্পর্কিত সমস্ত সেটিংস দেখায়।
ACTION_VOLUME
সমস্ত অডিও স্ট্রীমের জন্য ভলিউম সেটিংস দেখায়।

শেয়ারিং উন্নতি

অ্যান্ড্রয়েড 10 ভাগ করে নেওয়ার জন্য অনেকগুলি উন্নতি প্রদান করে:

শেয়ারিং শর্টকাট API

শেয়ারিং শর্টকাট এপিআই ডাইরেক্ট শেয়ার এপিআই প্রতিস্থাপন করে।

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

পুরানো ডাইরেক্ট শেয়ার মেকানিজম এখনও কাজ করে, তবে যে অ্যাপগুলি এটি ব্যবহার করে তাদের শেয়ারিং শর্টকাট API ব্যবহার করা অ্যাপগুলির তুলনায় কম অগ্রাধিকার রয়েছে।

ShortcutInfo.Builder শেয়ার টার্গেট সম্পর্কে অতিরিক্ত তথ্য প্রদানের পদ্ধতি যোগ করে এবং উন্নত করে।

সরাসরি শেয়ার লক্ষ্য

আপনি সরাসরি শেয়ার টার্গেট হিসাবে একটি গতিশীল শর্টকাট প্রকাশ করতে পারেন। সরাসরি শেয়ার লক্ষ্য প্রকাশ দেখুন.

ShortcutManagerCompat হল একটি নতুন AndroidX API যা পুরানো DirectShare API এর সাথে পিছনের সামঞ্জস্য প্রদান করে। শেয়ার টার্গেট প্রকাশ করার এটি পছন্দের উপায়।

পাঠ্যের পূর্বরূপ দেখা হচ্ছে

যখন একটি অ্যাপ টেক্সট বিষয়বস্তু শেয়ার করে, তখন এটি শেয়ারশীট UI-তে সামগ্রীর একটি ঐচ্ছিক পূর্বরূপ দেখাতে পারে।

রিচ টেক্সট প্রিভিউ যোগ করা দেখুন

আরও জানুন

অ্যাপগুলি কীভাবে ডেটা ভাগ করতে পারে সে সম্পর্কে আরও তথ্যের জন্য, অন্যান্য অ্যাপে সাধারণ ডেটা পাঠানো এবং অন্যান্য অ্যাপ থেকে সাধারণ ডেটা গ্রহণ করা দেখুন

গাঢ় থিম

অ্যান্ড্রয়েড 10 একটি ডার্ক থিম অফার করে যা অ্যান্ড্রয়েড সিস্টেম UI এবং ডিভাইসে চলমান অ্যাপ উভয়ের ক্ষেত্রেই প্রযোজ্য। সম্পূর্ণ তথ্যের জন্য, ডার্ক থিম দেখুন।

ফোরগ্রাউন্ড পরিষেবার ধরন

Android 10 foregroundServiceType XML ম্যানিফেস্ট অ্যাট্রিবিউট প্রবর্তন করে, যা আপনি বেশ কয়েকটি নির্দিষ্ট পরিষেবার সংজ্ঞাতে অন্তর্ভুক্ত করেন। এটি সম্ভব, যদিও খুব কমই উপযুক্ত, একটি নির্দিষ্ট পরিষেবাতে একাধিক ফোরগ্রাউন্ড পরিষেবার ধরন বরাদ্দ করা।

নিম্নলিখিত সারণী বিভিন্ন অগ্রভাগের পরিষেবার ধরন এবং পরিষেবাগুলি দেখায় যেখানে একটি নির্দিষ্ট প্রকার ঘোষণা করা উপযুক্ত:

ফোরগ্রাউন্ড পরিষেবার ধরন একটি পরিষেবার জন্য উদাহরণ ব্যবহার কেস যা এই ধরনের ঘোষণা করা উচিত
connectedDevice পরিধানযোগ্য ফিটনেস ট্র্যাকার নিরীক্ষণ করুন
dataSync একটি নেটওয়ার্ক থেকে ফাইল ডাউনলোড করুন
location ব্যবহারকারীর সূচনা করা একটি কাজ চালিয়ে যান
mediaPlayback একটি অডিও বই, পডকাস্ট বা সঙ্গীত চালান
mediaProjection অল্প সময়ের মধ্যে ডিভাইসের প্রদর্শনের একটি ভিডিও রেকর্ড করুন
phoneCall চলমান ফোন কল পরিচালনা করুন

কোটলিন

অ্যান্ড্রয়েড 10 কোটলিন বিকাশের জন্য নিম্নলিখিত আপডেটগুলি অন্তর্ভুক্ত করে।

libcore API-এর জন্য বাতিলযোগ্যতা টীকা

অ্যান্ড্রয়েড 10 libcore API-এর জন্য SDK-এ বাতিলযোগ্য টীকাগুলির কভারেজ উন্নত করে। এই টীকাগুলি অ্যাপ ডেভেলপারদের সক্ষম করে যারা এই APIগুলির সাথে ইন্টারঅ্যাক্ট করার সময় শূন্যতার তথ্য পেতে অ্যান্ড্রয়েড স্টুডিওতে কোটলিন বা জাভা শূন্যতা বিশ্লেষণ ব্যবহার করছে।

সাধারণত, কোটলিনে বাতিলযোগ্যতা চুক্তি লঙ্ঘনের ফলে সংকলন ত্রুটি হয়। আপনার বিদ্যমান কোডের সাথে সামঞ্জস্য নিশ্চিত করতে, শুধুমাত্র @RecentlyNullable এবং @RecentlyNonNull টীকা যোগ করা হয়েছে। এর মানে হল যে বাতিলযোগ্যতা লঙ্ঘনের ফলে ত্রুটির পরিবর্তে সতর্কতা দেখা যায়।

উপরন্তু, Android 9 এ যোগ করা যেকোন @RecentlyNullable বা @RecentlyNonNull টীকা যথাক্রমে @Nullable এবং @NonNull এ পরিবর্তিত হচ্ছে। এর মানে হল, Android 10 এবং উচ্চতর সংস্করণে, বাতিলযোগ্যতা লঙ্ঘন সতর্কতার পরিবর্তে ত্রুটির দিকে পরিচালিত করে।

টীকা পরিবর্তন সম্পর্কে আরও তথ্যের জন্য, দেখুন Android Pie SDK এখন Android বিকাশকারী ব্লগে আরও Kotlin-বান্ধব

এনডিকে

Android 10 নিম্নলিখিত NDK পরিবর্তনগুলি অন্তর্ভুক্ত করে।

ফাইল বর্ণনাকারী মালিকানার উন্নত ডিবাগিং

Android 10 fdsan যোগ করে, যা আপনাকে ফাইল বর্ণনাকারীর মালিকানার সমস্যাগুলি আরও সহজে খুঁজে পেতে এবং সমাধান করতে সহায়তা করে।

ফাইল বর্ণনাকারীর মালিকানার অব্যবস্থাপনার সাথে সম্পর্কিত বাগগুলি, যা ব্যবহার-পর-বন্ধ এবং ডবল-ক্লোজ হিসাবে প্রকাশ পায়, মেমরি বরাদ্দকরণ ব্যবহারের-পর-মুক্ত এবং দ্বিগুণ-মুক্ত বাগগুলির সাথে সাদৃশ্যপূর্ণ, তবে নির্ণয় করা অনেক বেশি কঠিন। এবং ঠিক করুন। fdsan ফাইল বর্ণনাকারীর মালিকানা প্রয়োগ করে ফাইল বর্ণনাকারীর অব্যবস্থাপনা সনাক্ত এবং/বা প্রতিরোধ করার চেষ্টা করে।

এই সমস্যাগুলির সাথে সম্পর্কিত ক্র্যাশ সম্পর্কে আরও তথ্যের জন্য, fdsan দ্বারা সনাক্ত করা ত্রুটি দেখুন। fdsan সম্পর্কে আরও তথ্যের জন্য, fdsan-এ Googlesource পৃষ্ঠাটি দেখুন।

ELF TLS

ন্যূনতম API স্তর 29 সহ NDK ব্যবহার করে নির্মিত অ্যাপ্লিকেশনগুলি emutls এর পরিবর্তে ELF TLS ব্যবহার করতে পারে৷ থ্রেড-লোকাল ভেরিয়েবল পরিচালনার এই পদ্ধতিকে সমর্থন করার জন্য ডায়নামিক এবং স্ট্যাটিক লিঙ্কার সমর্থন যোগ করা হয়েছে।

API স্তর 28 এবং তার নীচের জন্য নির্মিত অ্যাপগুলির জন্য, কিছু emutls সমস্যা সমাধানের জন্য libgcc/compiler-rt এর জন্য উন্নতিগুলি প্রয়োগ করা হয়েছে।

আরও তথ্যের জন্য, NDK বিকাশকারীদের জন্য Android পরিবর্তনগুলি দেখুন।

রানটাইম

Android 10 নিম্নলিখিত রানটাইম পরিবর্তন অন্তর্ভুক্ত করে।

ম্যালিনফো-ভিত্তিক আবর্জনা সংগ্রহ ট্রিগার করছে

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

অ্যান্ড্রয়েড 10-এ, আবর্জনা সংগ্রাহক (GC) সিস্টেম malloc() দ্বারা বরাদ্দ করা স্তূপের মোট আকার ট্র্যাক করে, এটি নিশ্চিত করে যে বড় malloc() বরাদ্দ সবসময় GC-ট্রিগারিং গণনায় অন্তর্ভুক্ত করা হয়। জাভা এক্সিকিউশনের সাথে প্রচুর পরিমাণে C++ বরাদ্দ করা অ্যাপগুলি আবর্জনা সংগ্রহের ফ্রিকোয়েন্সি বৃদ্ধি দেখতে পারে। অন্যান্য অ্যাপ্লিকেশানগুলি সামান্য হ্রাস দেখতে পারে।

পরীক্ষা এবং ডিবাগিং

Android 10 পরীক্ষা এবং ডিবাগিংয়ের জন্য নিম্নলিখিত উন্নতিগুলি অন্তর্ভুক্ত করে৷

অন-ডিভাইস সিস্টেম ট্রেসিংয়ের জন্য উন্নতি

অ্যান্ড্রয়েড 10 অনুযায়ী, যখন আপনি একটি অন-ডিভাইস সিস্টেম ট্রেস করেন তখন আপনি একটি ট্রেসের আকার এবং সময়কালের সীমা নির্দিষ্ট করতে পারেন। যখন আপনি যেকোনো একটি মান নির্দিষ্ট করেন, তখন সিস্টেমটি একটি দীর্ঘ ট্রেস সঞ্চালন করে, ট্রেস রেকর্ড করার সময় পর্যায়ক্রমে গন্তব্য ফাইলে ট্রেস বাফারটি অনুলিপি করে। আপনার নির্দিষ্ট করা আকার বা সময়কালের সীমা পৌঁছে গেলে ট্রেস সম্পূর্ণ হয়।

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

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

TextClassifier উন্নতি

Android 10 TextClassifier ইন্টারফেসে অতিরিক্ত পাঠ্য শ্রেণিবিন্যাস কার্যকারিতা প্রদান করে।

ভাষা সনাক্তকরণ

detectLanguage() পদ্ধতিটি পূর্বে বিদ্যমান শ্রেণীবিভাগ পদ্ধতির অনুরূপভাবে কাজ করে। এটি একটি TextLanguage.Request অবজেক্ট পায় এবং একটি TextLanguage অবজেক্ট রিটার্ন করে।

TextLanguage অবজেক্টে অর্ডার করা জোড়ার একটি তালিকা থাকে। শ্রেণীবিভাগের জন্য প্রতিটি জোড়ায় একটি লোকেল এবং একটি সংশ্লিষ্ট আত্মবিশ্বাসের স্কোর রয়েছে।

প্রস্তাবিত কথোপকথন কর্ম

suggestConversationActions() পদ্ধতিটি বিদ্যমান শ্রেণীবিভাগ পদ্ধতির অনুরূপভাবে কাজ করে। এটি একটি ConversationActions.Request অবজেক্ট পায় এবং একটি ConversationActions অবজেক্ট রিটার্ন করে।

ConversationActions অবজেক্টে ConversationAction অবজেক্টের একটি তালিকা থাকে। প্রতিটি ConversationAction অবজেক্টের মধ্যে একটি সম্ভাব্য প্রস্তাবিত ক্রিয়া এবং এর আত্মবিশ্বাসের স্কোর অন্তর্ভুক্ত থাকে।

বিজ্ঞপ্তিতে স্মার্ট উত্তর/ক্রিয়া

Android 9 একটি বিজ্ঞপ্তির মধ্যে প্রস্তাবিত উত্তর প্রদর্শন করার ক্ষমতা চালু করেছে। Android 10 প্রস্তাবিত অভিপ্রায়-ভিত্তিক ক্রিয়াগুলি অন্তর্ভুক্ত করার ক্ষমতা সহ এটিকে প্রসারিত করে। অধিকন্তু, প্ল্যাটফর্মটি স্বয়ংক্রিয়ভাবে এই পরামর্শগুলি তৈরি করতে সক্ষম। অ্যাপ্লিকেশানগুলি এখনও তাদের নিজস্ব পরামর্শ প্রদান করতে পারে বা সিস্টেম-উত্পাদিত পরামর্শগুলি অপ্ট আউট করতে পারে৷

এই উত্তরগুলি তৈরি করতে ব্যবহৃত APIটি TextClassifier এর অংশ, এবং Android 10-এ বিকাশকারীদের কাছে সরাসরি প্রকাশ করা হয়েছে৷ আরও তথ্যের জন্য অনুগ্রহ করে TextClassifier উন্নতির বিভাগটি পড়ুন৷

আপনার অ্যাপ যদি নিজস্ব পরামর্শ প্রদান করে, তাহলে প্ল্যাটফর্ম কোনো স্বয়ংক্রিয় পরামর্শ তৈরি করে না। আপনি যদি আপনার অ্যাপের বিজ্ঞপ্তিগুলি কোনও প্রস্তাবিত উত্তর বা ক্রিয়া প্রদর্শন করতে না চান তবে আপনি setAllowGeneratedReplies() এবং setAllowSystemGeneratedContextualActions() ব্যবহার করে সিস্টেম-জেনারেটেড উত্তর এবং ক্রিয়াগুলি অপ্ট আউট করতে পারেন৷