অ্যান্ড্রয়েড ১৬ কেবি পেজ: আসল প্রভাব এবং আপনার অ্যাপ কীভাবে প্রস্তুত করবেন

সর্বশেষ আপডেট: 23 সেপ্টেম্বর, 2025
  • অ্যান্ড্রয়েড ১৫ ১৬ কেবি পৃষ্ঠা সহ ডিভাইসগুলিকে সক্ষম করে এবং কর্মক্ষমতা উন্নত করে।
  • যদি আপনার অ্যাপ .so ব্যবহার করে, তাহলে ELF এবং ZIP পুনরায় কম্পাইল করুন এবং 16 KB তে সারিবদ্ধ করুন।
  • এমুলেটর/ডিভাইস ১৬ কেবিতে পরীক্ষা করুন এবং ৪ কেবি অনুমানগুলি সরিয়ে ফেলুন।
  • ১ নভেম্বর, ২০২৫ থেকে, গুগল প্লেতে ১৬ কেবি সাপোর্টের প্রয়োজন হবে।

অ্যান্ড্রয়েড ১৬ কেবি

যদি আপনি এই বার্তাটি দেখে থাকেন যে অ্যান্ড্রয়েডে ১৬ কেবি মেমরি পেজ এমুলেটরে অথবা গুগল প্লে কনসোলে, আপনি একা নন। এটি একটি প্রযুক্তিগত পরিবর্তন যার প্রকৃত প্রভাব অভিনয় এবং মধ্যে অ্যান্ড্রয়েড ১৫ দিয়ে শুরু হওয়া অ্যাপ প্রকাশ করা, তাই এটি কী, কেন এটি করা হয় এবং আপনার বিল্ডগুলিকে কীভাবে অভিযোজিত করা যায় তা বোঝা একটি ভালো ধারণা।

সহজ কথায়, অ্যান্ড্রয়েড কনফিগার করা ডিভাইসগুলির দরজা খুলে দেয় ১৬ কিলোবাইট পৃষ্ঠার আকার (৪ কেবি ছাড়াও), যা দ্রুত অ্যাপ লঞ্চ, কম বিদ্যুৎ খরচ এবং আরও প্রতিক্রিয়াশীল সিস্টেমে রূপান্তরিত করতে পারে। অবশ্যই, যদি আপনার অ্যাপটি সংহত হয় নেটিভ কোড (.so), আপনাকে সঠিকভাবে পুনরায় কম্পাইল এবং সারিবদ্ধ করতে হবে, নাহলে Google Play তে ইনস্টলেশন ত্রুটি এবং ক্র্যাশের ঝুঁকি থাকবে।

পৃষ্ঠার আকার বলতে কী বোঝায় এবং অ্যান্ড্রয়েড ১৫ এর সাথে কী পরিবর্তন হচ্ছে?

পৃষ্ঠার আকার হল মৌলিক একক যার সাহায্যে অপারেটিং সিস্টেম RAM পরিচালনা করেঐতিহাসিকভাবে, অ্যান্ড্রয়েড 4KB এর জন্য অপ্টিমাইজ করা হয়েছিল কারণ এটি ডিভাইস এবং কার্নেলগুলিতে সবচেয়ে সাধারণ ছিল, যখন অনেক ARM CPU ইতিমধ্যেই 16KB সমর্থন করে। অ্যান্ড্রয়েড 15 এর সাথে, AOSP এর জন্য সমর্থন যোগ করে ১৬ কেবি ডিভাইসে কম্পাইল এবং চালানো, এবং ব্যবহারকারীর স্থানে 16KB ELF সারিবদ্ধকরণ প্রবর্তন করে যা 4KB এবং 16KB কার্নেলের সাথে কাজ করে (android14-6.1 অনুসারে)।

অ্যান্ড্রয়েডের জন্য অ্যাপ ম্যানেজার
সম্পর্কিত নিবন্ধ:
অ্যাপ ম্যানেজার: আপনার অ্যান্ড্রয়েড অ্যাপ পরিচালনার নির্দেশিকা

এই বিকল্পটি সর্বদা ডিফল্টরূপে সক্রিয় থাকে না, তবে এটি হিসাবে উপলব্ধ ডেভেলপার মোড এবং এমুলেটর মধ্যে OEM এবং ডেভেলপারদের জন্য পরিবর্তনের জন্য প্রস্তুত থাকা। ভবিষ্যতে, নির্মাতারা যত বেশি RAM যোগ করবে, ততই সম্ভবত ১৬ কেবি গ্রহণ বৃদ্ধি করুন (এবং সম্ভবত আরও বড় আকারের)।

Google দ্বারা পরিমাপ করা পারফরম্যান্স সুবিধা

১৬ কেবি গ্রহণ করলে মেমোরিতে সামান্য গড় বৃদ্ধি পায়, কিন্তু পদ্ধতিগত এবং অ্যাপের উন্নতিঅ্যান্ড্রয়েড ১৫ এর প্রাথমিক পরীক্ষায় দেখা গেছে:

  • দ্রুত অ্যাপ লঞ্চ: গড়ে ৩.১৬%, নির্দিষ্ট ক্ষেত্রে ৩০% পর্যন্ত।
  • লঞ্চের সময় কম খরচ: গড় হ্রাস ৪.৫৬%।
  • দ্রুততর ক্যামেরা: গড়ে ৪.৪৮% দ্রুত গরম শুরু হয় এবং ৬.৬০% দ্রুত ঠান্ডা শুরু হয়।
  • সিস্টেম বুট: ~৮% উন্নতি (প্রায় ৯৫০ মিলিসেকেন্ড)।

কিছু বাহ্যিক বিশ্লেষণ বলে যে মোট লাভ ৫-১০% ~৯% বেশি ভৌত ​​মেমোরি খরচ হবে, যদিও প্রকৃত ফলাফল ডিভাইস এবং অ্যাপ অনুসারে পরিবর্তিত হবে। যাই হোক না কেন, বর্তমান পরিসরে আরও বেশি RAM উপলব্ধ থাকলে, ১৬ KB-তে লাফিয়ে মেমোরি অ্যাকাউন্টিং এবং সবকিছু আরও সুচারুভাবে চলতে সাহায্য করে।

আমার অ্যাপ কি প্রভাবিত হয়েছে?

দ্রুত নিয়ম: যদি আপনার অ্যাপটি ১০০% হয় জাভা/কোটলিন (লাইব্রেরি এবং SDK সহ), ইতিমধ্যেই 16KB সমর্থন করে। তবে, কোনও সমস্যা দেখা দিলে 16KB পরিবেশে এটি পরীক্ষা করা ভালো। অপ্রত্যাশিত রিগ্রেশন.

যদি আপনার প্রকল্পটি নেটিভ C/C++ কোড (NDK) ব্যবহার করে, তাহলে এর সাথে লিঙ্ক করুন SDK গুলি যার মধ্যে .so অন্তর্ভুক্ত, গেম ইঞ্জিন বা বহিরাগত কম্পাইলার যা স্থানীয় লাইব্রেরিগুলিকে অন্তর্ভুক্ত করে, আপনাকে করতে হবে পুনরায় কম্পাইল এবং সারিবদ্ধ করুন ১৬ কিলোবাইটের জন্য। এটি সাধারণত SQLCipher, Unity/Unreal এর মতো ইঞ্জিন, অথবা তৃতীয় পক্ষের নেটিভ SDK সহ অ্যাপগুলির ক্ষেত্রে প্রযোজ্য।

আপনি নেটিভ ব্যবহার করেন কিনা এবং ১৬ কেবি পূরণ করেন কিনা তা কীভাবে জানবেন

অ্যান্ড্রয়েড ১৬ কেবি পৃষ্ঠা

অ্যান্ড্রয়েড স্টুডিওতে APK বিশ্লেষক

অ্যান্ড্রয়েড স্টুডিও খুলুন এবং ব্যবহার করুন বিল্ড → APK বিশ্লেষণ করুন... একটি APK পরীক্ষা করতে, lib/ এ নেভিগেট করুন এবং .so ফাইলগুলি সন্ধান করুন; যদি সেগুলি বিদ্যমান থাকে, তাহলে আপনার অ্যাপ স্থানীয় ব্যবহারপ্যানেলটি সতর্কতা প্রদর্শন করে শ্রেণীবিন্যাস যদি কোন লাইব্রেরি থাকে ১৬ কেবি মেনে চলে না.

এছাড়াও, অ্যান্ড্রয়েড স্টুডিও অন্তর্ভুক্ত করে স্বয়ংক্রিয় চেক: লিন্ট নেটিভ লাইব্রেরিগুলিকে 16KB-তে আনঅ্যালাইনড হিসেবে চিহ্নিত করে এবং টুলগুলি নিজেই নন-কম্প্লাইন্ট APK বা প্রি-বিল্টের সমস্যাগুলিকে চিহ্নিত করে।

ELF সারিবদ্ধতা পরীক্ষা করার জন্য অফিসিয়াল স্ক্রিপ্ট

লিনাক্স বা ম্যাকোসে আপনি স্ক্রিপ্টটি ব্যবহার করতে পারেন চেক_এলফ_অ্যালাইনমেন্ট.শ একটি APK পার্স করতে এবং প্রতিটি .so কে ALIGNED বা UNILIGNED (arm64-v8a এবং x86_64) হিসেবে লেবেল করতে:

./check_elf_alignment.sh APK_NAME.apk

যদি কোন লাইব্রেরি বের হয় অ-সংলগ্ন, আপনি করতে হবে আপনার প্যাকেজিং আপডেট করুন, আপনার অ্যাপটি পুনরায় কম্পাইল করুন এবং পরীক্ষাগুলি পুনরাবৃত্তি করুন। এটি একটি দ্রুত এবং কার্যকর উপায় অসম্মতি সনাক্ত করা Play তে আপলোড করার আগে।

কমান্ড-লাইন টুল ব্যবহার করে যাচাইকরণ

SDK ম্যানেজার থেকে Build Tools ≥ 35.0.0 এবং একটি সাম্প্রতিক NDK ইনস্টল করুন। APK বের করুন এবং .so ফাইলগুলি সনাক্ত করুন। lib /, এবং প্রতিটির জন্য কার্যকর করুন:

readelf -l <SHARED_OBJECT_FILE> | grep LOAD

আউটপুটে, লোডিং সেগমেন্টগুলি দেখাচ্ছে কিনা তা পরীক্ষা করুন সারিবদ্ধ 214. যদি তুমি ২টি দেখতে পাও১৩, ২**১২ বা তার কম, সেই লাইব্রেরি সারিবদ্ধ নয় ১৬ কিলোবাইটের জন্য। অবশেষে, আপনার APK-তে zipalign চালান:

zipalign -c -P 16 -v 4 APK_NAME.apk

যদি এটি 'দিয়ে শেষ হয়যাচাইকরণ সফল হয়েছে', APK হল ১৬ কিলোবাইটে জিপ সারিবদ্ধ করা হয়েছে সঠিকভাবে, আনকম্প্রেসড .so বিতরণ করার সময় 16KB ডিভাইসের জন্য মূল প্রয়োজনীয়তা।

১৬ কিলোবাইট পর্যন্ত কম্পাইল এবং প্যাকেজ

আপডেট প্যাকেজিং: AGP 8.5.1 বা তার বেশি

আনকম্প্রেসড নেটিভ লাইব্রেরি সহ অ্যাপগুলিতে, 16KB ডিভাইসগুলির জন্য APK থাকা প্রয়োজন ১৬KB জিপ সীমানার সাথে সারিবদ্ধপ্রস্তাবিত উপায় হল অ্যান্ড্রয়েড গ্রেডল প্লাগইন ব্যবহার করা 8.5.1 বা তার পরে, যা এই সারিবদ্ধকরণটি স্বয়ংক্রিয়ভাবে প্রয়োগ করে। এটি সবচেয়ে শক্তিশালী বিকল্প Play থেকে নির্ভরযোগ্য ইনস্টলেশন.

AGP 8.3–8.5 এর ব্যাপারে সতর্ক থাকুন: যদিও স্থানীয়ভাবে এটি ভালো চলছে বলে মনে হচ্ছে, বান্ডেলটুল ডিফল্টভাবে জিপ-অ্যালাইন করে না। এবং অ্যাপ বান্ডেলের আউটপুট ভুলভাবে সারিবদ্ধ হতে পারে এবং ইনস্টল করতে ব্যর্থ হতে পারে। যদি আপনি এখনও 8.5.1 এ আপগ্রেড করতে না পারেন, তাহলে একটি অস্থায়ী সমাধান আছে: বান্ডলিং সংকুচিত jniLibs.

// Groovy
android {
  packagingOptions {
    jniLibs {
      useLegacyPackaging true
    }
  }
}

// Kotlin DSL
android {
  packaging {
    jniLibs {
      useLegacyPackaging = true
    }
  }
}

অনুগ্রহ করে মনে রাখবেন যে .so কম্প্রেস করার সময়, ইনস্টলারকে অবশ্যই এক্সট্র্যাক্ট এবং কপি করুন লাইব্রেরি, যা ডিস্কের ব্যবহার বাড়ায় এবং থ্রুপুট রেট বাড়াতে পারে ছোট স্থানের ব্যর্থতামৌলিক সমাধানটি এখনও স্থানান্তরিত করা বাকি আছে এজিপি ≥ ৮.৫.১.

ELF সারিবদ্ধকরণ ১৬ KB: NDK এবং পতাকা

১৬KB ডিভাইসের জন্য প্রয়োজন যে তোমার .so এর ELF অংশগুলি ১৬ কিলোবাইট পর্যন্ত সারিবদ্ধ। সবচেয়ে ভালো রুট হল ব্যবহার করা NDK r28 বা তার বেশি, যা ডিফল্টরূপে 16 KB দিয়ে কম্পাইল করে।

বিরূদ্ধে এনডিকে আর 27 আপনাকে ফ্ল্যাগের মাধ্যমে ইনলাইনিং সক্ষম করতে হবে (ndk-build, CMake/Gradle, অথবা লিঙ্কারে বিকল্পটি পাস করে)। একাধিক টুলচেইন সহ বিল্ডগুলির জন্য, আপনি জোর করে লিঙ্ক করতে পারেন:

-Wl,-z,max-page-size=16384

বিরূদ্ধে NDK r26 বা তার আগের সাপোর্ট নিরুৎসাহিত করা হচ্ছে; শেষ অবলম্বন হিসেবে, 16KB বিকল্পগুলি ব্যবহার করে ndk-build/CMake টিউন করুন। যদি আপনি ব্যবহার করেন NDK r22 বা তার আগের, যোগ করার প্রয়োজন হতে পারে সাধারণ-পৃষ্ঠা-আকার=১৬৩৮৪ ld/lld-এ ঐতিহাসিক বাগের কারণে; ELF-তে অন্তর্ভুক্ত থাকলে এই সমাধানটি কাজ করে .relro_প্যাডিং (LLD ১৮+)। তবুও, যত তাড়াতাড়ি সম্ভব মাইগ্রেট করা বাঞ্ছনীয় r27/r28.

যদি আপনি গতিশীলভাবে একটি পুরাতন libc++_shared.so (r26 বা তার আগের নন-অ্যালাইনড 16KB), আপনার অ্যাপটি 16KB তে ইনস্টল হবে না। আপনাকে একটি সাম্প্রতিক NDK তে মাইগ্রেট করতে হবে অথবা, সমাধান হিসেবে, স্ট্যাটিক্যালি লিঙ্ক C++ STL-এর সুবিধা এবং অসুবিধা বিবেচনা করে সামঞ্জস্যতা বিবেচনা করা হচ্ছে।

আপনার কোডে 4KB অনুমান এড়িয়ে চলুন

এমনকি যদি আপনি সঠিকভাবে কম্পাইল এবং সারিবদ্ধ করেন, তবুও কোডটি ধরে নিলে আপনার অ্যাপটি ব্যর্থ হতে পারে পৃষ্ঠার আকার = ৪০৯৬ অথবা সেই মানটি কঠোরভাবে ব্যবহার করুন। NDK r27+ এ PAGE_SIZE ধ্রুবক এটা এমনকি সংজ্ঞায়িতও নয় ১৬ কেবি মোডে।

সঠিক কাজটি হল রানটাইমের সময় পৃষ্ঠার আকার জিজ্ঞাসা করা getpagesize() o সিসকনফ(_SC_PAGESIZE). mmap() এবং অন্যান্য API গুলির ব্যবহার পর্যালোচনা করুন যার জন্য পৃষ্ঠা-সারিবদ্ধ আকার বা ঠিকানা প্রয়োজন, যেখানে উপযুক্ত সেখানে বিকল্পগুলি দিয়ে প্রতিস্থাপন করুন এবং অঞ্চলগুলিকে একত্রিত করা অপচয় কমাতে।

মনে রাখবেন যে কার্নেল অনুরোধগুলিকে রাউন্ড করে নিকটতম পৃষ্ঠা১৬ কেবিতে, ১-৫ কেবি অনুরোধ করলে ১৬ কেবি বরাদ্দ হয়; ১৭ কেবি বরাদ্দ করলে ৩২ কেবি। যেখানে সম্ভব, দুটি RW অঞ্চলকে গ্রুপ করুন যা পূর্বে ২×৪ কেবি ছিল যাতে ১৬ কেবিতে, তারা থাকে একটি পৃষ্ঠা এবং নকল এড়িয়ে চলুন।

আপনার SDK গুলি 16 KB সমর্থন করে কিনা তা পরীক্ষা করুন।

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

১৬ কেবি পরীক্ষা: এমুলেটর এবং ডিভাইস

Android 15 SDK কনফিগার করুন এবং একটি ভার্চুয়াল ডিভাইস তৈরি করুন যার সাহায্যে ১৬ কেবি ভিত্তিক সিস্টেম ইমেজ। অ্যান্ড্রয়েড স্টুডিও জেলিফিশ (২০২৩.৩.১) বা তার পরবর্তী সংস্করণ এটি সমর্থন করে, যদিও সেরা অভিজ্ঞতার জন্য লেডিবাগ (২০২৪.২.১+) সুপারিশ করা হয়।

SDK ম্যানেজার → SDK প্ল্যাটফর্মগুলিতে, Show Package Details চেক করুন এবং Android VanillaIceCream বা তার পরবর্তী সংস্করণের অধীনে, এর জন্য ছবিগুলি ইনস্টল করুন গুগল এপিআই পরীক্ষামূলক ১৬ কেবি পৃষ্ঠার আকার (ARM 64 v8a এবং/অথবা x86_64 Atom)। যদি আপনি একটি সামঞ্জস্যপূর্ণ Pixel অনুকরণ করেন, তাহলে সাধারণত ARM 64 v8a যথেষ্ট।

কিছু এমুলেটর সংস্করণে (৩৫.১.৫ থেকে ৩৫.১.২০) এবং x86_64 এর জন্য ১৬KB অ্যান্ড্রয়েড ১৫.০ চিত্রের ৪র্থ সংস্করণের আগে, এই লাইনটি যোগ করুন config.ini AVD এর:

kernel.parameters = androidboot.page_shift=14

এমুলেটরটি শুরু করুন এবং পরিবেশ পরীক্ষা করুন adb শেল getconf PAGE_SIZE; ১৬৩৮৪ রিটার্ন করবে। ১৬ কেবি ছবিতে এলএলডিবি-তে একটি পরিচিত ডিবাগিং সমস্যা রয়েছে, যা সমাধান করা হয়েছে এনডিকে আর২৭ (আরসি১) এবং অ্যান্ড্রয়েড স্টুডিও কোয়ালা | ২০২৪.১.২ ক্যানারি ৫।

আসল হার্ডওয়্যারে পরীক্ষা করুন

অ্যান্ড্রয়েড ১৫ কিউপিআর১ থেকে, কিছু মডেলে একটি ডেভেলপার বিকল্প অন্তর্ভুক্ত রয়েছে যা ডিভাইসটি ১৬ কিলোবাইট বুট করুন। বিশেষ করে, Pixel 8/8 Pro/8a এটি QPR1 বা তার পরবর্তী সংস্করণে অন্তর্ভুক্ত করে, এবং Pixel 9/9 Pro/9 Pro XL QPR2 বিটা 2 বা তার পরবর্তী সংস্করণে। সিস্টেম আপডেট প্রয়োগ করুন এবং মোডটি যাচাইকরণের জন্য সক্ষম করুন বাস্তব অবস্থা.

আকার পরীক্ষা করুন adb শেল getconf PAGE_SIZE (১৬৩৮৪ হতে হবে) এবং যাচাই করুন যে আপনার APK ১৬ KB এর সাথে জিপ-সারিবদ্ধ আছে:

zipalign -c -P 16 -v 4 APK_NAME.apk

তারপর, সংবেদনশীল ক্ষেত্রগুলিতে মনোযোগ দিয়ে ব্যাপক পরীক্ষা করুন পৃষ্ঠার আকার এবং স্থানীয় স্মৃতি।

১৬ কেবি ব্যাকওয়ার্ড কম্প্যাটিবিলিটি মোড

যখন ডিভাইসটি ১৬KB কার্নেল চালায়, তখন প্যাকেজ ম্যানেজার একটি ট্রিগার করতে পারে ব্যাকওয়ার্ড কম্প্যাটিবিলিটি মোড যদি এটি .so ফাইলগুলিকে 4KB সারিবদ্ধ LOAD সেগমেন্ট সহ সনাক্ত করে অথবা যদি সংকুচিত APK-তে 4KB এ ZIP-এর সাথে সারিবদ্ধ আনকম্প্রেসড ELF ফাইল থাকে। অ্যাপটি প্রথম স্টার্টআপে একটি সতর্কতা প্রদর্শন করবে যা নির্দেশ করবে যে এটি চলছে সামঞ্জস্যতা মোড.

এফ-ড্রয়েড দিয়ে কীভাবে অ্যাপ এবং সফটওয়্যার খুঁজে বের করবেন
সম্পর্কিত নিবন্ধ:
ADB ব্যবহার করে রুট ছাড়াই অ্যান্ড্রয়েডে সিস্টেম অ্যাপগুলি সরানোর সম্পূর্ণ নির্দেশিকা

এই মোডটি কিছু অ্যাপকে মসৃণভাবে চালাতে সাহায্য করে, কিন্তু স্থিতিশীলতার জন্য এটি আদর্শ নয়। আপনি প্রতিটি অ্যাপের জন্য এটির তথ্য (অ্যাডভান্সড →) থেকে সক্ষম বা অক্ষম করতে পারেন। পৃষ্ঠার আকারের সামঞ্জস্যতা মোডে অ্যাপ চালান) অথবা সিস্টেম বৈশিষ্ট্যের সাহায্যে বিশ্বব্যাপী এটি নিয়ন্ত্রণ করুন:

# Forzar compatibilidad 16 KB en todas las apps
adb shell setprop bionic.linker.16kb.app_compat.enabled true
adb shell setprop pm.16kb.app_compat.disabled false

# Desactivar compatibilidad 16 KB en todas las apps
adb shell setprop bionic.linker.16kb.app_compat.enabled false
adb shell setprop pm.16kb.app_compat.disabled true

আপনি এটিকে আপনার ম্যানিফেস্টে অ্যাট্রিবিউটের সাহায্যেও সেট করতে পারেন অ্যান্ড্রয়েড:পেজসাইজকম্প্যাট বুট করার সময় স্পষ্টভাবে জোর করে ব্যবহার করার সময় সতর্কতা এড়াতে:

<application android:pageSizeCompat='true' />

গুগল প্লে-এর প্রয়োজনীয়তা: তারিখ এবং সুযোগ

নতুন ডিভাইস লঞ্চের প্রস্তুতির জন্য, গুগল প্লেতে অ্যাপ টার্গেটিং প্রয়োজন হবে অ্যান্ড্রয়েড ৫.০ (এপিআই ২১) বা উচ্চতর ১৬KB পৃষ্ঠাগুলির সাথে সামঞ্জস্যপূর্ণ। পাবলিক কী তারিখ হল 1 এর নভেম্বর 2025 নতুন অ্যাপ এবং আপডেটের জন্য।

কিছু ডেভেলপার অতিরিক্ত নোটিশ পেয়েছেন যার মধ্যে একটি মাইলফলক রয়েছে 1 এর 2026 এর মে অ-সম্মতিপূর্ণ বিল্ডগুলির জন্য ব্লকগুলিকে শক্ত করতে। আপনার প্লে কনসোল এবং আপনার যোগাযোগগুলি পর্যবেক্ষণ করুন, তবে মূল রেফারেন্স হল নভেম্বর 2025। এটি কেবল একটি কমপ্লায়েন্স বক্স নয়: ১৬ কেবি অফার অন্তর্ভুক্ত করে কর্মক্ষমতা উন্নতি বাস্তব।

১৬ কিলোবাইট (উন্নত) তে অ্যান্ড্রয়েড সেটিংস

En arm64, যদি আপনি Kleaf দিয়ে কার্নেল কম্পাইল করেন, তাহলে ব্যবহার করুন -পৃষ্ঠার_আকার=১৬ হাজার, অথবা লিনাক্স কার্নেল কনফিগারেশনে নির্বাচন করুন CONFIG_ARM64_16K_PAGES সম্পর্কে CONFIG_ARM64_4K_PAGES এর পরিবর্তে। ব্যবহারকারীর স্থানের জন্য, পণ্যটিতে সংজ্ঞায়িত করুন:

  • PRODUCT_NO_BIONIC_PAGE_SIZE_MACRO := সত্য PAGE_SIZE মুছে ফেলার জন্য এবং রানটাইমে জোর করে কোয়েরি করার জন্য।
  • PRODUCT_MAX_PAGE_SIZE_SUPPORTED := ১৬৩৮৪ ELF কে 16KB অ্যালাইনমেন্ট সহ কম্পাইল করতে এবং ভবিষ্যতের সামঞ্জস্যতা সহজতর করতে।

লক্ষ্য (দুপুরের খাবার) নির্বাচন করার পর, বিল্ড ফ্ল্যাগগুলি পরীক্ষা করুন:

$ source build/envsetup.sh
$ lunch <target>
$ get_build_var TARGET_MAX_PAGE_SIZE_SUPPORTED
16384
$ get_build_var TARGET_NO_BIONIC_PAGE_SIZE_MACRO
true

সংকলনটি সফল হলেও, পার্থক্যগুলি অব্যাহত থাকতে পারে। সঞ্চালনের সময় ১৬ কেবিতে, তাই আপনাকে পুঙ্খানুপুঙ্খভাবে পরীক্ষা করতে হবে এবং লাইনআপ এবং কলগুলি পর্যালোচনা করতে হবে mmap().

১৬ কেবি পৃষ্ঠা সহ দক্ষ প্রোগ্রামিং

বেশিরভাগ অ্যান্ড্রয়েড কোড সরাসরি পৃষ্ঠাগুলি পরিচালনা করে না, তবে যদি আপনি মেমরির সাথে মোকাবিলা করেন, তাহলে পরিবর্তন করুন কার্নেল আচরণ: সর্বদা পৃষ্ঠার আকার পর্যন্ত পূর্ণসংখ্যায়িত করা হয়। ৪ কেবিতে, ১–৪ কেবি বরাদ্দ করলে ৪ কেবি খরচ হয়; ১৬ কেবিতে, ১–৫ কেবিতে ১৬ কেবি খরচ হয়, এবং ১৭ কেবিতে, ৩২ কেবি খরচ হয়।

কামনা তোমার আকার গোলাকার করো mmap() কল করার আগে এবং সম্ভব হলে, একটি একক পৃষ্ঠার সুবিধা নিতে এবং অপচয় কমাতে RW অঞ্চলগুলিকে একত্রিত করুন। এছাড়াও, অপ্টিমাইজ করা সিস্টেমে, পৃষ্ঠা টেবিলগুলি আকারের এক চতুর্থাংশ ১৬ কেবি পৃষ্ঠা ব্যবহার করার সময় একই মেমরির জন্য, যা আংশিকভাবে উচ্চতর গ্র্যানুলারিটির জন্য ক্ষতিপূরণ দেয়।

বাইনারি এবং প্রি-বিল্ট যাচাই করা হচ্ছে

১৬ কেবি কার্নেলে পরীক্ষা করার বাইরে, আপনি অ্যান্ড্রয়েড ১৬ থেকে সক্রিয় করতে পারেন PRODUCT_CHECK_PREBUILT_MAX_PAGE_SIZE := সত্য বিল্ডের সময় প্রি-বিল্ট যাচাই করতে। যদি আপনার সাময়িকভাবে এটি উপেক্ষা করার প্রয়োজন হয়, তাহলে ব্যবহার করুন উপেক্ষা করুন_সর্বোচ্চ_পৃষ্ঠার_আকার: সত্য Android.bp-তে অথবা LOCAL_IGNORE_MAX_PAGE_SIZE := সত্য Android.mk-এ।

অ্যান্ড্রয়েড ১৫+ দিয়ে লঞ্চ হওয়া ডিভাইসগুলিতে, এটি চলে পরীক্ষা elf_alignment_test যাচাই করতে ELF লাইনআপ ডিভাইসেই, এবং আপনার CI পাইপলাইনের জন্য ফলাফল ক্যাপচার করুন।

সাধারণ ত্রুটি এবং সমাধান

  • স্থানীয়ভাবে ইনস্টল হয় কিন্তু Play থেকে ব্যর্থ হয়: অ্যাপ বান্ডেল (AGP 8.3–8.5) থেকে তৈরি বিল্ডগুলিতে সাধারণত 16KB জিপ-অ্যালাইন অনুপস্থিত। আপলোড করুন এজিপি ≥ ৮.৫.১ অথবা অস্থায়ীভাবে সংকুচিত jniLibs প্যাক করুন এবং আবার যাচাই করুন।
  • INSTALL_FAILED_INVALID_APK / অসমর্থিত ELF পৃষ্ঠার আকার: তোমার .so ফাইলগুলো ৪KB। NDK আপডেট করো (r27/r28 সবচেয়ে ভালো), পরিষ্কার করো এবং পুনরায় কম্পাইল করো, এবং এর সাথে কমিট করো রিডেল্ফ সারিবদ্ধ 2**14.
  • readelf ব্যর্থ হয় অথবা দূষিত হেডার প্রদর্শন করে: আপনি সম্ভবত একটি খারাপভাবে এক্সট্র্যাক্ট করা ফাইল পরীক্ষা করছেন। APK টি একটি ফোল্ডারে আনজিপ করুন, এখানে যান lib/arm64-v8a এবং সঠিক .so তে readelf চালান।
  • এমুলেটরে কাজ করে কিন্তু ১৬ কিলোবাইট ডিভাইসে নয়।: সাধারণত একটি পুরনো থার্ড-পার্টি SDKlogcat ব্যবহার করে সমস্যাযুক্ত .so সনাক্ত করুন, নির্ভরতা আপডেট করুন অথবা যদি কোনও সমর্থিত সংস্করণ না থাকে তবে এটি সরিয়ে ফেলুন।
  • পুনর্নির্মাণের পরে Play Console-এ প্রম্পটটি অনুসরণ করুন: AAB তে এখনও ৪KB ফাইল বাকি আছে। .apks তৈরি করতে, আনজিপ করতে এবং পাস করতে bundletool ব্যবহার করুন। রিডেল্ফ/জিপলাইন সকলের জন্য। যতক্ষণ না শেষটি মেনে চলে।

প্রকাশের আগে ব্যবহারিক চেকলিস্ট

  • এজিপি ≥ ৮.৫.১ অথবা, অস্থায়ীভাবে, jniLibs useLegacyPackaging দিয়ে সংকুচিত করা হয়।
  • এনডিকে আর২৮+ (অথবা পতাকা সহ r27) এবং প্রযোজ্য হলে, লিঙ্কে -Wl,-z,max-page-size=16384 লিখুন।
  • সব .so এর সাথে লোড সারিবদ্ধ 2**14 (arm64-v8a/x86_64) এবং APK 16 KB তে জিপ-সারিবদ্ধ।
  • পাপ ৪কেবি অনুমান কোডে; আপনি getpagesize()/sysconf ব্যবহার করেন।
  • ১৬ কেবি এমুলেটর/ডিভাইসের উপর পরীক্ষা এবং যাচাইকরণ অ্যাডবি গেটকনফ PAGE_SIZE = 16384

কম ঝুঁকিতে Google Play তে প্রকাশ করা

প্রথমে উপরে যান ওপেন টেস্টিং প্রাথমিক প্রতিক্রিয়া ক্যাপচার করতে, তারপর সীমিত গোষ্ঠীর সাথে বন্ধ পরীক্ষায়, এবং অবশেষে যখন আপনি স্থিতিশীলতা যাচাই করবেন তখন উৎপাদনে উন্নীত করুন। রিলিজ নোটে, জানান যে আপনি যোগ করেছেন অ্যান্ড্রয়েড ১৫ সাপোর্ট এবং ১৬ কেবি পৃষ্ঠা ব্যবহারকারী এবং পর্যালোচকদের জন্য প্রসঙ্গ প্রদান করতে।

অ্যান্ড্রয়েডের একটি কাস্টম সংস্করণ কীভাবে পাবেন
সম্পর্কিত নিবন্ধ:
শুরু থেকেই অ্যান্ড্রয়েডের নিজস্ব কাস্টম সংস্করণ তৈরি করুন

এই পদক্ষেপের মাধ্যমে, অ্যান্ড্রয়েড তার প্ল্যাটফর্মটিকে আধুনিক হার্ডওয়্যার এবং অফারগুলির সাথে সামঞ্জস্যপূর্ণ করে কর্মক্ষমতা অর্জনের একটি স্পষ্ট পথ লঞ্চ, ক্যামেরা এবং সিস্টেম স্টার্টআপগুলিতে। যদি আপনার অ্যাপটি নেটিভ ব্যবহার করে, তাহলে রেসিপিটি সহজ: AGP/NDK আপডেট করুন, ELF এবং ZIP 16KB তে সারিবদ্ধ করুন, 4KB অনুমানগুলি সরান, এমুলেটর এবং Pixel 16KB দিয়ে পরীক্ষা করুন, এবং তৃতীয় পক্ষের নির্ভরতাগুলিতে নজর রাখুন; যদি আপনি এটি করেন, তাহলে আপনি কেবল মেনে চলবেন না গুগল প্লে, আপনি আপনার ব্যবহারকারীদের একটি মসৃণ অভিজ্ঞতাও প্রদান করেন। এই তথ্যটি শেয়ার করুন যাতে আরও বেশি লোক অ্যান্ড্রয়েড ১৬ কেবি-র প্রভাব সম্পর্কে জানতে পারে।.