এই পৃষ্ঠায় অ্যান্ড্রয়েড ৯ রিলিজের প্রধান ফিচারগুলোর সারসংক্ষেপ দেওয়া হয়েছে এবং অতিরিক্ত তথ্যের জন্য লিঙ্ক প্রদান করা হয়েছে। এই ফিচার সারাংশগুলো এই সাইটে ফিচারটির ডকুমেন্টেশনের অবস্থান অনুসারে সাজানো হয়েছে। সেকশনের স্থানান্তর এবং নাম পরিবর্তনের নির্দেশিকার জন্য আগস্ট ২০১৮-এর সাইট আপডেটগুলো দেখুন।
নির্মাণ করুন
জেনেরিক সিস্টেম ইমেজ (GSI)
জেনেরিক সিস্টেম ইমেজ (GSI) হলো অ্যান্ড্রয়েড ডিভাইসগুলোর জন্য সামঞ্জস্যপূর্ণ কনফিগারেশনসহ একটি সিস্টেম ইমেজ। জেনেরিক সিস্টেম ইমেজ (GSI)- এ অ্যান্ড্রয়েড ৯ সহ লঞ্চ হওয়া ডিভাইস এবং অ্যান্ড্রয়েড ৯-এ আপগ্রেড হওয়া ডিভাইসগুলোর GSI-এর মধ্যেকার পার্থক্যের বিবরণ অন্তর্ভুক্ত থাকে।
স্থাপত্য
হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL)
HIDL ফ্রেমওয়ার্কের পশ্চাৎ সামঞ্জস্যতা
HIDL ফ্রেমওয়ার্কের পশ্চাৎ সামঞ্জস্যতা যাচাইকরণ হলো ফ্রেমওয়ার্কটির পশ্চাৎ সামঞ্জস্যতা যাচাই করার একটি পদ্ধতি।
গতিশীলভাবে উপলব্ধ HALs
ডাইনামিক্যালি অ্যাভেইলেবল এইচএএল (HAL) অ্যান্ড্রয়েড হার্ডওয়্যার সাবসিস্টেমগুলোকে ব্যবহার না হলে বা প্রয়োজন না হলে ডাইনামিকভাবে বন্ধ করে দিতে সমর্থন করে।
এইচআইডিএল
HIDL মেমোরিব্লক
HIDL MemoryBlock হলো hidl_memory , HIDL @1.0::IAllocator , এবং HIDL @1.0::IMapper উপর নির্মিত একটি অ্যাবস্ট্রাক্ট লেয়ার। এটি এমন HIDL সার্ভিসগুলোর জন্য ডিজাইন করা হয়েছে, যেখানে একাধিক মেমরি ব্লক একটিমাত্র মেমরি হিপ শেয়ার করে।
ডিভাইস ট্রি ওভারলে
সংকুচিত ওভারলে
ডিভাইস ট্রি টেবিল হেডারের সংস্করণ ১ ব্যবহার করার সময়, অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে ডিভাইস ট্রি ব্লব ওভারলে (DTBO) ইমেজে কম্প্রেসড ওভারলের জন্য সাপোর্ট অন্তর্ভুক্ত রয়েছে।
ডিটিও আপডেট
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে ডিভাইস ট্রি ওভারলে (DTO)- তে সংজ্ঞায়িত প্রোপার্টিগুলো পরিবর্তন করার আগে বুটলোডারকে অবশ্যই ইউনিফাইড ডিভাইস ট্রি ব্লবটি কার্নেলের কাছে পাঠাতে হয়।
DTBO ইমেজ হেডার ভার্সনিং
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে DTBO ইমেজ হেডারে একটি ভার্সন ফিল্ড অন্তর্ভুক্ত থাকে।
DTBO যাচাইকরণ
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোর জন্য একটি DTBO পার্টিশন প্রয়োজন। SoC DT-তে নোড যোগ করতে বা এর প্রোপার্টিগুলোতে পরিবর্তন আনতে, বুটলোডারকে অবশ্যই SoC DT-এর উপর ডায়নামিকভাবে একটি ডিভাইস-নির্দিষ্ট DT ওভারলে করতে হবে। আরও তথ্যের জন্য কম্পাইলিং ও ভেরিফাইং দেখুন।
কার্নেল কমপ্লায়েন্স
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে এমন কিছু আবশ্যিক শর্ত রয়েছে যা কার্নেল, এর ইন্টারফেস এবং ডিটিবিও (DTBO)-এর ব্যবহারকে প্রভাবিত করে। আরও তথ্যের জন্য, এই পৃষ্ঠাগুলো দেখুন:
- স্থিতিশীল কার্নেল রিলিজ এবং আপডেট
- অ্যান্ড্রয়েড সাধারণ কার্নেল
- মডিউলার কার্নেলের প্রয়োজনীয়তা
- ইন্টারফেসের প্রয়োজনীয়তা
- ডিভাইস ট্রি ওভারলে
বিক্রেতা এনডিকে
নকশার পরিবর্তন
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে VNDK ডিজাইনের পরিবর্তন সম্পর্কে জানতে এই পৃষ্ঠাগুলো দেখুন:
- ভেন্ডর নেটিভ ডেভেলপমেন্ট কিট (VNDK)
- VNDK বিল্ড সিস্টেম সাপোর্ট
- VNDK সংজ্ঞা সরঞ্জাম
- ডিরেক্টরি, নিয়মাবলী এবং সেপলিসি
- VNDK এক্সটেনশন
- লিঙ্কার নেমস্পেস
এবিআই চেকার
ABI Stability পৃষ্ঠাটি অ্যাপ্লিকেশন বাইনারি ইন্টারফেস (ABI) চেকারের বর্ণনা দেয়, যা নিশ্চিত করে যে VNDK লাইব্রেরিতে করা পরিবর্তনগুলো ABI সম্মতি বজায় রাখে।
VNDK স্ন্যাপশট
একটি সিস্টেম ইমেজ VNDK স্ন্যাপশট ব্যবহার করে ভেন্ডর ইমেজগুলোতে সঠিক VNDK লাইব্রেরি সরবরাহ করতে পারে, এমনকি যখন সিস্টেম এবং ভেন্ডর ইমেজগুলো অ্যান্ড্রয়েডের ভিন্ন ভিন্ন সংস্করণ থেকে তৈরি করা হয়।
ভেন্ডর ইন্টারফেস অবজেক্ট (VINTF অবজেক্ট)
ভেন্ডর ইন্টারফেস অবজেক্ট বিভাগের নিম্নলিখিত পৃষ্ঠাগুলিতে অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলির আপডেটগুলি বর্ণনা করা হয়েছে:
HIDL অবচয় সময়সূচী
নিম্নলিখিত পৃষ্ঠাগুলিতে বর্ণনা করা হয়েছে কিভাবে অ্যান্ড্রয়েড HIDL HAL-গুলিকে অপ্রচলিত ঘোষণা করে এবং সরিয়ে দেয়:
বুটলোডার
পণ্য বিভাজন
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলো অ্যান্ড্রয়েড বিল্ড সিস্টেম ব্যবহার করে /product পার্টিশন তৈরি করা সমর্থন করে। পূর্বে, অ্যান্ড্রয়েড ৮.x সংস্করণটি সিস্টেম-অন-চিপ (SoC)-এর নির্দিষ্ট উপাদানগুলোকে /system পার্টিশন থেকে /vendor পার্টিশনে আলাদা করতে বাধ্য করত এবং অ্যান্ড্রয়েড বিল্ড সিস্টেম থেকে তৈরি OEM-এর নির্দিষ্ট উপাদানগুলোর জন্য কোনো স্থান বরাদ্দ করত না।
ক্যানোনিকাল বুট কারণ সম্মতি
ক্যানোনিকাল বুট রিজন পেজটিতে অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে বুটলোডার বুট রিজন স্পেসিফিকেশনের পরিবর্তনগুলো বর্ণনা করা হয়েছে।
সিস্টেম মূল হিসাবে
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণ সহ চালু হওয়া সমস্ত ডিভাইসে অবশ্যই system-as-root ব্যবহার করতে হবে, যা ramdisk.img কে system.img (যা no-ramdisk নামেও পরিচিত) এর সাথে একীভূত করে, এবং এই system.img-টি rootfs হিসেবে মাউন্ট করা হয়।
বুট ইমেজ হেডার ভার্সনিং
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে, বুট ইমেজ হেডারে হেডার ভার্সন নির্দেশ করার জন্য একটি ফিল্ড থাকে। বুটলোডারকে অবশ্যই এই ভার্সন ফিল্ডটি যাচাই করতে হয় এবং সেই অনুযায়ী হেডারটি পার্স করতে হয়।
ডিটিবিও সুস্থ হয়ে উঠছে
নন-এ/বি ডিভাইসগুলিতে রিকভারি ইমেজ এবং ডিটিবিও পার্টিশনের মধ্যে অমিলের কারণে ওটিএ ব্যর্থতা রোধ করতে, রিকভারি ইমেজে অবশ্যই ডিটিবিও ইমেজের তথ্য অন্তর্ভুক্ত থাকতে হবে।
প্রদর্শন
ডিসপ্লে কাটআউট
ডিসপ্লে কাটআউটগুলো অ্যাপ ডেভেলপারদেরকে ডিভাইসের সামনের দিকে গুরুত্বপূর্ণ সেন্সরগুলোর জন্য জায়গা রাখার পাশাপাশি ইমারসিভ, এজ-টু-এজ অভিজ্ঞতা তৈরি করার সুযোগ দেয়।
পরামর্শ ঘোরান
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে স্ক্রিন রোটেশন আচরণের আপডেটে এমন একটি ইউজার-ফেসিং কন্ট্রোল যুক্ত করা হয়েছে, যার মাধ্যমে ডিভাইসের অবস্থান পরিবর্তন হলেও স্ক্রিন রোটেশনকে ল্যান্ডস্কেপ বা পোর্ট্রেট মোডে স্থির রাখা যায়।
সিঙ্ক্রোনাইজড অ্যাপ ট্রানজিশন
সিঙ্ক্রোনাইজড অ্যাপ ট্রানজিশন নতুন অ্যাপ ট্রানজিশন অ্যানিমেশনের সুযোগ করে দেয়।
পাঠ্য শ্রেণিবিন্যাস (পূর্বে TEXTCLASSIFIER)
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে একটি টেক্সট ক্লাসিফায়ার সার্ভিস অন্তর্ভুক্ত রয়েছে, যা টেক্সট ক্লাসিফিকেশন বাস্তবায়নের জন্য প্রস্তাবিত উপায়, এবং একটি ডিফল্ট সার্ভিস ইমপ্লিমেন্টেশনও আছে।
প্রশস্ত গামুট রঙ
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে ওয়াইড-গ্যামুট কালারের সাপোর্ট রয়েছে, যার মধ্যে অন্তর্ভুক্ত:
- হাই ডাইনামিক রেঞ্জ (এইচডিআর)
- BT2020 কালার স্পেসে কন্টেন্ট প্রসেস করা হচ্ছে, কিন্তু চূড়ান্ত লক্ষ্য ডেটাস্পেস হিসেবে নয়।
ওয়াইড-গ্যামাট কালার ব্যবহার করার জন্য, একটি ডিভাইসের সম্পূর্ণ ডিসপ্লে স্ট্যাককে (যেমন স্ক্রিন, হার্ডওয়্যার কম্পোজার, জিপিইউ) অবশ্যই ওয়াইড-গ্যামাট কালার বা বাফার ফরম্যাট সমর্থন করতে হবে। হার্ডওয়্যার সমর্থন করলেও, ডিভাইসগুলোকে ওয়াইড-গ্যামাট কন্টেন্টের জন্য সমর্থনের দাবি করতে হবে না। তবে, হার্ডওয়্যারের সম্পূর্ণ সুবিধা নিতে ওয়াইড-গ্যামাট কালার সক্রিয় করা উচিত। একটি অসামঞ্জস্যপূর্ণ ভিজ্যুয়াল অভিজ্ঞতা এড়াতে, রানটাইমের সময় ওয়াইড-গ্যামাট কালার বন্ধ করা উচিত নয়।
সামঞ্জস্যতা
অ্যান্ড্রয়েড সামঞ্জস্য সংজ্ঞা নথি
অ্যান্ড্রয়েড ৯ কম্প্যাটিবিলিটি ডেফিনিশন ডকুমেন্ট (CDD) পূর্ববর্তী সংস্করণগুলোর উপর ভিত্তি করে নতুন ফিচারের আপডেট এবং পূর্বে প্রকাশিত কার্যকারিতার জন্য প্রয়োজনীয়তার পরিবর্তন নিয়ে আসে।
সেটিংস
আরও ভালো অ্যাপ উইজেট
অ্যান্ড্রয়েড অ্যাপ উইজেট ফ্রেমওয়ার্ক ব্যবহারকারীর কার্যকলাপ সম্পর্কে আরও স্পষ্ট ধারণা দেয়, বিশেষ করে যখন কোনো ব্যবহারকারী উইজেট মুছে ফেলেন বা নিজে থেকে যোগ করেন। এই কার্যকারিতাটি Launcher3-এর সাথে ডিফল্টভাবেই থাকে।
যদি লঞ্চার৩-এর উপর ভিত্তি করে তৈরি না হয়, তবে নির্মাতাদের তাদের লঞ্চার অ্যাপগুলো (যা ডিভাইসের সাথে আসে) এই ফিচারটি সমর্থন করার জন্য আপডেট করতে হবে। OEM-দের তাদের ডিফল্ট লঞ্চারে নতুন widgetFeatures ফিল্ডটি সমর্থন করতে হবে।
মনে রাখবেন যে, এই ফিচারটি শুধুমাত্র তখনই এন্ড-টু-এন্ড কাজ করে যখন লঞ্চারগুলো এটিকে প্রত্যাশিতভাবে প্রয়োগ করে। AOSP-তে একটি নমুনা ইমপ্লিমেন্টেশন অন্তর্ভুক্ত রয়েছে। প্রদত্ত নমুনা কোডের জন্য AOSP Change-Id Iccd6f965fa3d61992244a365efc242122292c0ca দেখুন।
প্যাকেজ ইনস্টলারগুলিতে ডিভাইসের অবস্থা পরিবর্তনের বিজ্ঞপ্তি
যখনই লোকেল বা ডিসপ্লে ডেনসিটির মতো প্রোপার্টিতে কোনো পরিবর্তন আসে, তখন INSTALL_PACKAGES পারমিশন থাকা অ্যাপগুলিতে একটি সুরক্ষিত সিস্টেম ব্রডকাস্ট পাঠানো যেতে পারে। রিসিভারদের ম্যানিফেস্টে রেজিস্টার করা যায় এবং ব্রডকাস্টটি গ্রহণ করার জন্য একটি প্রসেস সক্রিয় হয়। এটি সেইসব প্যাকেজ ইনস্টলারের জন্য উপযোগী, যারা এই ধরনের পরিবর্তনের ফলে অ্যাপের অতিরিক্ত কম্পোনেন্ট ইনস্টল করতে চায়। যদিও এমনটা সচরাচর ঘটে না, কারণ এই ব্রডকাস্টটি চালু করার মতো কনফিগারেশন পরিবর্তন খুব কমই হয়।
ডিভাইসের অবস্থা পরিবর্তনের নোটিফিকেশনের সোর্স কোড platform/frameworks/base অধীনে নিম্নলিখিত স্থানগুলিতে অবস্থিত:
-
api/system-current.txt -
core/java/android/content/Intent.java -
core/res/AndroidManifest.xml -
services/core/java/com/android/server/am/ActivityManagerService.java
তথ্য স্থাপত্য
সেটিংস অ্যাপের তথ্য কাঠামোতে আনা পরিবর্তনগুলো আরও বেশি কার্যকারিতা এবং সহজতর বাস্তবায়ন প্রদান করে।
পরীক্ষা
পরীক্ষা
Atest কমান্ড লাইন টুলটি আপনাকে স্থানীয়ভাবে অ্যান্ড্রয়েড টেস্ট বিল্ড, ইনস্টল এবং রান করার সুযোগ দেয়, যা ট্রেড ফেডারেশন টেস্ট হারনেস কমান্ড লাইন অপশন সম্পর্কে জ্ঞান ছাড়াই টেস্ট পুনরায় চালানোর গতি ব্যাপকভাবে বাড়িয়ে তোলে।
সামঞ্জস্য পরীক্ষা স্যুট
CTS ডাউনলোড
অ্যান্ড্রয়েড ৯ সমর্থনকারী কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) প্যাকেজগুলো CTS ডাউনলোড পেজে পাওয়া যাচ্ছে। অন্তর্ভুক্ত টেস্টগুলোর সোর্স কোড ওপেন-সোর্স ট্রিতে android-cts-9.0_r1 ট্যাগটির সাথে সিঙ্ক করা যাবে।
CTS বিকল্পগুলি
অ্যান্ড্রয়েড ৯-এর জন্য, CTS v2 নিম্নলিখিত কমান্ড এবং আর্গুমেন্টটি লাভ করে:
-
run retryপূর্ববর্তী সেশনগুলো থেকে ব্যর্থ হওয়া বা সম্পাদিত না হওয়া সমস্ত টেস্ট পুনরায় চালায়। -
'--shard-countএকটি CTS রানকে নির্দিষ্ট সংখ্যক স্বাধীন খণ্ডে বিভক্ত করে, যাতে এটি একাধিক ডিভাইসে সমান্তরালভাবে চালানো যায়।
এছাড়াও, পূর্বে নথিভুক্ত না থাকা --retry-type কমান্ডটি একই CTS v2 কনসোল কমান্ড রেফারেন্সে যোগ করা হয়েছে।
সিকিউর এলিমেন্ট (SE) পরিষেবা
সিকিউর এলিমেন্ট সার্ভিসটি ডিভাইসগুলিতে SE HAL ইমপ্লিমেন্টেশন আছে কিনা এবং থাকলে কতগুলি আছে, তা শনাক্ত করার মাধ্যমে গ্লোবাল প্ল্যাটফর্ম-সমর্থিত সিকিউর এলিমেন্টগুলি যাচাই করে। এটি এপিআই এবং অন্তর্নিহিত সিকিউর এলিমেন্ট ইমপ্লিমেন্টেশন পরীক্ষা করার ভিত্তি হিসেবে ব্যবহৃত হয়।
সেন্সর ফিউশন বক্স
সেন্সর ফিউশন বক্সটি ক্যামেরা ইমেজ টেস্ট স্যুট (ক্যামেরা আইটিএস)-এর সেন্সর ফিউশন টেস্ট এবং মাল্টি-ক্যামেরা সিঙ্ক টেস্টে ব্যবহৃত হয় এবং এটি অ্যান্ড্রয়েড ফোনের ক্যামেরা ও অন্যান্য সেন্সরের টাইমস্ট্যাম্পের নির্ভুলতা পরিমাপের জন্য একটি সামঞ্জস্যপূর্ণ পরীক্ষার পরিবেশ প্রদান করে। আরও তথ্যের জন্য এই পৃষ্ঠাগুলি দেখুন:
- সেন্সর ফিউশন বক্স কুইক স্টার্ট গাইডে প্রথমবারের জন্য সেন্সর ফিউশন টেস্ট এবং সেন্সর ফিউশন বক্স সেট আপ করার ধাপগুলো দেওয়া হয়েছে।
- সেন্সর ফিউশন বক্স অ্যাসেম্বলি-তে একটি সেন্সর ফিউশন বক্স একত্রিত করার ধাপগুলো দেওয়া হয়েছে।
প্রশস্ত দৃশ্যক্ষেত্রের ITS-ইন-এ-বক্স
ওয়াইড ফিল্ড অফ ভিউ আইটিএস-ইন-এ-বক্স হলো একটি স্বয়ংক্রিয় সিস্টেম, যা ক্যামেরা আইটিএস-এ ওয়াইড ফিল্ড অফ ভিউ (WFoV) এবং রেগুলার ফিল্ড অফ ভিউ (RFoV) উভয় প্রকার ক্যামেরা সিস্টেম পরীক্ষা করার জন্য ডিজাইন করা হয়েছে।
ভেন্ডর টেস্ট স্যুট
হোস্ট কন্ট্রোলার আর্কিটেকচার
ভেন্ডর টেস্ট স্যুট (VTS) হোস্ট কন্ট্রোলার আর্কিটেকচার হলো VTS টেস্ট ফ্রেমওয়ার্কের এমন একটি আর্কিটেকচার যা এর ক্লাউড-ভিত্তিক টেস্ট-সার্ভিং সার্ভিসের সাথে সমন্বিত।
পরিষেবার নাম-সচেতন HAL পরীক্ষা
VTS সার্ভিস নেম-অ্যাওয়ার HAL টেস্টিং, যে ডিভাইসে VTS টেস্টগুলো চলছে তার উপর ভিত্তি করে একটি নির্দিষ্ট HAL ইনস্ট্যান্সের সার্ভিস নেম পেতে সহায়তা করে।
HAL পরীক্ষাযোগ্যতা যাচাই
VTS HAL পরীক্ষাযোগ্যতা যাচাই প্রক্রিয়ায় একটি রানটাইম পদ্ধতি অন্তর্ভুক্ত রয়েছে, যা ডিভাইস কনফিগারেশন ব্যবহার করে শনাক্ত করে যে ওই নির্দিষ্ট ডিভাইস টার্গেটের জন্য কোন VTS পরীক্ষাগুলো এড়িয়ে যাওয়া উচিত।
স্বয়ংক্রিয় পরীক্ষার পরিকাঠামো
স্বয়ংক্রিয় টেস্টিং পরিকাঠামো হলো একটি VTS পরিকাঠামো, যা AOSP জেনেরিক সিস্টেম ইমেজ (GSI) চালিত পার্টনার ডিভাইসগুলিতে VTS, CTS বা অন্যান্য টেস্টের স্বয়ংক্রিয় টেস্টিংয়ের জন্য ব্যবহৃত হয়।
ডিবাগিং
উন্নত টেলিমেট্রি
অ্যান্ড্রয়েডে, টেলিমেট্রি হলো ডিভাইস, অ্যান্ড্রয়েড সিস্টেম এবং অ্যাপস সম্পর্কে ব্যবহার ও ডায়াগনস্টিকস তথ্য স্বয়ংক্রিয়ভাবে সংগ্রহ করার একটি প্রক্রিয়া। অ্যান্ড্রয়েডের পূর্ববর্তী সংস্করণগুলিতে, টেলিমেট্রি স্ট্যাক সীমিত ছিল এবং সিস্টেমের নির্ভরযোগ্যতা এবং ডিভাইস বা অ্যাপের সমস্যাগুলি শনাক্ত ও সমাধান করার জন্য প্রয়োজনীয় তথ্য সংগ্রহ করতে পারত না। এর ফলে সমস্যাগুলির মূল কারণ শনাক্ত করা কঠিন, এমনকি অসম্ভবও হয়ে পড়ত।
অ্যান্ড্রয়েড ৯-এ statsd টেলিমেট্রি ফিচারটি অন্তর্ভুক্ত রয়েছে, যা আরও উন্নত ডেটা দ্রুত সংগ্রহ করার মাধ্যমে এই ঘাটতিটি পূরণ করে। statsd অ্যাপ ব্যবহার, ব্যাটারি ও প্রসেসের পরিসংখ্যান এবং ক্র্যাশের তথ্য সংগ্রহ করে। এই ডেটা বিশ্লেষণ করে পণ্য, হার্ডওয়্যার এবং পরিষেবার মানোন্নয়নে ব্যবহার করা হয়।
আরও বিস্তারিত তথ্যের জন্য, frameworks/base/cmds/statsd/ দেখুন।
নিরাপত্তা বৈশিষ্ট্য
অ্যাপ সাইনিং
v3 APK সিগনেচার স্কিমটি APK কী রোটেশন সমর্থন করে।
বায়োমেট্রিক সমর্থন
অ্যান্ড্রয়েড ৯-এ BiometricPrompt একটি পাবলিক ক্লাস অন্তর্ভুক্ত রয়েছে, যা অ্যাপগুলো ডিভাইস- এবং মোডালিটি-নিরপেক্ষভাবে বায়োমেট্রিক প্রমাণীকরণ সমর্থন সংহত করতে ব্যবহার করতে পারে। আপনার বায়োমেট্রিক্স স্ট্যাকে BiometricPrompt অন্তর্ভুক্ত করার বিষয়ে আরও তথ্যের জন্য, বায়োমেট্রিক্স দেখুন।
গতিশীল বিশ্লেষণ
অ্যান্ড্রয়েড ৯-এ আরও বেশি এক্সপ্লয়েট প্রশমন ও বিশ্লেষণ টুলের সমর্থন অন্তর্ভুক্ত রয়েছে।
নিয়ন্ত্রণ প্রবাহের অখণ্ডতা (CFI)
কন্ট্রোল ফ্লো ইন্টিগ্রিটি (CFI) একটি নিরাপত্তা ব্যবস্থা যা একটি কম্পাইল করা বাইনারির মূল কন্ট্রোল ফ্লো গ্রাফে পরিবর্তন নিষিদ্ধ করে, ফলে এই ধরনের আক্রমণ চালানো উল্লেখযোগ্যভাবে কঠিন হয়ে পড়ে।
কার্নেল সিএফআই
ডিফল্টরূপে সক্রিয় থাকা সিস্টেম সিএফআই (CFI) ছাড়াও, অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে কার্নেল কন্ট্রোল ফ্লো ইন্টিগ্রিটি (CFI)- এর সমর্থন অন্তর্ভুক্ত রয়েছে।
এনক্রিপশন
ফাইল-ভিত্তিক এনক্রিপশন
ফাইল-ভিত্তিক এনক্রিপশন (FBE) অ্যাডপ্টেবল স্টোরেজের সাথে কাজ করার জন্য আপডেট করা হয়েছে। নতুন ডিভাইসগুলোতে ফুল-ডিস্ক এনক্রিপশনের পরিবর্তে ফাইল-ভিত্তিক এনক্রিপশন ব্যবহার করা উচিত।
মেটাডেটা এনক্রিপশন
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে মেটাডেটা এনক্রিপশনের সুবিধা রয়েছে, যেখানে হার্ডওয়্যার সাপোর্ট বিদ্যমান। মেটাডেটা এনক্রিপশনের মাধ্যমে, বুট করার সময় উপস্থিত একটিমাত্র কী ফাইল-ভিত্তিক এনক্রিপশন ব্যবহার করে যেকোনো এনক্রিপ্ট না করা কন্টেন্টকে এনক্রিপ্ট করে।
কীস্টোর
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে কীমাস্টার ৪ অন্তর্ভুক্ত রয়েছে, যেটিতে এই বৈশিষ্ট্যগুলো আছে।
স্ট্রংবক্স
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে অ্যান্ড্রয়েড কীস্টোর কী-এর জন্য সমর্থন রয়েছে, যা একটি ভৌতভাবে পৃথক সিপিইউ-তে সংরক্ষিত ও ব্যবহৃত হয়। এই সিপিইউ বিশেষভাবে উচ্চ-নিরাপত্তার অ্যাপ্লিকেশন, যেমন এমবেডেড সিকিওর এলিমেন্ট (SE)- এর জন্য তৈরি। স্ট্রংবক্স কীমাস্টার হলো পৃথক সুরক্ষিত হার্ডওয়্যারে কীমাস্টার এইচএএল (HAL)-এর একটি বাস্তবায়ন। একটি স্ট্রংবক্সে রয়েছে:
- পৃথক সিপিইউ
- অবিচ্ছেদ্য সুরক্ষিত স্টোরেজ
- উচ্চ মানের সত্যিকারের র্যান্ডম নম্বর জেনারেটর
- টেম্পার-প্রতিরোধী প্যাকেজিং
- পার্শ্ব-চ্যানেল প্রতিরোধ
সুরক্ষিত কী আমদানি
Keymaster 4-এ নিরাপদে একটি কী ইম্পোর্ট করার জন্য, ডিভাইসের বাইরে তৈরি করা একটি কী-কে সেইসব অনুমোদনের বিবরণ দিয়ে এনক্রিপ্ট করা হয়, যা নির্ধারণ করে দেয় কী-টি কীভাবে ব্যবহার করা যাবে।
3DES সমর্থন
Keymaster 4-এ 3DES অন্তর্ভুক্ত রয়েছে, যা 3DES ব্যবহারকারী পুরোনো সিস্টেমগুলোর সাথে সামঞ্জস্যপূর্ণ।
সংস্করণ বাইন্ডিং
Treble-এর মডিউলার কাঠামোকে সমর্থন করতে এবং system.img ও boot.img এর মধ্যকার বন্ধন ভাঙতে, Keymaster 4 প্রতিটি পার্টিশনের জন্য আলাদা প্যাচ লেভেল রাখার উদ্দেশ্যে কী ভার্সন বাইন্ডিং মডেলটি পরিবর্তন করেছে। এর ফলে প্রতিটি পার্টিশন স্বাধীনভাবে আপডেট করা যায় এবং একই সাথে রোলব্যাক সুরক্ষাও বজায় থাকে।
অ্যান্ড্রয়েড সুরক্ষিত নিশ্চিতকরণ এপিআই
যেসব সমর্থিত ডিভাইসে অ্যান্ড্রয়েড ৯ ইনস্টল করা থাকে, সেগুলো ডেভেলপারদের অ্যান্ড্রয়েড প্রোটেক্টেড কনফার্মেশন এপিআই (Android Protected Confirmation API) ব্যবহার করার সুযোগ দেয়। এই এপিআই-এর মাধ্যমে, অ্যাপগুলো ConfirmationPrompt এর একটি ইনস্ট্যান্স ব্যবহার করে ব্যবহারকারীকে একটি প্রম্পট দেখাতে পারে, যেখানে তাদের একটি সংক্ষিপ্ত বিবৃতি অনুমোদন করতে বলা হয়। এই বিবৃতিটি একটি অ্যাপকে পুনরায় নিশ্চিত করতে সাহায্য করে যে, ব্যবহারকারী অর্থপ্রদানের মতো কোনো সংবেদনশীল লেনদেন সম্পন্ন করতে চান কি না।
SELinux
প্রতি-অ্যাপ SELinux স্যান্ডবক্স
অ্যাপ্লিকেশন স্যান্ডবক্সে নতুন সুরক্ষা ব্যবস্থা এবং টেস্ট কেস যুক্ত করা হয়েছে, যাতে অ্যান্ড্রয়েড ৯ ও তার পরবর্তী সংস্করণকে লক্ষ্য করে তৈরি সমস্ত নন-প্রিভিলেজড অ্যাপ স্বতন্ত্র SELinux স্যান্ডবক্স চালায়।
ট্রেবল SELinux পরিবর্তন
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে ট্রেবল এসইএলিনাক্স (Treble SELinux)-এর আপডেটগুলো এসইএলিনাক্স (SELinux) বিভাগের বিভিন্ন পৃষ্ঠায় নথিভুক্ত করা আছে।
বিক্রেতা শুরু
Vendor init একটি পৃথক SELinux ডোমেইন ব্যবহার করে ভেন্ডর-নির্দিষ্ট অনুমতিসহ /vendor কমান্ড চালানোর মাধ্যমে Treble সিস্টেম ও ভেন্ডরের মধ্যকার বিভাজনের ফাঁকটি পূরণ করে।
সিস্টেমের বৈশিষ্ট্য
অ্যান্ড্রয়েড ৯ system এবং vendor পার্টিশনের মধ্যে অপ্রয়োজনীয়ভাবে সিস্টেম প্রোপার্টি শেয়ার হওয়াকে সীমাবদ্ধ করে এবং শেয়ার করা সিস্টেম প্রোপার্টিগুলোর মধ্যে সামঞ্জস্য নিশ্চিত করার একটি পদ্ধতি প্রদান করে।
SELinux অ্যাট্রিবিউট পরীক্ষা
অ্যান্ড্রয়েড ৯-এ নতুন বিল্ড-টাইম টেস্ট অন্তর্ভুক্ত করা হয়েছে, যা নিশ্চিত করে যে নির্দিষ্ট স্থানের সমস্ত ফাইলে যথাযথ অ্যাট্রিবিউট রয়েছে। উদাহরণস্বরূপ, sysfs এর সমস্ত ফাইলে প্রয়োজনীয় sysfs_type অ্যাট্রিবিউটটি থাকে।
অডিও
উচ্চ-রেজোলিউশন অডিও প্রভাব
হাই-রেজোলিউশন অডিও ইফেক্টের আপডেটগুলোর মধ্যে রয়েছে ইফেক্ট প্রসেসিংকে int16 থেকে float ফরম্যাটে রূপান্তর করা এবং একই সাথে ক্লায়েন্ট আউটপুট ট্র্যাক, সর্বোচ্চ ক্লায়েন্ট/সার্ভার মেমরি ও মোট মিক্সড ট্র্যাকের সংখ্যা বৃদ্ধি করা।
ক্যামেরা
বাহ্যিক ইউএসবি ক্যামেরা
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলো স্ট্যান্ডার্ড অ্যান্ড্রয়েড ক্যামেরা২ এপিআই এবং ক্যামেরা এইচআইডিএল ইন্টারফেস ব্যবহার করে প্লাগ-এন্ড-প্লে ইউএসবি ক্যামেরা (অর্থাৎ, ওয়েবক্যাম) ব্যবহার সমর্থন করে।
গতি ট্র্যাকিং
ক্যামেরা ডিভাইসগুলো গতি শনাক্তকরণ ক্ষমতার বিজ্ঞাপন দিতে পারে।
একাধিক ক্যামেরা সমর্থন
মাল্টি-ক্যামেরা সাপোর্টের মধ্যে একই দিকে নির্দেশিত দুই বা ততোধিক ফিজিক্যাল ক্যামেরা ডিভাইস দ্বারা গঠিত একটি নতুন লজিক্যাল ক্যামেরা ডিভাইসের মাধ্যমে একাধিক ক্যামেরা ডিভাইসের জন্য এপিআই সাপোর্ট অন্তর্ভুক্ত রয়েছে।
সেশন প্যারামিটার
সেশন প্যারামিটার প্রয়োগ করার মাধ্যমে বিলম্ব কমানো সম্ভব, কারণ এটি ক্যামেরা ক্লায়েন্টদের ক্যাপচার সেশন শুরু করার পর্বের অংশ হিসেবে ব্যয়বহুল অনুরোধ প্যারামিটারগুলোর একটি উপসেট সক্রিয়ভাবে কনফিগার করার সুযোগ দেয়।
একক উৎপাদক, একাধিক ভোক্তা বাফার
সিঙ্গেল প্রডিউসার, মাল্টিপল কনজিউমার ক্যামেরা বাফার ট্রান্সপোর্ট হলো এমন একগুচ্ছ পদ্ধতি যা ক্যামেরা ক্লায়েন্টদের ক্যাপচার সেশন সক্রিয় থাকা অবস্থায় এবং ক্যামেরা স্ট্রিমিং চলমান থাকাকালীন গতিশীলভাবে আউটপুট সারফেস যোগ ও অপসারণ করার সুযোগ দেয়।
সংযোগ
কল এবং মেসেজিং
ডেটা পরিকল্পনা বাস্তবায়ন করুন
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলো সাবস্ক্রিপশনপ্ল্যান এপিআই (SubscriptionPlan API) ব্যবহার করে ডেটা প্ল্যান বাস্তবায়নকারী ক্যারিয়ারগুলোর জন্য উন্নততর সাপোর্ট প্রদান করে।
তৃতীয় পক্ষের কলিং অ্যাপ
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে এমন এপিআই (API) রয়েছে, যা থার্ড-পার্টি (3P) কলিং অ্যাপগুলোকে একই সাথে আসা ক্যারিয়ার কলগুলো পরিচালনা করতে এবং সিস্টেম কল লগে সেই কলগুলো নথিভুক্ত করার সুযোগ দেয়।
বাহক
বাহক শনাক্তকরণ
অ্যান্ড্রয়েড ৯-এ, AOSP ক্যারিয়ার শনাক্তকরণে সহায়তার জন্য একটি ক্যারিয়ার আইডি ডেটাবেস যুক্ত করেছে। এই ডেটাবেসটি ক্যারিয়ার শনাক্ত করার একটি সাধারণ উপায় প্রদান করার মাধ্যমে পুনরাবৃত্তিমূলক লজিক এবং খণ্ডিত অ্যাপ অভিজ্ঞতা হ্রাস করে।
eSIM
এমবেডেড সিম (eSIM বা eUICC) হলো সর্বাধুনিক প্রযুক্তি, যা মোবাইল ব্যবহারকারীদের কোনো ফিজিক্যাল সিম কার্ড ছাড়াই ক্যারিয়ার প্রোফাইল ডাউনলোড করতে এবং কোনো ক্যারিয়ারের পরিষেবা সক্রিয় করতে দেয়। অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে, অ্যান্ড্রয়েড ফ্রেমওয়ার্ক eSIM অ্যাক্সেস করার এবং eSIM-এ সাবস্ক্রিপশন প্রোফাইল পরিচালনা করার জন্য স্ট্যান্ডার্ড এপিআই (API) প্রদান করে। আরও তথ্যের জন্য দেখুন:
আইএমএস সেটিংসের জন্য মাল্টি-সিম সমর্থন
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে আইপি মাল্টিমিডিয়া সাবসিস্টেম (IMS)- এর ইউজার সেটিংসে কিছু উন্নতি আনা হয়েছে। এর ফলে, আপনি এখন সমস্ত সাবস্ক্রিপশনের জন্য এই সেটিংসগুলো শেয়ার করার পরিবর্তে, প্রতিটি সাবস্ক্রিপশনের জন্য আলাদাভাবে ভয়েসওভার এলটিই (VoLTE), ভিডিও কলিং এবং ওয়াই-ফাই কলিং সেট আপ করতে পারবেন।
সিম রাষ্ট্রীয় সম্প্রচার
Android 9 এবং এর পরবর্তী সংস্করণগুলিতে, Intent.ACTION_SIM_STATE_CHANGED অপ্রচলিত করা হয়েছে এবং কার্ডের অবস্থা ও কার্ড অ্যাপ্লিকেশনের অবস্থার জন্য দুটি পৃথক ব্রডকাস্ট যোগ করা হয়েছে: TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED এবং TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED ।
এই পরিবর্তনগুলোর ফলে, যে রিসিভারগুলোর শুধু কার্ড উপস্থিত আছে কিনা তা জানার প্রয়োজন, তাদের আর অ্যাপ্লিকেশন স্টেটের পরিবর্তন শোনার দরকার নেই, এবং যে রিসিভারগুলোর শুধু কার্ড অ্যাপ্লিকেশনগুলো প্রস্তুত আছে কিনা তা জানার প্রয়োজন, তাদেরও কার্ড স্টেটের পরিবর্তন শোনার দরকার নেই।
নতুন দুটি ব্রডকাস্ট @SystemApis ভিত্তিক এবং এগুলো স্থায়ী নয়। শুধুমাত্র READ_PRIVILEGED_PHONE_STATE পারমিশন থাকা রিসিভাররাই এই ব্রডকাস্টগুলো গ্রহণ করতে পারবে।
আপনি যখন ডিভাইসটি আনলক করেন, তখন ইন্টেন্টগুলো পুনরায় সম্প্রচার করা হয় না। যে রিসিভারগুলো আনলক করার আগে পাঠানো ব্রডকাস্টের উপর নির্ভর করে, তাদের হয় directBootAware ব্যবহার করতে হবে, অথবা ব্যবহারকারী আনলক করার পরে স্টেট কোয়েরি করতে হবে। TelephonyManager-এর সংশ্লিষ্ট API, getSimCardState() এবং getSimApplicationState() ব্যবহার করে স্টেটগুলো কোয়েরি করা যায়।
ওয়াই-ফাই
ক্যারিয়ার ওয়াই-ফাই
ক্যারিয়ার ওয়াই-ফাই ফিচারের মাধ্যমে ডিভাইসগুলো স্বয়ংক্রিয়ভাবে ক্যারিয়ার-পরিচালিত ওয়াই-ফাই নেটওয়ার্কে সংযুক্ত হতে পারে। স্টেডিয়াম বা পাতাল রেল স্টেশনের মতো অধিক ভিড়যুক্ত বা স্বল্প সেল কভারেজের এলাকায় ক্যারিয়ার ওয়াই-ফাই সংযোগ উন্নত করতে এবং ট্র্যাফিকের চাপ কমাতে সাহায্য করে।
MAC র্যান্ডমাইজেশন
MAC র্যান্ডমাইজেশন ডিভাইসগুলোকে বর্তমানে কোনো নেটওয়ার্কের সাথে সংযুক্ত না থাকা অবস্থায় নতুন নেটওয়ার্ক খোঁজার জন্য র্যান্ডম MAC অ্যাড্রেস ব্যবহার করতে দেয়। Android 9 এবং এর পরবর্তী সংস্করণগুলোতে, একটি ডেভেলপার অপশন চালু করে ডিভাইসটিকে Wi-Fi নেটওয়ার্কে সংযোগ করার সময় একটি র্যান্ডমাইজড MAC অ্যাড্রেস ব্যবহার করানো যায়।
স্বয়ংক্রিয়ভাবে ওয়াই-ফাই চালু করুন
যখন ‘স্বয়ংক্রিয়ভাবে ওয়াই-ফাই চালু করুন’ ফিচারটি সক্রিয় করা থাকে, তখন ডিভাইসটি যথেষ্ট উচ্চ আপেক্ষিক প্রাপ্ত সংকেত শক্তি সূচক (RSSI) সহ কোনো সংরক্ষিত ওয়াই-ফাই নেটওয়ার্কের কাছাকাছি এলেই ওয়াই-ফাই স্বয়ংক্রিয়ভাবে পুনরায় চালু হয়ে যায়।
ওয়াই-ফাই রাউন্ড ট্রিপ সময়
ওয়াই-ফাই রাউন্ড ট্রিপ টাইম (RTT) ডিভাইসগুলোকে অন্যান্য সাপোর্টিং ডিভাইসের দূরত্ব পরিমাপ করতে সাহায্য করে, সেগুলো অ্যাক্সেস পয়েন্ট (AP) হোক বা ওয়াই-ফাই অ্যাওয়্যার পিয়ার (যদি ডিভাইসটিতে ওয়াই-ফাই অ্যাওয়্যার সাপোর্ট থাকে)। এই ফিচারটি IEEE 802.11mc প্রোটোকলের উপর ভিত্তি করে তৈরি এবং এটি অ্যাপগুলোকে উন্নত লোকেশন নির্ভুলতা ও সচেতনতা ব্যবহার করতে সক্ষম করে।
ওয়াই-ফাই স্কোরিং উন্নতি
উন্নত ওয়াই-ফাই স্কোরিং মডেলগুলো দ্রুত ও নির্ভুলভাবে নির্ধারণ করে যে, কখন একটি ডিভাইসকে সংযুক্ত ওয়াই-ফাই নেটওয়ার্ক থেকে বেরিয়ে আসতে হবে বা নতুন কোনো ওয়াই-ফাই নেটওয়ার্কে প্রবেশ করতে হবে। এই মডেলগুলো সংযোগে কোনো ফাঁক না রেখে ব্যবহারকারীদের জন্য একটি নির্ভরযোগ্য ও নির্বিঘ্ন অভিজ্ঞতা প্রদান করে।
config.xml রিসোর্সগুলিতে থাকা RSSI মানগুলি পর্যালোচনা ও সমন্বয় করুন, বিশেষ করে নিম্নলিখিতগুলি:
-
config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz -
config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz -
config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz -
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
ওয়াই-ফাই STA/AP কনকারেন্সি
ওয়াই-ফাই STA/AP কনকারেন্সি হলো ডিভাইসগুলোর একই সাথে স্টেশন (STA) এবং অ্যাক্সেস পয়েন্ট (AP) মোডে কাজ করার ক্ষমতা। যেসব ডিভাইস ডুয়াল ব্যান্ড সাইমালটেনিয়াস (DBS) ওয়াই-ফাই সমর্থন করে, তাদের জন্য এটি এমন কিছু সুবিধা প্রদান করে, যেমন—ব্যবহারকারী যখন হটস্পট (SoftAP) চালু করতে চান, তখন STA ওয়াই-ফাই-এর কার্যক্রমে কোনো ব্যাঘাত ঘটে না।
ওয়াইফাই স্টেট মেশিনের উন্নতি
WifiStateMachine হলো প্রধান ক্লাস যা ওয়াই-ফাই কার্যকলাপ নিয়ন্ত্রণ করতে, ব্যবহারকারীর ইনপুট সমন্বয় করতে (অপারেটিং মোড: হটস্পট, স্ক্যান, কানেক্ট বা অফ), এবং ওয়াই-ফাই নেটওয়ার্কের কাজ (যেমন স্ক্যানিং বা কানেক্টিং) নিয়ন্ত্রণ করতে ব্যবহৃত হয়।
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে, ওয়াই-ফাই ফ্রেমওয়ার্ক কোড এবং WifiStateMachine এর বাস্তবায়ন নতুন করে ডিজাইন করা হয়েছে, যার ফলে কোডের আকার কমেছে, ওয়াই-ফাই নিয়ন্ত্রণ লজিক আরও সহজে বোঝা যাচ্ছে, নিয়ন্ত্রণের সূক্ষ্মতা উন্নত হয়েছে এবং ইউনিট টেস্টের পরিধি ও গুণমান বৃদ্ধি পেয়েছে।
মোটা দাগে, WifiStateMachine ওয়াই-ফাইকে চারটি অবস্থার যেকোনো একটিতে থাকতে দেয়:
- ক্লায়েন্ট মোড (সংযোগ এবং স্ক্যান করতে পারে)
- শুধুমাত্র স্ক্যান মোড
- সফটএপি মোড (ওয়াই-ফাই হটস্পট)
- নিষ্ক্রিয় (ওয়াই-ফাই সম্পূর্ণ বন্ধ)
প্রতিটি ওয়াই-ফাই মোডের সার্ভিস চালানোর জন্য ভিন্ন ভিন্ন প্রয়োজনীয়তা থাকে এবং এটিকে একটি সামঞ্জস্যপূর্ণ পদ্ধতিতে সেট আপ করা উচিত, যেখানে শুধুমাত্র এর কার্যক্রমের সাথে প্রাসঙ্গিক ইভেন্টগুলোই পরিচালনা করা হবে। নতুন এই বাস্তবায়নটি কোডকে সেই মোড-সম্পর্কিত ইভেন্টগুলোর মধ্যে সীমাবদ্ধ রাখে, যা ডিবাগিংয়ের সময় কমায় এবং জটিলতার কারণে নতুন বাগ তৈরির ঝুঁকি হ্রাস করে। মোডের কার্যকারিতার জন্য সুস্পষ্ট পরিচালনার পাশাপাশি, থ্রেড ম্যানেজমেন্টও একটি সামঞ্জস্যপূর্ণ পদ্ধতিতে পরিচালিত হয় এবং সিনক্রোনাইজেশনের একটি কৌশল হিসেবে অ্যাসিঙ্ক্রোনাস চ্যানেলের ব্যবহার বাদ দেওয়া হয়েছে।
ওয়াই-ফাই অনুমতি আপডেট
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলিতে, CHANGE_WIFI_STATE অ্যাপ পারমিশনটি ডিফল্টরূপে সক্রিয় থাকে। আপনি সেটিংস পেজে Settings > Apps & notifications > Special app access > Wi-Fi control-এ গিয়ে যেকোনো অ্যাপের জন্য এই পারমিশনটি নিষ্ক্রিয় করতে পারেন।
অ্যাপগুলোকে এমন পরিস্থিতি সামাল দিতে সক্ষম হতে হবে যেখানে CHANGE_WIFI_STATE অনুমতিটি দেওয়া নেই।
এই আচরণটি যাচাই করতে, রোবোইলেকট্রিক এবং ম্যানুয়াল পরীক্ষাগুলো চালান।
ম্যানুয়াল পরীক্ষার জন্য:
- সেটিংস > অ্যাপস ও নোটিফিকেশন > বিশেষ অ্যাপ অ্যাক্সেস > ওয়াই-ফাই কন্ট্রোল- এ যান।
- আপনার অ্যাপের জন্য অনুমতি নির্বাচন করুন এবং বন্ধ করুন।
- যাচাই করুন যে আপনার অ্যাপটি
CHANGE_WIFI_STATEপারমিশন না থাকার পরিস্থিতিটিও সামলাতে পারে।
WPS অবচয়
নিরাপত্তাজনিত সমস্যার কারণে, Android 9 এবং এর পরবর্তী সংস্করণগুলোতে WiFiManager এর Wi-Fi protected setup (WPS) ফিচারটি অপ্রচলিত এবং নিষ্ক্রিয় করা হয়েছে। তবে, WiFiDirect এখনও তার WPA সাপ্লিক্যান্টে WPS ব্যবহার করে।
গ্রাফিক্স
বাস্তবায়ন
ভুলকান ১.১ এপিআই
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলো ভলকান ১.১ গ্রাফিক্স এপিআই বাস্তবায়ন সমর্থন করে।
উইন্ডো ট্রানজিশন ট্রেসিংয়ের জন্য উইনস্কোপ টুল
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে উইন্ডো ট্রানজিশন ট্রেস করার জন্য উইনস্কোপ (WinScope) টুলটি অন্তর্ভুক্ত রয়েছে। ট্রানজিশন চলাকালীন এবং তার পরে উইন্ডো ম্যানেজারের অবস্থা রেকর্ড ও বিশ্লেষণ করার জন্য উইনস্কোপ প্রয়োজনীয় পরিকাঠামো এবং টুল সরবরাহ করে। এটি উইন্ডো ট্রানজিশন রেকর্ড করতে এবং ধাপে ধাপে অগ্রসর হতে সাহায্য করে, এবং একই সাথে উইন্ডো ম্যানেজারের সমস্ত প্রাসঙ্গিক অবস্থা একটি ট্রেস ফাইলে রেকর্ড করে রাখে। এই ডেটা ব্যবহার করে আপনি ট্রানজিশনটি পুনরায় চালাতে এবং ধাপে ধাপে অগ্রসর হতে পারেন।
WinScope টুলের সোর্স কোড platform/development/tools/winscope -এ অবস্থিত।
মিথস্ক্রিয়া
গাড়ির অডিও
অটোমোটিভ অডিও, যানবাহন-সম্পর্কিত অ্যান্ড্রয়েড বাস্তবায়নের অডিও আর্কিটেকচার বর্ণনা করে।
নিউরাল নেটওয়ার্কস (NN) HAL বিভিন্ন অ্যাক্সিলারেটরের একটি অ্যাবস্ট্রাকশন সংজ্ঞায়িত করে। এই অ্যাক্সিলারেটরগুলোর ড্রাইভারগুলোকে অবশ্যই এই HAL-এর সাথে সঙ্গতিপূর্ণ হতে হবে।
যানবাহন এইচএএল
যানবাহনের বৈশিষ্ট্য অংশে গাড়ির HAL ইন্টারফেসে করা পরিবর্তনগুলো বর্ণনা করা হয়েছে।
জিএনএসএস স্যাটেলাইট নির্বাচন
নতুন গ্লোবাল নেভিগেশন স্যাটেলাইট সিস্টেম (GNSS) HAL (v1.1+) নিয়ে কাজ করার সময়, অ্যান্ড্রয়েড ফ্রেমওয়ার্ক অ্যান্ড্রয়েড সেটিংস পর্যবেক্ষণ করে। পার্টনাররা গুগল প্লে সার্ভিসেস বা অন্যান্য সিস্টেম আপডেটের মাধ্যমে এই সেটিংস পরিবর্তন করতে পারেন। এই সেটিংস GNSS HAL-কে জানিয়ে দেয় যে নির্দিষ্ট কোনো GNSS স্যাটেলাইট ব্যবহার করা উচিত নয়। ক্রমাগত GNSS স্যাটেলাইট বা কনস্টেলেশন ত্রুটির ক্ষেত্রে, অথবা ভিন্ন টাইম সিস্টেম ব্যবহারকারী কনস্টেলেশন মিশ্রণ এবং লিপ-সেকেন্ড, দিন বা সপ্তাহ সংখ্যার পরিবর্তনের মতো বাহ্যিক ঘটনার কারণে উদ্ভূত GNSS HAL বাস্তবায়ন সংক্রান্ত সমস্যায় আরও দ্রুত প্রতিক্রিয়া জানাতে এটি সহায়ক হতে পারে।
জিএনএসএস হার্ডওয়্যার মডেল
অ্যান্ড্রয়েড ৯-এ, GNSS HAL সংস্করণ ১.১ বা তার উচ্চতর সংস্করণ প্ল্যাটফর্মে হার্ডওয়্যার এপিআই (API) সম্পর্কিত তথ্য পাঠাতে পারে। প্ল্যাটফর্মটিকে IGnssCallback ইন্টারফেসটি ইমপ্লিমেন্ট করতে হবে এবং HAL-এর একটি হ্যান্ডেল পাস করতে হবে। GNSS HAL LocationManager#getGnssHardwareModelName() মেথডের মাধ্যমে হার্ডওয়্যার মডেলের তথ্য পাঠায়। ডিভাইস নির্মাতাদের উচিত, যেখানে সম্ভব, এই তথ্য সরবরাহ করার জন্য তাদের GNSS HAL প্রোভাইডারদের সাথে কাজ করা।
অনুমতি
স্বেচ্ছাধীন অ্যাক্সেস নিয়ন্ত্রণ আপডেটগুলি কনফিগার করা
ডিসক্রেশনারি অ্যাক্সেস কন্ট্রোল (DAC) কনফিগার করার মধ্যে ফাইল সিস্টেমের সক্ষমতা বাড়ানোর জন্য অ্যান্ড্রয়েড আইডি (AID) মেকানিজমের আপডেট অন্তর্ভুক্ত রয়েছে।
বিশেষাধিকারপ্রাপ্ত অ্যাপের অনুমতি হোয়াইটলিস্টিং করা
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে, যদি কোনো পারমিশন বাতিল করার প্রয়োজন হয়, তাহলে পূর্ববর্তী সংস্করণগুলোতে ব্যবহৃত permission ট্যাগের পরিবর্তে deny-permission ট্যাগ ব্যবহার করার জন্য XML ফাইলটি সম্পাদনা করুন।
ডেটা
ব্যান্ডউইথ অনুমানের উন্নতি
অ্যান্ড্রয়েড ৯ ব্যান্ডউইথ অনুমানের জন্য উন্নততর সমর্থন প্রদান করে। অ্যান্ড্রয়েড অ্যাপগুলো উপলব্ধ ডেটা ব্যান্ডউইথ ব্যবহার করতে পারলে, ভিডিও কল এবং ভিডিও স্ট্রিমিংয়ের জন্য আরও উপযুক্ত রেজোলিউশন নির্ধারণ করতে পারে।
অ্যান্ড্রয়েড ৬.০ বা তার উচ্চতর সংস্করণে চালিত ডিভাইসগুলিতে, কোনো সেলুলার নেটওয়ার্কের ব্যান্ডউইথের আনুমানিক হিসাব জানতে চাইলে কলার ConnectivityManager.requestBandwidthUpdate() কল করে, এবং ফ্রেমওয়ার্কটি একটি আনুমানিক ডাউনলিঙ্ক ব্যান্ডউইথ প্রদান করতে পারে ।
কিন্তু 9 বা তার উচ্চতর সংস্করণে চালিত ডিভাইসগুলিতে, আনুমানিক ব্যান্ডউইথে উল্লেখযোগ্য পরিবর্তন হলে onCapabilitiesChanged() কলব্যাকটি স্বয়ংক্রিয়ভাবে চালু হয়, এবং requestBandwidthUpdate() কল করা একটি নো-অপ (no-op) হয়; এর সাথে সম্পর্কিত getLinkDownstreamBandwidthKbps() এবং getLinkUpstreamBandwidthKbps() ফাংশনগুলি ফিজিক্যাল লেয়ার থেকে প্রাপ্ত আপডেট করা তথ্য দিয়ে পূরণ হয়ে যায়।
এছাড়াও, ডিভাইসগুলো ServiceState.getCellBandwidths() এর মাধ্যমে LTE সেল ব্যান্ডউইথ পরীক্ষা করতে পারে। এর ফলে অ্যাপ্লিকেশনগুলো একটি নির্দিষ্ট সেলে কী পরিমাণ ব্যান্ডউইথ (ফ্রিকোয়েন্সি) উপলব্ধ আছে তা নির্ধারণ করতে পারে। সেল ব্যান্ডউইথের তথ্য একটি লুকানো মেনুর মাধ্যমে পাওয়া যায়, যাতে ফিল্ড টেস্টাররা সবচেয়ে সাম্প্রতিক তথ্য যাচাই করতে পারেন।
eBPF ট্র্যাফিক পর্যবেক্ষণ
eBPF নেটওয়ার্ক ট্র্যাফিক টুলটি সর্বশেষ ডিভাইস বুট হওয়ার পর থেকে সেটির নেটওয়ার্ক ব্যবহার নিরীক্ষণের জন্য কার্নেল এবং ইউজার স্পেস ইমপ্লিমেন্টেশনের একটি সমন্বয় ব্যবহার করে। এই টুলটি ডিভাইসের অবস্থার উপর নির্ভর করে অ্যাপগুলোকে নেটওয়ার্ক অ্যাক্সেস থেকে ব্লক করার জন্য সকেট ট্যাগিং, ফোরগ্রাউন্ড/ব্যাকগ্রাউন্ড ট্র্যাফিক পৃথকীকরণ এবং প্রতি-ইউআইডি ফায়ারওয়ালের মতো অতিরিক্ত কার্যকারিতা প্রদান করে।
নিম্নতর এপিআই-তে পুনরুদ্ধার করুন
ডিভাইসগুলো এখন অপারেটিং সিস্টেমের ভবিষ্যৎ সংস্করণ থেকে রিস্টোর করতে পারবে। এটি বিশেষ করে তখন কাজে আসে যখন ব্যবহারকারীরা তাদের ফোন আপগ্রেড করার পর তা হারিয়ে ফেলেন বা ভেঙে ফেলেন।
যদি কোনো OEM সিস্টেম প্যাকেজগুলোর (অ্যান্ড্রয়েড, সিস্টেম, সেটিংস) কোনোটির জন্য ব্যাকআপ এজেন্ট পরিবর্তন করে, তবে সেই এজেন্টগুলোর উচিত প্ল্যাটফর্মের উচ্চতর সংস্করণে তৈরি করা ব্যাকআপ সেটগুলো ক্র্যাশ না করে এবং অন্তত কিছু ডেটা পুনরুদ্ধার করে রিস্টোর করার ক্ষমতা থাকা।
কোনো নির্দিষ্ট ব্যাকআপ ডেটার অবৈধ মানগুলো যাচাই করতে এবং শুধুমাত্র বৈধ ডেটা পুনরুদ্ধার করতে একটি ভ্যালিডেটর ব্যবহার করার কথা বিবেচনা করুন, যেমনটি core/java/android/provider/SettingsValidators.java তে দেখানো হয়েছে।
এই ফিচারটি ডিফল্টরূপে চালু থাকে। ভবিষ্যতের সংস্করণ থেকে রিস্টোর করার জন্য SettingsBackupAgent সাপোর্ট Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION এর মাধ্যমে বন্ধ করা যেতে পারে। অতিরিক্ত কোনো বাস্তবায়নের প্রয়োজন নেই, যদি না ডিভাইস প্রস্তুতকারক ROM-এ অন্তর্ভুক্ত কোনো ব্যাকআপ এজেন্টকে সম্প্রসারিত করে (অথবা একটি কাস্টম এজেন্ট যোগ করে)।
এই ফিচারটি প্ল্যাটফর্মের ভবিষ্যৎ সংস্করণগুলো থেকে সিস্টেম রিস্টোর করার সুযোগ দেয়; তবে, এটা ধরে নেওয়া যুক্তিসঙ্গত যে রিস্টোর করা ডেটা সম্পূর্ণ হবে না। নিম্নলিখিত নির্দেশাবলী নিম্নলিখিত ব্যাকআপ এজেন্টগুলোর ক্ষেত্রে প্রযোজ্য:
PackageManagerBackupAgent ফরম্যাট ভার্সনিং-এর মাধ্যমে ব্যাকআপ ডেটার ভবিষ্যৎ সংস্করণগুলোকে সমর্থন করে; এখানকার এক্সটেনশনগুলোকে অবশ্যই বর্তমান রিস্টোর কোডের সাথে সামঞ্জস্যপূর্ণ হতে হবে অথবা ক্লাসের নির্দেশাবলী অনুসরণ করতে হবে, যার মধ্যে যথাযথ কনস্ট্যান্টগুলোর মান পরিবর্তন করাও অন্তর্ভুক্ত।
SystemBackupAgent অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে
restoreAnyVersion = falseনির্দিষ্ট করে। এটি API-এর উচ্চতর সংস্করণগুলো থেকে রিস্টোর সমর্থন করে না।Android 9 এবং তার পরবর্তী সংস্করণগুলিতে SettingsBackupAgent-এর জন্য
restoreAnyVersion = trueনির্দিষ্ট করা থাকে। ভ্যালিডেটরের মাধ্যমে আংশিক সমর্থন পাওয়া যায়। টার্গেট OS-এ কোনো সেটিংয়ের জন্য ভ্যালিডেটর থাকলে, সেটি উচ্চতর API সংস্করণ থেকেও পুনরুদ্ধার করা যেতে পারে। যেকোনো সেটিং যোগ করার সময় তার ভ্যালিডেটরটিও সাথে রাখতে হবে। বিস্তারিত জানতে ক্লাসটি দেখুন।ROM-এ অন্তর্ভুক্ত যেকোনো কাস্টম ব্যাকআপ এজেন্টের উচিত, ব্যাকআপ ডেটা ফরম্যাটে কোনো অসঙ্গত পরিবর্তন করা হলে তার ভার্সন কোড বাড়িয়ে নেওয়া এবং যদি তাদের এজেন্ট কোডের ভবিষ্যৎ কোনো ভার্সনের ব্যাকআপ ডেটা নিয়ে কাজ করার জন্য প্রস্তুত না থাকে, তবে
restoreAnyVersion = false(ডিফল্ট) নিশ্চিত করা।
উদ্যোগ
পরিচালিত প্রোফাইল উন্নতি
ম্যানেজড প্রোফাইলের ইউএক্স (UX) পরিবর্তনগুলো ব্যবহারকারীদের জন্য প্রোফাইলটি শনাক্ত করা, অ্যাক্সেস করা এবং নিয়ন্ত্রণ করা আরও সহজ করে তোলে।
OTA বিরতি দিন
একটি নতুন @SystemApi ডিভাইস মালিকদের নিরাপত্তা আপডেট সহ OTA আপডেটগুলি অনির্দিষ্টকালের জন্য স্থগিত করার সুযোগ দেয়।
কর্মক্ষমতা
স্বাস্থ্য ২.০
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে android.hardware.health HAL 2.0 অন্তর্ভুক্ত রয়েছে, যা health@1.0 HAL-এর একটি প্রধান সংস্করণ আপগ্রেড। আরও তথ্যের জন্য এই পৃষ্ঠাগুলো দেখুন:
এপিকে ক্যাশিং সমাধান
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে একটি APK ক্যাশিং সমাধান রয়েছে, যা A/B পার্টিশন সমর্থনকারী ডিভাইসে আগে থেকে লোড করা অ্যাপগুলো দ্রুত ইনস্টল করতে সাহায্য করে। OEM-রা নতুন A/B পার্টিশনযুক্ত ডিভাইসগুলোর বেশিরভাগ ক্ষেত্রে খালি B পার্টিশনে সংরক্ষিত APK ক্যাশে প্রি-লোড এবং জনপ্রিয় অ্যাপগুলো রাখতে পারে, যা ব্যবহারকারীর কোনো ডেটা স্পেসকে প্রভাবিত করে না।
প্রোফাইল-নির্দেশিত অপ্টিমাইজেশন
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে ব্লুপ্রিন্ট বিল্ড রুল থাকা নেটিভ অ্যান্ড্রয়েড মডিউলগুলোতে ক্ল্যাং-এর প্রোফাইল-গাইডেড অপটিমাইজেশন (PGO) ব্যবহার করা সমর্থন করে।
রাইট-অহেড লগিং
SQLiteDatabase-এর কম্প্যাটিবিলিটি রাইট-অহেড লগিং (WAL) নামক একটি বিশেষ মোড একটি ডাটাবেসকে journal_mode=WAL ব্যবহার করার সুযোগ দেয়, এবং একই সাথে প্রতি ডাটাবেসে সর্বাধিক একটি সংযোগ বজায় রাখে।
বুট টাইম
অ্যান্ড্রয়েড ৯ বুট টাইম অপটিমাইজেশনে পরিবর্তন আনে, যা 'বুট টাইম অপটিমাইজ করা' অংশে বর্ণনা করা হয়েছে।
শক্তি
পটভূমির সীমাবদ্ধতা
অ্যান্ড্রয়েড ৯ এবং এর পরবর্তী সংস্করণগুলোতে ব্যাকগ্রাউন্ড বিধিনিষেধ অন্তর্ভুক্ত রয়েছে, যা ব্যবহারকারীদের ব্যাটারির শক্তি খরচকারী অ্যাপগুলোকে সীমাবদ্ধ করার সুযোগ দেয়। সিস্টেমটি এমন অ্যাপগুলো নিষ্ক্রিয় করার পরামর্শও দিতে পারে, যেগুলো ডিভাইসের স্বাস্থ্যের ওপর নেতিবাচক প্রভাব ফেলছে।
ব্যাটারিবিহীন ডিভাইস
পূর্ববর্তী সংস্করণগুলোর তুলনায় অ্যান্ড্রয়েড ৯ ব্যাটারিবিহীন ডিভাইসগুলোকে আরও সুন্দরভাবে পরিচালনা করে। অ্যান্ড্রয়েড ৯ ব্যাটারিবিহীন ডিভাইসগুলোর জন্য এমন কোড সরিয়ে দিয়েছে, যা ডিফল্টভাবে ধরে নিত যে একটি ব্যাটারি উপস্থিত আছে, ১০০% চার্জ করা আছে এবং এর থার্মিস্টরের তাপমাত্রা স্বাভাবিক থাকায় ডিভাইসটি ভালো অবস্থায় রয়েছে।