Google Play-তে প্রকাশিত অ্যাপগুলিকে 64-বিট আর্কিটেকচার সমর্থন করতে হবে। আপনার অ্যাপের একটি 64-বিট সংস্করণ যোগ করা কার্যক্ষমতার উন্নতি প্রদান করে এবং 64-বিট-কেবল-হার্ডওয়্যার সহ ডিভাইসগুলির জন্য আপনাকে সেট আপ করে৷
নিম্নলিখিত পদক্ষেপগুলি নিশ্চিত করে যে আপনার 32-বিট অ্যাপটি 64-বিট ডিভাইসগুলিকে সমর্থন করে৷
আপনার অ্যাপ্লিকেশন মূল্যায়ন
যদি আপনার অ্যাপটি শুধুমাত্র জাভা প্রোগ্রামিং ভাষায় বা কোটলিনে লেখা কোড ব্যবহার করে, যার মধ্যে সব লাইব্রেরি বা SDK সহ, তাহলে আপনার অ্যাপটি 64-বিট ডিভাইস সমর্থন করে। যদি আপনার অ্যাপ কোনো নেটিভ কোড ব্যবহার করে, অথবা আপনি তা করে কিনা তা নিশ্চিত না হন, তাহলে আপনার অ্যাপের মূল্যায়ন করুন।
দ্রুত স্থিতি পরীক্ষা
প্লে কনসোলে যান এবং বিদ্যমান রিলিজগুলি মেনে চলছে কিনা তা দেখতে দেখুন।
64-বিট প্রয়োজনীয়তা সম্পর্কিত কোনও সমস্যা থাকলে Play Console সতর্কতাগুলিও দেখায় যা আপনার ড্রাফ্ট রিলিজে প্রযোজ্য। নিম্নলিখিত চিত্র একটি উদাহরণ.
যদি একটি সতর্কতা উপস্থিত হয়, আপনার অ্যাপটিকে 64-বিট ডিভাইসের সাথে সামঞ্জস্যপূর্ণ করতে নিম্নলিখিত পদক্ষেপগুলি দেখুন৷
আপনার অ্যাপ কি নেটিভ কোড ব্যবহার করে?
আপনার অ্যাপটি নেটিভ কোড ব্যবহার করে যদি এটি:
- আপনার অ্যাপে যেকোনো C/C++ (নেটিভ) কোড ব্যবহার করে।
- যেকোনো তৃতীয় পক্ষের নেটিভ লাইব্রেরির সাথে লিঙ্ক।
- একটি থার্ড-পার্টি অ্যাপ বিল্ডার দ্বারা নির্মিত যা নেটিভ লাইব্রেরি ব্যবহার করে।
আপনার অ্যাপ কি 64-বিট লাইব্রেরি অন্তর্ভুক্ত করে?
আপনার APK ফাইলের গঠন পরিদর্শন করুন। নির্মিত হলে, অ্যাপটির জন্য প্রয়োজনীয় যেকোন নেটিভ লাইব্রেরির সাথে APK প্যাকেজ করা হয়। স্থানীয় লাইব্রেরিগুলি ABI-এর উপর ভিত্তি করে বিভিন্ন ফোল্ডারে সংরক্ষণ করা হয়। প্রতিটি 64-বিট আর্কিটেকচারকে সমর্থন করার প্রয়োজন নেই, তবে আপনি সমর্থন করেন এমন প্রতিটি নেটিভ 32-বিট আর্কিটেকচারের জন্য আপনাকে অবশ্যই সংশ্লিষ্ট 64-বিট আর্কিটেকচার অন্তর্ভুক্ত করতে হবে।
ARM আর্কিটেকচারের জন্য, 32-বিট লাইব্রেরিগুলি armeabi-v7a এ অবস্থিত। 64-বিট সমতুল্য হল arm64-v8a ।
x86 আর্কিটেকচারের জন্য, 32-বিটের জন্য x86 এবং 64-বিটের জন্য x86_64 সন্ধান করুন।
এই দুটি ফোল্ডারে আপনার নেটিভ লাইব্রেরি আছে তা নিশ্চিত করুন। সংক্ষেপে:
প্ল্যাটফর্ম | 32-বিট লাইব্রেরি ফোল্ডার | 64-বিট লাইব্রেরি ফোল্ডার |
---|---|---|
এআরএম | lib/armeabi-v7a | lib/arm64-v8a |
x86 | lib/x86 | lib/x86_64 |
মনে রাখবেন যে আপনার অ্যাপের উপর নির্ভর করে, প্রতিটি ফোল্ডারে লাইব্রেরির ঠিক একই সেট থাকতে পারে বা নাও থাকতে পারে। লক্ষ্য হল আপনার অ্যাপটি 64-বিট-শুধুমাত্র পরিবেশে সঠিকভাবে চলে তা নিশ্চিত করা।
একটি সাধারণ ক্ষেত্রে, একটি APK বা বান্ডেল যা 32-বিট এবং 64-বিট উভয় আর্কিটেকচারের জন্য তৈরি করা হয়েছে উভয় ABI-এর জন্য ফোল্ডার রয়েছে, প্রতিটিতে একটি সংশ্লিষ্ট স্থানীয় লাইব্রেরি রয়েছে। 64-বিটের জন্য কোন সমর্থন না থাকলে, আপনি একটি 32-বিট ABI ফোল্ডার দেখতে পারেন কিন্তু একটি 64-বিট ফোল্ডার নয়।
APK বিশ্লেষক ব্যবহার করে নেটিভ লাইব্রেরি খুঁজুন
APK বিশ্লেষক একটি টুল যা আপনাকে একটি নির্মিত APK এর বিভিন্ন দিক মূল্যায়ন করতে দেয়। যেকোনো নেটিভ লাইব্রেরি খুঁজে পেতে এটি ব্যবহার করুন এবং 64-বিট লাইব্রেরি উপস্থিত রয়েছে তা নিশ্চিত করুন।
- অ্যান্ড্রয়েড স্টুডিও খুলুন, এবং যে কোনও প্রকল্প খুলুন ।
মেনু থেকে, Build > Analyze APK নির্বাচন করুন …
আপনি যে APK মূল্যায়ন করতে চান সেটি বেছে নিন।
lib ফোল্ডারের মধ্যে দেখুন, যা '.so' ফাইলগুলি হোস্ট করে যদি থাকে। যদি কোনটি না থাকে, তাহলে আপনার অ্যাপটি 64-বিট ডিভাইসগুলিকে সমর্থন করে এবং আর কোনও পদক্ষেপের প্রয়োজন নেই৷ আপনি যদি armeabi-v7a বা x86 দেখতে পান, তাহলে আপনার 32-বিট লাইব্রেরি আছে।
arm64-v8a বা x86_64 ফোল্ডারে আপনার অনুরূপ '.so' ফাইল আছে কিনা তা পরীক্ষা করে দেখুন।
আপনার যদি কোনো arm64-v8a বা x86_64 লাইব্রেরি না থাকে, তাহলে আপনার APK-এ সেই আর্টিফ্যাক্টগুলি তৈরি এবং প্যাকেজ করা শুরু করতে আপনার বিল্ড প্রক্রিয়া আপডেট করুন৷
যদি আপনি ইতিমধ্যে উভয় লাইব্রেরি প্যাকেজ করা দেখতে পান, আপনি 64-বিট হার্ডওয়্যারে আপনার অ্যাপ পরীক্ষা করতে এগিয়ে যেতে পারেন৷
APK আনজিপ করে নেটিভ লাইব্রেরি খুঁজুন
APK ফাইলগুলি জিপ ফাইলের মতো গঠন করা হয়। কমান্ড লাইন বা অন্য কোনো নিষ্কাশন সরঞ্জামের সাহায্যে, APK ফাইলটি বের করুন। আপনার নিষ্কাশন সরঞ্জামের উপর নির্ভর করে, আপনাকে ফাইলটির নাম পরিবর্তন করে .zip করতে হতে পারে।
আপনার অ্যাপটি 64-বিট ডিভাইস সমর্থন করে কিনা তা নির্ধারণ করতে উপরের নির্দেশিকা অনুসরণ করে এক্সট্র্যাক্ট করা ফাইলগুলি ব্রাউজ করুন। আপনি কমান্ড লাইন থেকে নিম্নলিখিত কমান্ড উদাহরণ চালাতে পারেন:
:: Command Line
> zipinfo -1 YOUR_APK_FILE.apk | grep \.so$
lib/armeabi-v7a/libmain.so
lib/armeabi-v7a/libmono.so
lib/armeabi-v7a/libunity.so
lib/arm64-v8a/libmain.so
lib/arm64-v8a/libmono.so
lib/arm64-v8a/libunity.so
এই উদাহরণে armeabi-v7a এবং arm64-v8a লাইব্রেরির উপস্থিতি নোট করুন, যার মানে অ্যাপটি 64-বিট আর্কিটেকচার সমর্থন করে।
64-বিট লাইব্রেরি দিয়ে আপনার অ্যাপ তৈরি করুন
নিম্নলিখিত নির্দেশাবলী 64-বিট লাইব্রেরি কীভাবে তৈরি করতে হয় তার রূপরেখা দেয়। মনে রাখবেন যে এই পদক্ষেপগুলি শুধুমাত্র বিল্ডিং কোড এবং লাইব্রেরিগুলিকে কভার করে যা আপনি উত্স থেকে তৈরি করতে সক্ষম।
Android Studio বা Gradle দিয়ে তৈরি করুন
বেশিরভাগ অ্যান্ড্রয়েড স্টুডিও প্রকল্প অন্তর্নিহিত বিল্ড সিস্টেম হিসাবে গ্রেডল ব্যবহার করে, তাই এই বিভাগটি উভয় ক্ষেত্রেই প্রযোজ্য। আপনার নেটিভ কোডের জন্য বিল্ডগুলি সক্ষম করতে, আপনার অ্যাপের 'build.gradle' ফাইলের ndk.abiFilters সেটিংসে আপনি যে আর্কিটেকচারগুলিকে সমর্থন করতে চান তার উপর নির্ভর করে arm64-v8a এবং/অথবা x86_64 যোগ করুন:
গ্রোভি
// Your app's build.gradle plugins { id 'com.android.app' } android { compileSdkVersion 27 defaultConfig { appId "com.google.example.64bit" minSdkVersion 15 targetSdkVersion 28 versionCode 1 versionName "1.0" ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64' // ...
কোটলিন
// Your app's build.gradle plugins { id("com.android.app") } android { compileSdkVersion(27) defaultConfig { appId = "com.google.example.64bit" minSdkVersion(15) targetSdkVersion(28) versionCode = 1 versionName = "1.0" ndk { abiFilters += listOf("armeabi-v7a","arm64-v8a","x86","x86_64") } // ...
CMake দিয়ে তৈরি করুন
যদি আপনার অ্যাপটি CMake ব্যবহার করে তৈরি করা হয়, তাহলে আপনি '-DANDROID_ABI' প্যারামিটারে arm64-v8a পাস করে 64-বিট ABI-এর জন্য তৈরি করতে পারেন:
:: Command Line
> cmake -DANDROID_ABI=arm64-v8a … or
> cmake -DANDROID_ABI=x86_64 …
ndk-বিল্ড দিয়ে তৈরি করুন
যদি আপনার অ্যাপটি ndk-build দিয়ে তৈরি করা হয়, তাহলে আপনি APP_ABI
ভেরিয়েবল ব্যবহার করে আপনার 'Application.mk' ফাইলটি পরিবর্তন করে 64-বিট ABI-এর জন্য তৈরি করতে পারেন:
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
32-বিট কোড 64-বিটে পোর্ট করুন
যদি আপনার কোড ইতিমধ্যেই ডেস্কটপ বা iOS এ চলে, তাহলে আপনাকে Android এর জন্য কোনো অতিরিক্ত কাজ করতে হবে না। যদি এই প্রথমবার আপনার কোড একটি 64-বিট সিস্টেমের জন্য তৈরি করা হয়, তাহলে আপনাকে যে প্রধান সমস্যাটি সমাধান করতে হবে তা হল int
মতো 32-বিট পূর্ণসংখ্যার ধরনে পয়েন্টারগুলি আর ফিট নয়।
কোড আপডেট করুন যা পয়েন্টারকে int
, unsigned
, বা uint32_t
এর মতো প্রকারে সংরক্ষণ করে। ইউনিক্স সিস্টেমে, long
পয়েন্টারের আকারের সাথে মেলে, তবে এটি উইন্ডোজে সত্য নয়। পরিবর্তে, উদ্দেশ্য-প্রকাশক প্রকারগুলি ব্যবহার করুন uintptr_t
বা intptr_t
। দুটি পয়েন্টারের মধ্যে পার্থক্য সংরক্ষণ করতে, ptrdiff_t
টাইপ ব্যবহার করুন।
আপনার সর্বদা <stdint.h>
এ সংজ্ঞায়িত নির্দিষ্ট, স্থির-প্রস্থের পূর্ণসংখ্যার ধরন পছন্দ করা উচিত, অ-নির্দিষ্ট-প্রস্থ প্রকার যেমন int
বা long
, এমনকি অ-পয়েন্টারের জন্যও।
যে ক্ষেত্রে আপনার কোড ভুলভাবে পয়েন্টার এবং পূর্ণসংখ্যার মধ্যে রূপান্তর করছে তা ধরতে নিম্নলিখিত কম্পাইলার পতাকাগুলি ব্যবহার করুন:
-Werror=pointer-to-int-cast
-Werror=int-to-pointer-cast
-Werror=shorten-64-to-32
int
ক্ষেত্র সহ জাভা ক্লাস যা C/C++ অবজেক্টের পয়েন্টার ধরে রাখে তাদের একই সমস্যা রয়েছে। আপনার JNI উৎসে jint
অনুসন্ধান করুন এবং নিশ্চিত করুন যে আপনি জাভা পাশে long
এবং C++ পাশে jlong
এ স্যুইচ করেছেন।
অন্তর্নিহিত ফাংশন ঘোষণা 64-বিট কোডের জন্য অনেক বেশি বিপজ্জনক। C/C++ অনুমান করে যে একটি অন্তর্নিহিত ঘোষিত ফাংশনের রিটার্ন টাইপ (অর্থাৎ, একটি ফাংশন যার জন্য কম্পাইলার কোনো ঘোষণা দেখেনি) হল int
। যদি আপনার ফাংশনের আসল রিটার্ন টাইপটি একটি পয়েন্টার হয় তবে এটি একটি 32-বিট সিস্টেমে সূক্ষ্ম কাজ করে যেখানে আপনার পয়েন্টারটি একটি int-এ ফিট করে। যাইহোক, একটি 64-বিট সিস্টেমে, কম্পাইলার আপনার পয়েন্টারের উপরের অর্ধেক ড্রপ করে। যেমন:
// This function returns a pointer:
// extern char* foo();
// If you don't include a header that declares it,
// when the compiler sees this:
char* result = foo();
// Instead of compiling that to:
result = foo();
// It compiles to something equivalent to:
result = foo() & 0xffffffff;
// Which will then cause a SIGSEGV if you try to dereference `result`.
নিম্নলিখিত কম্পাইলার ফ্ল্যাগ অন্তর্নিহিত ফাংশন ঘোষণা সতর্কতাগুলিকে ত্রুটিতে পরিণত করে যাতে আপনি এই সমস্যাটি আরও সহজে খুঁজে পেতে এবং সমাধান করতে পারেন:
-Werror=implicit-function-declaration
আপনার যদি ইনলাইন অ্যাসেম্বলার থাকে তবে এটি পুনরায় লিখুন বা একটি সাধারণ C/C++ বাস্তবায়ন ব্যবহার করুন।
আপনার যদি হার্ড-কোডেড আকারের প্রকারগুলি থাকে (উদাহরণস্বরূপ, 8 বা 16 বাইট), সেগুলিকে সমতুল্য sizeof(T)
এক্সপ্রেশন দিয়ে প্রতিস্থাপন করুন, যেমন sizeof(void*)
।
আপনি যদি শর্তসাপেক্ষে 64-বিটের চেয়ে 32-বিটের জন্য ভিন্ন কোড কম্পাইল করতে চান, তাহলে আপনি জেনেরিক 32/64 পার্থক্যের জন্য #if defined(__LP64__)
, অথবা __arm__
, __aarch64__
(arm64), __i386__
(x86), এবং __x86_64__
নির্দিষ্ট Android archite সমর্থনের জন্য ব্যবহার করতে পারেন।
printf
বা scanf
-এর মতো ফাংশনগুলির জন্য বিন্যাস স্ট্রিংগুলি সামঞ্জস্য করুন, কারণ প্রথাগত বিন্যাস নির্দিষ্টকারী আপনাকে 64-বিট প্রকারগুলিকে এমনভাবে নির্দিষ্ট করার অনুমতি দেয় না যা 32-বিট এবং 64-বিট উভয় ডিভাইসের জন্যই সঠিক। <inttypes.h>
এ PRI
এবং SCN
ম্যাক্রো এই সমস্যার সমাধান করে, হেক্স পয়েন্টার লেখা ও পড়ার জন্য PRIxPTR
এবং SCNxPTR
; এবং PRId64
এবং SCNd64
পোর্টেবলভাবে 64-বিট মান লেখা এবং পড়ার জন্য।
স্থানান্তর করার সময়, আপনাকে 1
ব্যবহার করার পরিবর্তে একটি 64-বিট ধ্রুবক পেতে 1ULL
ব্যবহার করতে হতে পারে, যা শুধুমাত্র 32 বিট।
অ্যান্ড্রয়েড অ্যাপ বান্ডেলের সাহায্যে প্রশমিত আকার বৃদ্ধি পায়
আপনার অ্যাপে 64-বিট আর্কিটেকচার সমর্থন যোগ করলে আপনার APK আকার বৃদ্ধি পেতে পারে। একই APK-এ 32- এবং 64-বিট নেটিভ কোড উভয়ই অন্তর্ভুক্ত করার সাইজ ইমপ্যাক্ট কমাতে আমরা দৃঢ়ভাবে Android অ্যাপ বান্ডেল বৈশিষ্ট্যের সুবিধা নেওয়ার সুপারিশ করছি।
গেম ডেভেলপার
তিনটি সর্বাধিক ব্যবহৃত ইঞ্জিন 64-বিট সমর্থন করে:
- 2015 সাল থেকে অবাস্তব
- 2015 সাল থেকে Cocos2d
- 2018 সাল থেকে ঐক্য
ঐক্য বিকাশকারীরা
সক্ষম সংস্করণে আপগ্রেড করুন
ইউনিটি 2018.2 এবং 2017.4.16 সংস্করণের সাথে 64-বিট সমর্থন প্রদান করে।
আপনি যদি ইউনিটির এমন একটি সংস্করণে থাকেন যা 64-বিট সমর্থন করে না, তাহলে আপনি যে সংস্করণটি আপগ্রেড করতে চান তা নির্ধারণ করুন এবং আপনার পরিবেশকে স্থানান্তরিত করার জন্য ইউনিটি যে গাইডগুলি সরবরাহ করে তা অনুসরণ করুন, আপনার অ্যাপটি এমন একটি সংস্করণে আপগ্রেড করা হয়েছে যা 64-বিট লাইব্রেরি তৈরি করতে পারে তা নিশ্চিত করে৷ ইউনিটি আপনাকে সম্পাদকের সর্বশেষ LTS সংস্করণে আপগ্রেড করার মাধ্যমে সর্বশেষ বৈশিষ্ট্য এবং আপডেটগুলিতে অ্যাক্সেস করার পরামর্শ দেয়।
এখানে একটি চার্ট রয়েছে যা বিভিন্ন ইউনিটি সংস্করণের রূপরেখা দেয় এবং আপনার কী করা উচিত:
ইউনিটি সংস্করণ | সংস্করণ 64-বিট সমর্থন করে? | প্রস্তাবিত কর্মের কোর্স |
---|---|---|
2020.x | ✔️ | আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2019.x | ✔️ | আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2018.4 (LTS) | ✔️ | আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2018.3 | ✔️ | আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2018.2 | ✔️ | আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2018.1 | ➖ | পরীক্ষামূলক 64-বিট সমর্থন আছে। |
2017.4 (LTS) | ✔️ | 2017.4.16 হিসাবে সমর্থিত। আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2017.3 | ✖️ | 64-বিট সমর্থন করে এমন সংস্করণে আপগ্রেড করুন। |
2017.2 | ✖️ | 64-বিট সমর্থন করে এমন সংস্করণে আপগ্রেড করুন। |
2017.1 | ✖️ | 64-বিট সমর্থন করে এমন সংস্করণে আপগ্রেড করুন। |
<=5.6 | ✖️ | 64-বিট সমর্থন করে এমন সংস্করণে আপগ্রেড করুন। |
আউটপুট 64-বিট লাইব্রেরিতে বিল্ড সেটিংস পরিবর্তন করুন
আপনি যদি ইউনিটির একটি সংস্করণ ব্যবহার করেন যা 64-বিট অ্যান্ড্রয়েড লাইব্রেরি সমর্থন করে, আপনি আপনার বিল্ড সেটিংস সামঞ্জস্য করে আপনার অ্যাপের একটি 64-বিট সংস্করণ তৈরি করতে পারেন। আপনার স্ক্রিপ্টিং ব্যাকএন্ড হিসাবে IL2CPP ব্যাকএন্ড ব্যবহার করুন। 64-বিট আর্কিটেকচার তৈরি করতে আপনার ইউনিটি প্রকল্প সেট আপ করতে, নিম্নলিখিতগুলি করুন:
- বিল্ড সেটিংসে যান এবং প্ল্যাটফর্মের অধীনে একতা প্রতীকটি Android এর পাশে রয়েছে তা যাচাই করে নিশ্চিত করুন যে আপনি Android এর জন্য তৈরি করছেন। 1. যদি ইউনিটি চিহ্নটি অ্যান্ড্রয়েড প্ল্যাটফর্মের পাশে না থাকে তবে অ্যান্ড্রয়েড নির্বাচন করুন এবং প্ল্যাটফর্ম স্যুইচ করুন ক্লিক করুন।
প্লেয়ার সেটিংস ক্লিক করুন.
প্লেয়ার সেটিংস প্যানেলে নেভিগেট করুন > Android এর জন্য সেটিংস > অন্যান্য সেটিংস > কনফিগারেশন
IL2CPP-এ স্ক্রিপ্টিং ব্যাকএন্ড সেট করুন ।
টার্গেট আর্কিটেকচার > ARM64 চেকবক্স নির্বাচন করুন।
স্বাভাবিক হিসাবে নির্মাণ!
মনে রাখবেন যে ARM64-এর জন্য বিল্ডিং করার জন্য আপনার সমস্ত সম্পদ বিশেষভাবে সেই প্ল্যাটফর্মের জন্য তৈরি করা প্রয়োজন। APK আকার হ্রাস করার জন্য ইউনিটির নির্দেশিকা অনুসরণ করুন, এবং আকারের এই বৃদ্ধি কমাতে সহায়তা করার জন্য Android অ্যাপ বান্ডেল বৈশিষ্ট্যের সুবিধা নেওয়ার কথা বিবেচনা করুন।
মাল্টি-এপিকে এবং 64-বিট সম্মতি
আপনি যদি আপনার অ্যাপ প্রকাশ করতে Google Play-এর একাধিক-APK সমর্থন ব্যবহার করেন, তাহলে মনে রাখবেন যে 64-বিট প্রয়োজনীয়তার সাথে সম্মতি প্রকাশের স্তরে মূল্যায়ন করা হয়। যাইহোক, 64-বিট প্রয়োজনীয়তা APK বা অ্যাপ বান্ডেলগুলিতে প্রযোজ্য নয় যেগুলি Android 9 Pie বা তার পরে চলমান ডিভাইসগুলিতে বিতরণ করা হয় না।
যদি আপনার APKগুলির মধ্যে একটি অনুগত নয় বলে চিহ্নিত করা হয়, কিন্তু এটি একটি পূর্ববর্তী সংস্করণ এবং এটিকে সম্মতিতে আনা সম্ভব না হয়, একটি কৌশল হল সেই APK-এর ম্যানিফেস্টের uses-sdk
উপাদানে একটি maxSdkVersion="27"
অ্যাট্রিবিউট যোগ করা। এই APK Android 9 Pie বা তার পরে চলমান ডিভাইসগুলিতে বিতরণ করা হয় না এবং আর সম্মতি ব্লক করে না।
রেন্ডারস্ক্রিপ্ট এবং 64-বিট সম্মতি
যদি আপনার অ্যাপ রেন্ডারস্ক্রিপ্ট ব্যবহার করে এবং Android টুলের পূর্ববর্তী সংস্করণ দিয়ে তৈরি করা হয়, তাহলে আপনি অ্যাপের জন্য 64-বিট কমপ্লায়েন্স সমস্যা দেখতে পারেন। 21.0.0 এর আগে বিল্ড টুলের সাথে, কম্পাইলার একটি বহিরাগত .bc
ফাইলে বিটকোড তৈরি করতে পারে। এই উত্তরাধিকারী .bc
ফাইলগুলি আর 64-বিট আর্কিটেকচারের জন্য সমর্থিত নয়, তাই আপনার APK-এ ফাইলের উপস্থিতি সম্মতির সমস্যা সৃষ্টি করে৷
সমস্যাটি সমাধান করতে, আপনার প্রকল্পের যেকোনো .bc
ফাইল মুছে ফেলুন, আপনার পরিবেশ build-tools-21.0.0
বা তার পরে আপগ্রেড করুন এবং কম্পাইলারকে .bc
ফাইলগুলি নির্গত না করার জন্য Android স্টুডিওতে renderscriptTargetApi
-কে 21+ সেট করুন৷ তারপরে, আপনার অ্যাপ পুনর্নির্মাণ করুন, .bc
ফাইলগুলি পরীক্ষা করুন এবং Play Console-এ আপলোড করুন।
64-বিট হার্ডওয়্যারে আপনার অ্যাপ পরীক্ষা করুন
আপনার অ্যাপের 64-বিট সংস্করণটি 32-বিট সংস্করণের মতো একই গুণমান এবং বৈশিষ্ট্য সেট করা উচিত। সর্বশেষ 64-বিট ডিভাইসের ব্যবহারকারীদের আপনার অ্যাপে দুর্দান্ত অভিজ্ঞতা রয়েছে তা নিশ্চিত করতে আপনার অ্যাপটি পরীক্ষা করুন।
64-বিট-শুধুমাত্র ডিভাইস
যখনই সম্ভব, আমরা নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করে একটি কঠোর 64-বিট-শুধু পরিবেশে আপনার অ্যাপটি পরীক্ষা করার পরামর্শ দিই:
একটি 64-বিট-শুধুমাত্র সিস্টেম চিত্র সহ Google Pixel
অ্যাপ ডেভেলপমেন্ট এবং টেস্টিং সহজতর করার জন্য, আমরা কিছু Pixel ডিভাইসের জন্য একটি কঠোর 64-বিট-শুধু পরিবেশ সহ বিশেষ সিস্টেম চিত্র প্রদান করেছি। এই 64-বিট-শুধু ইমেজগুলি মূলত অ্যান্ড্রয়েড 13 এবং 14 প্রিভিউ রিলিজের জন্য স্ট্যান্ডার্ড ফ্যাক্টরি সিস্টেম ইমেজগুলির সাথে একযোগে প্রদান করা হয়েছিল, কিন্তু আপনি 64-বিট সামঞ্জস্যের জন্য আপনার অ্যাপটি পরীক্ষা করার সময় সেগুলি ব্যবহার করা চালিয়ে যেতে পারেন।
একটি 64-বিট-শুধুমাত্র ছবি পান
ফ্যাক্টরি সিস্টেমের চিত্রগুলির মতো, আপনি Android ফ্ল্যাশ টুল ব্যবহার করে আপনার ডিভাইসে একটি 64-বিট-শুধু-ইমেজ ফ্ল্যাশ করতে পারেন বা ম্যানুয়ালি আপনার ডিভাইসটি ফ্ল্যাশ করতে পারেন , যেমনটি নিম্নলিখিত বিভাগে বর্ণিত হয়েছে৷
অ্যান্ড্রয়েড ফ্ল্যাশ টুল ব্যবহার করে আপনার ডিভাইস ফ্ল্যাশ করুন
অ্যান্ড্রয়েড ফ্ল্যাশ টুল আপনাকে আপনার সমর্থিত পিক্সেল ডিভাইসে সুরক্ষিতভাবে একটি সিস্টেম ইমেজ ফ্ল্যাশ করতে দেয়। Android Flash Tool যেকোন ওয়েব ব্রাউজারে কাজ করে যা WebUSB সমর্থন করে, যেমন Chrome বা Edge 79+।
অ্যান্ড্রয়েড ফ্ল্যাশ টুল আপনাকে আপনার ডিভাইস ফ্ল্যাশ করার প্রক্রিয়ার মাধ্যমে ধাপে ধাপে গাইড করে—কোনও সরঞ্জাম ইনস্টল করার প্রয়োজন নেই—কিন্তু আপনাকে আপনার ডিভাইস আনলক করতে হবে এবং বিকাশকারী বিকল্পগুলিতে USB ডিবাগিং সক্ষম করতে হবে ৷ সম্পূর্ণ নির্দেশাবলীর জন্য, অ্যান্ড্রয়েড ফ্ল্যাশ টুল ডকুমেন্টেশন দেখুন।
আপনার ডিভাইসটিকে USB-এর মাধ্যমে সংযুক্ত করুন, তারপরে, আপনি যে ধরনের সিস্টেম ইমেজ ফ্ল্যাশ করতে চান তার উপর নির্ভর করে, নিম্নলিখিত লিঙ্কগুলির মধ্যে একটি ব্যবহার করে Android Flash Tool-এ নেভিগেট করুন এবং অনস্ক্রিন নির্দেশিকা অনুসরণ করুন:
Android 14 (Beta 5.2) 64-বিট-শুধুমাত্র সিস্টেমের ছবি
আপনি যে ডিভাইসটি ফ্ল্যাশ করার চেষ্টা করছেন সেটি নির্বাচন করুন:
Android 13 (QPR3 বিটা 3.2) 64-বিট-শুধুমাত্র সিস্টেম চিত্র
আপনি যে ডিভাইসটি ফ্ল্যাশ করার চেষ্টা করছেন সেটি নির্বাচন করুন:
আপনার ডিভাইস ম্যানুয়ালি ফ্ল্যাশ করুন
আপনি সর্বশেষ সিস্টেম ইমেজ ডাউনলোড করতে পারেন এবং ম্যানুয়ালি আপনার ডিভাইসে ফ্ল্যাশ করতে পারেন। আপনার পরীক্ষা ডিভাইসের জন্য সিস্টেম ইমেজ ডাউনলোড করতে নিম্নলিখিত টেবিল দেখুন. আপনার যদি পরীক্ষার পরিবেশের উপর সুনির্দিষ্ট নিয়ন্ত্রণের প্রয়োজন হয় বা আপনার যদি ঘন ঘন পুনরায় ইনস্টল করার প্রয়োজন হয়, যেমন স্বয়ংক্রিয় পরীক্ষা করার সময় একটি ডিভাইস ম্যানুয়ালি ফ্ল্যাশ করা কার্যকর।
আপনি আপনার ডিভাইসের ডেটা ব্যাক আপ করার পরে এবং ম্যাচিং সিস্টেমের ছবি ডাউনলোড করার পরে, আপনি ছবিটি আপনার ডিভাইসে ফ্ল্যাশ করতে পারেন৷
আপনি যে কোনো সময় সর্বশেষ সর্বজনীন বিল্ডে ফিরে যেতে বেছে নিতে পারেন।
Android 14 (Beta 5.3) এর জন্য 64-বিট-শুধু ফ্যাক্টরি ইমেজ
এই চিত্রগুলি 64-বিট অ্যাপ সামঞ্জস্য পরীক্ষা করার জন্য একটি কঠোর 64-বিট-শুধু পরিবেশ প্রদান করে। এই 64-বিট-শুধু কনফিগারেশনগুলি শুধুমাত্র বিকাশকারীর ব্যবহারের জন্য।
ডিভাইস | ডাউনলোড লিংক | SHA-256 চেকসাম |
---|---|---|
Pixel 4a (5G) | 7e6731fab811ae389f5ff882d5c5a2b8b942b8363b22bbcc038b39d7c539e60a | |
পিক্সেল 5 | c4da6a19086a02f2cd2fa7a4054e870916954b8e5a61e9a07ee942c537e4b45a | |
পিক্সেল 6 | 98943384284cbc7323b8867d84c36151757f67ae7633012fb69cb5d6bec2b554 | |
Pixel 6 Pro | 67ec40be5bd05a40fa5dabc1ce6795aae75d1904193d52e2da00425ed7cb895b |
Android 13 (QPR3 বিটা 3.2) এর জন্য 64-বিট-শুধু কারখানার ছবি
এই চিত্রগুলি 64-বিট অ্যাপ সামঞ্জস্য পরীক্ষা করার জন্য একটি কঠোর 64-বিট-শুধু পরিবেশ প্রদান করে। এই 64-বিট-শুধু কনফিগারেশনগুলি শুধুমাত্র বিকাশকারীর ব্যবহারের জন্য।
ডিভাইস | ডাউনলোড লিংক | SHA-256 চেকসাম |
---|---|---|
Pixel 4a (5G) | b4be40924f62c3c2b3ed20a9f7fa4303aa9c39649d778eb96f86c867fe3ae59a | |
পিক্সেল 5 | 6e5e027a4f64f9f786db9bb69d50d1a551c3f6aad893ae450e1f8279ea1b761a | |
পিক্সেল 6 | becb9b81a5bddad67a4ac32d30a50dcb372b9d083cb7c046e5180510e479a0b8 | |
Pixel 6 Pro | b0ef544ed2312ac44dc827f24999281b147c11d76356c2d06b2c57a191c60480 |
একটি পাবলিক বিল্ড এ ফিরে যান
আপনি ফ্যাক্টরি ইমেজ ফ্ল্যাশ করতে অ্যান্ড্রয়েড ফ্ল্যাশ টুল ব্যবহার করতে পারেন, অথবা নেক্সাস এবং পিক্সেল ডিভাইসের ফ্যাক্টরি ইমেজ পৃষ্ঠা থেকে ফ্যাক্টরি স্পেক সিস্টেম ইমেজ পেতে পারেন এবং তারপর ম্যানুয়ালি ডিভাইসে ফ্ল্যাশ করতে পারেন।
অ্যান্ড্রয়েড এমুলেটর
অ্যান্ড্রয়েড 12 (এপিআই লেভেল 31) থেকে শুরু করে, অ্যান্ড্রয়েড এমুলেটর সিস্টেমের ছবিগুলি শুধুমাত্র 64-বিট। অ্যাপ্লিকেশান পরীক্ষার জন্য একটি কঠোর 64-বিট-শুধু পরিবেশ পেতে Android 12 (API স্তর 31) বা উচ্চতর একটি সিস্টেম চিত্র ব্যবহার করে একটি Android ভার্চুয়াল ডিভাইস (AVD) তৈরি করুন৷
অন্যান্য ডিভাইস বিকল্প
আপনার যদি এই ডিভাইসগুলির মধ্যে একটি না থাকে বা অ্যান্ড্রয়েড এমুলেটর ব্যবহার করতে না পারেন, তাহলে আপনার পরবর্তী সেরা বিকল্প হল 64-বিট সক্ষম এমন একটি ডিভাইস ব্যবহার করা, যেমন একটি Google Pixel বা অন্যান্য ডিভাইস নির্মাতাদের সাম্প্রতিক ফ্ল্যাগশিপ ডিভাইসগুলি।
আপনার অ্যাপ ইনস্টল করুন এবং পরীক্ষা করুন
আপনার APK পরীক্ষা করার সবচেয়ে সহজ উপায় হল Android Debug Bridge (adb) ব্যবহার করে অ্যাপটি ইনস্টল করা। বেশিরভাগ ক্ষেত্রে, আপনি ডিভাইসে কোন লাইব্রেরি ইনস্টল করতে হবে তা নির্দেশ করার জন্য একটি প্যারামিটার হিসাবে --abi
সরবরাহ করতে পারেন। এটি ডিভাইসে শুধুমাত্র 64-বিট লাইব্রেরি সহ অ্যাপটি ইনস্টল করে।
:: Command Line
# A successful install:
> adb install --abi armeabi-v7a YOUR_APK_FILE.apk
Success
# If your APK does not have the 64-bit libraries:
> adb install --abi arm64-v8a YOUR_APK_FILE.apk
adb: failed to install YOUR_APK_FILE.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
# If your device does not support 64-bit, an emulator, for example:
> adb install --abi arm64-v8a YOUR_APK_FILE.apk
ABI arm64-v8a not supported on this device
একবার আপনি সফলভাবে ইনস্টল হয়ে গেলে, আপনার অ্যাপটি পরীক্ষা করুন যেমন আপনি সাধারণত 32-বিট সংস্করণের মতো গুণমান নিশ্চিত করতে চান।
পরিচিত সামঞ্জস্য সমস্যা জন্য পরীক্ষা করুন
আপনি পরীক্ষা করার সময়, 64-বিট ডিভাইসে চলাকালীন অ্যাপগুলিকে প্রভাবিত করে এমন নিম্নলিখিত সমস্যার জন্য আপনার অ্যাপটি পরীক্ষা করুন। এমনকি আপনার অ্যাপ সরাসরি প্রভাবিত লাইব্রেরির উপর নির্ভর না করলেও, আপনার অ্যাপের নির্ভরতার মধ্যে থার্ড-পার্টি লাইব্রেরি এবং SDK হতে পারে।
সোলোডার
আপনি যদি নেটিভ কোড লোডার SDK SoLoader ব্যবহার করেন, তাহলে v0.10.4 বা উচ্চতর সংস্করণে আপডেট করুন। আপনার অ্যাপ যদি SoLoader-এর উপর নির্ভর করে এমন SDK ব্যবহার করে, তবে প্রভাবিত SDK-এর সর্বশেষ স্থিতিশীল সংস্করণে আপডেট করা নিশ্চিত করুন।
SoLoader v0.9.0 এবং Lower অনুমান করে যে সিস্টেম লাইব্রেরিগুলি /vendor/lib:/system/lib
এ উপস্থিত রয়েছে। এই বাগটি Pixel 7-এর মতো ডিভাইসগুলিতে পর্যবেক্ষণযোগ্য নয় যেখানে পাথটি বিদ্যমান, কিন্তু এই অনুমানটি এমন ডিভাইসগুলিতে ক্র্যাশ ঘটায় যেগুলির শুধুমাত্র /vendor/lib64:/system/lib64
এ সিস্টেম লাইব্রেরি রয়েছে।
এটি এবং SoLoader দ্বারা সৃষ্ট অন্যান্য সমস্যার সমাধান সম্পর্কে আরও তথ্যের জন্য, Google সহায়তা কেন্দ্রে সংশ্লিষ্ট উত্তরটি দেখুন।
OpenSSL
আপনি যদি OpenSSL লাইব্রেরি ব্যবহার করেন, OpenSSL 1.1.1i বা উচ্চতর সংস্করণে আপডেট করুন। যদি আপনার অ্যাপটি SDK ব্যবহার করে যা HTTPS ব্যবহার করে যোগাযোগ প্রদান করে, বা OpenSSL-এর উপর নির্ভর করে এমন অন্যান্য SDK, SDK-এর সর্বশেষ সংস্করণে আপডেট করা নিশ্চিত করুন যা একটি নতুন OpenSSL সংস্করণ ব্যবহার করে। একটি উপলব্ধ না হলে SDK প্রদানকারীর সাথে যোগাযোগ করুন৷
ARMv8.3 PAC রানটাইমে পয়েন্টার প্রমাণীকরণ করে হার্ডওয়্যার-সহায়ক নিয়ন্ত্রণ প্রবাহ অখণ্ডতা সক্ষম করে। OpenSSL-এর আগের সংস্করণগুলি এই ক্ষমতাগুলিকে ভুলভাবে ব্যবহার করে, যার ফলে ARMv8.3a এবং তার উপরে ভিত্তিক প্রসেসর সহ সমস্ত ডিভাইসে রানটাইম ক্র্যাশ হয়৷
ওপেনএসএসএল দ্বারা সৃষ্ট এটি এবং অন্যান্য সমস্যার সমাধান সম্পর্কে আরও তথ্যের জন্য, Google সহায়তা কেন্দ্রে সংশ্লিষ্ট উত্তরটি দেখুন।
বিটিআই
JOP আক্রমণ থেকে রক্ষা পেতে ARMv8.5 এবং উচ্চতর ব্যবহার ব্রাঞ্চ টার্গেট ইনস্ট্রাকশন (BTIs)। বিভ্রান্তিকর SDK-এর আগের সংস্করণগুলি যেগুলি BTI-এর সাহায্যে নির্মিত লাইব্রেরির র্যান্ডম অফসেটে শাখা তৈরি করে অ্যাপগুলিকে ক্র্যাশ করতে পারে৷ যেহেতু নির্দেশাবলী HINTs হিসাবে এনকোড করা হয়েছে, এই বাগটি BTI সমর্থন করে না এমন ডিভাইসগুলিতে পর্যবেক্ষণযোগ্য নয়৷
প্রকাশ করুন
যখন আপনি মনে করেন যে আপনার অ্যাপ প্রস্তুত, স্বাভাবিক হিসাবে প্রকাশ করুন। সর্বদা হিসাবে, আপনার অ্যাপ স্থাপনের জন্য সর্বোত্তম অনুশীলনগুলি অনুসরণ করা চালিয়ে যান। আপনার অ্যাপের গুণমান সামঞ্জস্যপূর্ণ তা নিশ্চিত করতে আমরা সীমিত সংখ্যক ব্যবহারকারীর কাছে রোলআউট করার জন্য ক্লোজড টেস্টিং ট্র্যাকগুলির সুবিধা নেওয়ার পরামর্শ দিই।
একটি বড় আপডেট রোল আউট করার সময়, বৃহত্তর দর্শকদের কাছে প্রকাশ করার আগে আপনি 64-বিট-সক্ষম ডিভাইসগুলিতে পুঙ্খানুপুঙ্খভাবে পরীক্ষা করেছেন তা নিশ্চিত করুন৷
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
Google Play-তে প্রকাশিত অ্যাপগুলিকে 64-বিট আর্কিটেকচার সমর্থন করতে হবে। আপনার অ্যাপের একটি 64-বিট সংস্করণ যোগ করা কার্যক্ষমতার উন্নতি প্রদান করে এবং 64-বিট-কেবল-হার্ডওয়্যার সহ ডিভাইসগুলির জন্য আপনাকে সেট আপ করে৷
নিম্নলিখিত পদক্ষেপগুলি নিশ্চিত করে যে আপনার 32-বিট অ্যাপটি 64-বিট ডিভাইসগুলিকে সমর্থন করে৷
আপনার অ্যাপ্লিকেশন মূল্যায়ন
যদি আপনার অ্যাপটি শুধুমাত্র জাভা প্রোগ্রামিং ভাষায় বা কোটলিনে লেখা কোড ব্যবহার করে, যার মধ্যে সব লাইব্রেরি বা SDK সহ, তাহলে আপনার অ্যাপটি 64-বিট ডিভাইস সমর্থন করে। যদি আপনার অ্যাপ কোনো নেটিভ কোড ব্যবহার করে, অথবা আপনি তা করে কিনা তা নিশ্চিত না হন, তাহলে আপনার অ্যাপের মূল্যায়ন করুন।
দ্রুত স্থিতি পরীক্ষা
প্লে কনসোলে যান এবং বিদ্যমান রিলিজগুলি মেনে চলছে কিনা তা দেখতে দেখুন।
64-বিট প্রয়োজনীয়তা সম্পর্কিত কোনও সমস্যা থাকলে Play Console সতর্কতাগুলিও দেখায় যা আপনার ড্রাফ্ট রিলিজে প্রযোজ্য। নিম্নলিখিত চিত্র একটি উদাহরণ.
যদি একটি সতর্কতা উপস্থিত হয়, আপনার অ্যাপটিকে 64-বিট ডিভাইসের সাথে সামঞ্জস্যপূর্ণ করতে নিম্নলিখিত পদক্ষেপগুলি দেখুন৷
আপনার অ্যাপ কি নেটিভ কোড ব্যবহার করে?
আপনার অ্যাপটি নেটিভ কোড ব্যবহার করে যদি এটি:
- আপনার অ্যাপে যেকোনো C/C++ (নেটিভ) কোড ব্যবহার করে।
- যেকোনো তৃতীয় পক্ষের নেটিভ লাইব্রেরির সাথে লিঙ্ক।
- একটি থার্ড-পার্টি অ্যাপ বিল্ডার দ্বারা নির্মিত যা নেটিভ লাইব্রেরি ব্যবহার করে।
আপনার অ্যাপ কি 64-বিট লাইব্রেরি অন্তর্ভুক্ত করে?
আপনার APK ফাইলের গঠন পরিদর্শন করুন। নির্মিত হলে, অ্যাপটির জন্য প্রয়োজনীয় যেকোন নেটিভ লাইব্রেরির সাথে APK প্যাকেজ করা হয়। স্থানীয় লাইব্রেরিগুলি ABI-এর উপর ভিত্তি করে বিভিন্ন ফোল্ডারে সংরক্ষণ করা হয়। প্রতিটি 64-বিট আর্কিটেকচারকে সমর্থন করার প্রয়োজন নেই, তবে আপনি সমর্থন করেন এমন প্রতিটি নেটিভ 32-বিট আর্কিটেকচারের জন্য আপনাকে অবশ্যই সংশ্লিষ্ট 64-বিট আর্কিটেকচার অন্তর্ভুক্ত করতে হবে।
ARM আর্কিটেকচারের জন্য, 32-বিট লাইব্রেরিগুলি armeabi-v7a এ অবস্থিত। 64-বিট সমতুল্য হল arm64-v8a ।
x86 আর্কিটেকচারের জন্য, 32-বিটের জন্য x86 এবং 64-বিটের জন্য x86_64 সন্ধান করুন।
এই দুটি ফোল্ডারে আপনার নেটিভ লাইব্রেরি আছে তা নিশ্চিত করুন। সংক্ষেপে:
প্ল্যাটফর্ম | 32-বিট লাইব্রেরি ফোল্ডার | 64-বিট লাইব্রেরি ফোল্ডার |
---|---|---|
এআরএম | lib/armeabi-v7a | lib/arm64-v8a |
x86 | lib/x86 | lib/x86_64 |
মনে রাখবেন যে আপনার অ্যাপের উপর নির্ভর করে, প্রতিটি ফোল্ডারে লাইব্রেরির ঠিক একই সেট থাকতে পারে বা নাও থাকতে পারে। লক্ষ্য হল আপনার অ্যাপটি 64-বিট-শুধুমাত্র পরিবেশে সঠিকভাবে চলে তা নিশ্চিত করা।
একটি সাধারণ ক্ষেত্রে, একটি APK বা বান্ডেল যা 32-বিট এবং 64-বিট উভয় আর্কিটেকচারের জন্য তৈরি করা হয়েছে উভয় ABI-এর জন্য ফোল্ডার রয়েছে, প্রতিটিতে একটি সংশ্লিষ্ট স্থানীয় লাইব্রেরি রয়েছে। 64-বিটের জন্য কোন সমর্থন না থাকলে, আপনি একটি 32-বিট ABI ফোল্ডার দেখতে পারেন কিন্তু একটি 64-বিট ফোল্ডার নয়।
APK বিশ্লেষক ব্যবহার করে নেটিভ লাইব্রেরি খুঁজুন
APK বিশ্লেষক একটি টুল যা আপনাকে একটি নির্মিত APK এর বিভিন্ন দিক মূল্যায়ন করতে দেয়। যেকোনো নেটিভ লাইব্রেরি খুঁজে পেতে এটি ব্যবহার করুন এবং 64-বিট লাইব্রেরি উপস্থিত রয়েছে তা নিশ্চিত করুন।
- অ্যান্ড্রয়েড স্টুডিও খুলুন, এবং যে কোনও প্রকল্প খুলুন ।
মেনু থেকে, Build > Analyze APK নির্বাচন করুন …
আপনি যে APK মূল্যায়ন করতে চান সেটি বেছে নিন।
lib ফোল্ডারের মধ্যে দেখুন, যা '.so' ফাইলগুলি হোস্ট করে যদি থাকে। যদি কোনটি না থাকে, তাহলে আপনার অ্যাপটি 64-বিট ডিভাইসগুলিকে সমর্থন করে এবং আর কোনও পদক্ষেপের প্রয়োজন নেই৷ আপনি যদি armeabi-v7a বা x86 দেখতে পান, তাহলে আপনার 32-বিট লাইব্রেরি আছে।
arm64-v8a বা x86_64 ফোল্ডারে আপনার অনুরূপ '.so' ফাইল আছে কিনা তা পরীক্ষা করে দেখুন।
আপনার যদি কোনো arm64-v8a বা x86_64 লাইব্রেরি না থাকে, তাহলে আপনার APK-এ সেই আর্টিফ্যাক্টগুলি তৈরি এবং প্যাকেজ করা শুরু করতে আপনার বিল্ড প্রক্রিয়া আপডেট করুন৷
যদি আপনি ইতিমধ্যে উভয় লাইব্রেরি প্যাকেজ করা দেখতে পান, আপনি 64-বিট হার্ডওয়্যারে আপনার অ্যাপ পরীক্ষা করতে এগিয়ে যেতে পারেন৷
APK আনজিপ করে নেটিভ লাইব্রেরি খুঁজুন
APK ফাইলগুলি জিপ ফাইলের মতো গঠন করা হয়। কমান্ড লাইন বা অন্য কোনো নিষ্কাশন সরঞ্জামের সাহায্যে, APK ফাইলটি বের করুন। আপনার নিষ্কাশন সরঞ্জামের উপর নির্ভর করে, আপনাকে ফাইলটির নাম পরিবর্তন করে .zip করতে হতে পারে।
আপনার অ্যাপটি 64-বিট ডিভাইস সমর্থন করে কিনা তা নির্ধারণ করতে উপরের নির্দেশিকা অনুসরণ করে এক্সট্র্যাক্ট করা ফাইলগুলি ব্রাউজ করুন। আপনি কমান্ড লাইন থেকে নিম্নলিখিত কমান্ড উদাহরণ চালাতে পারেন:
:: Command Line
> zipinfo -1 YOUR_APK_FILE.apk | grep \.so$
lib/armeabi-v7a/libmain.so
lib/armeabi-v7a/libmono.so
lib/armeabi-v7a/libunity.so
lib/arm64-v8a/libmain.so
lib/arm64-v8a/libmono.so
lib/arm64-v8a/libunity.so
এই উদাহরণে armeabi-v7a এবং arm64-v8a লাইব্রেরির উপস্থিতি নোট করুন, যার মানে অ্যাপটি 64-বিট আর্কিটেকচার সমর্থন করে।
64-বিট লাইব্রেরি দিয়ে আপনার অ্যাপ তৈরি করুন
নিম্নলিখিত নির্দেশাবলী 64-বিট লাইব্রেরি কীভাবে তৈরি করতে হয় তার রূপরেখা দেয়। মনে রাখবেন যে এই পদক্ষেপগুলি শুধুমাত্র বিল্ডিং কোড এবং লাইব্রেরিগুলিকে কভার করে যা আপনি উত্স থেকে তৈরি করতে সক্ষম।
Android Studio বা Gradle দিয়ে তৈরি করুন
বেশিরভাগ অ্যান্ড্রয়েড স্টুডিও প্রকল্প অন্তর্নিহিত বিল্ড সিস্টেম হিসাবে গ্রেডল ব্যবহার করে, তাই এই বিভাগটি উভয় ক্ষেত্রেই প্রযোজ্য। আপনার নেটিভ কোডের জন্য বিল্ডগুলি সক্ষম করতে, আপনার অ্যাপের 'build.gradle' ফাইলের ndk.abiFilters সেটিংসে আপনি যে আর্কিটেকচারগুলিকে সমর্থন করতে চান তার উপর নির্ভর করে arm64-v8a এবং/অথবা x86_64 যোগ করুন:
গ্রোভি
// Your app's build.gradle plugins { id 'com.android.app' } android { compileSdkVersion 27 defaultConfig { appId "com.google.example.64bit" minSdkVersion 15 targetSdkVersion 28 versionCode 1 versionName "1.0" ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64' // ...
কোটলিন
// Your app's build.gradle plugins { id("com.android.app") } android { compileSdkVersion(27) defaultConfig { appId = "com.google.example.64bit" minSdkVersion(15) targetSdkVersion(28) versionCode = 1 versionName = "1.0" ndk { abiFilters += listOf("armeabi-v7a","arm64-v8a","x86","x86_64") } // ...
CMake দিয়ে তৈরি করুন
যদি আপনার অ্যাপটি CMake ব্যবহার করে তৈরি করা হয়, তাহলে আপনি '-DANDROID_ABI' প্যারামিটারে arm64-v8a পাস করে 64-বিট ABI-এর জন্য তৈরি করতে পারেন:
:: Command Line
> cmake -DANDROID_ABI=arm64-v8a … or
> cmake -DANDROID_ABI=x86_64 …
ndk-বিল্ড দিয়ে তৈরি করুন
যদি আপনার অ্যাপটি ndk-build দিয়ে তৈরি করা হয়, তাহলে আপনি APP_ABI
ভেরিয়েবল ব্যবহার করে আপনার 'Application.mk' ফাইলটি পরিবর্তন করে 64-বিট ABI-এর জন্য তৈরি করতে পারেন:
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
32-বিট কোড 64-বিটে পোর্ট করুন
যদি আপনার কোড ইতিমধ্যেই ডেস্কটপ বা iOS এ চলে, তাহলে আপনাকে Android এর জন্য কোনো অতিরিক্ত কাজ করতে হবে না। যদি এই প্রথমবার আপনার কোড একটি 64-বিট সিস্টেমের জন্য তৈরি করা হয়, তাহলে আপনাকে যে প্রধান সমস্যাটি সমাধান করতে হবে তা হল int
মতো 32-বিট পূর্ণসংখ্যার ধরনে পয়েন্টারগুলি আর ফিট নয়।
কোড আপডেট করুন যা পয়েন্টারকে int
, unsigned
, বা uint32_t
এর মতো প্রকারে সংরক্ষণ করে। ইউনিক্স সিস্টেমে, long
পয়েন্টারের আকারের সাথে মেলে, তবে এটি উইন্ডোজে সত্য নয়। পরিবর্তে, উদ্দেশ্য-প্রকাশক প্রকারগুলি ব্যবহার করুন uintptr_t
বা intptr_t
। দুটি পয়েন্টারের মধ্যে পার্থক্য সংরক্ষণ করতে, ptrdiff_t
টাইপ ব্যবহার করুন।
আপনার সর্বদা <stdint.h>
এ সংজ্ঞায়িত নির্দিষ্ট, স্থির-প্রস্থের পূর্ণসংখ্যার ধরন পছন্দ করা উচিত, অ-নির্দিষ্ট-প্রস্থ প্রকার যেমন int
বা long
, এমনকি অ-পয়েন্টারের জন্যও।
যে ক্ষেত্রে আপনার কোড ভুলভাবে পয়েন্টার এবং পূর্ণসংখ্যার মধ্যে রূপান্তর করছে তা ধরতে নিম্নলিখিত কম্পাইলার পতাকাগুলি ব্যবহার করুন:
-Werror=pointer-to-int-cast
-Werror=int-to-pointer-cast
-Werror=shorten-64-to-32
int
ক্ষেত্র সহ জাভা ক্লাস যা C/C++ অবজেক্টের পয়েন্টার ধরে রাখে তাদের একই সমস্যা রয়েছে। আপনার JNI উৎসে jint
অনুসন্ধান করুন এবং নিশ্চিত করুন যে আপনি জাভা পাশে long
এবং C++ পাশে jlong
এ স্যুইচ করেছেন।
অন্তর্নিহিত ফাংশন ঘোষণা 64-বিট কোডের জন্য অনেক বেশি বিপজ্জনক। C/C++ অনুমান করে যে একটি অন্তর্নিহিত ঘোষিত ফাংশনের রিটার্ন টাইপ (অর্থাৎ, একটি ফাংশন যার জন্য কম্পাইলার কোনো ঘোষণা দেখেনি) হল int
। যদি আপনার ফাংশনের আসল রিটার্ন টাইপটি একটি পয়েন্টার হয় তবে এটি একটি 32-বিট সিস্টেমে সূক্ষ্ম কাজ করে যেখানে আপনার পয়েন্টারটি একটি int-এ ফিট করে। যাইহোক, একটি 64-বিট সিস্টেমে, কম্পাইলার আপনার পয়েন্টারের উপরের অর্ধেক ড্রপ করে। যেমন:
// This function returns a pointer:
// extern char* foo();
// If you don't include a header that declares it,
// when the compiler sees this:
char* result = foo();
// Instead of compiling that to:
result = foo();
// It compiles to something equivalent to:
result = foo() & 0xffffffff;
// Which will then cause a SIGSEGV if you try to dereference `result`.
নিম্নলিখিত কম্পাইলার ফ্ল্যাগ অন্তর্নিহিত ফাংশন ঘোষণা সতর্কতাগুলিকে ত্রুটিতে পরিণত করে যাতে আপনি এই সমস্যাটি আরও সহজে খুঁজে পেতে এবং সমাধান করতে পারেন:
-Werror=implicit-function-declaration
আপনার যদি ইনলাইন অ্যাসেম্বলার থাকে তবে এটি পুনরায় লিখুন বা একটি সাধারণ C/C++ বাস্তবায়ন ব্যবহার করুন।
আপনার যদি হার্ড-কোডেড আকারের প্রকারগুলি থাকে (উদাহরণস্বরূপ, 8 বা 16 বাইট), সেগুলিকে সমতুল্য sizeof(T)
এক্সপ্রেশন দিয়ে প্রতিস্থাপন করুন, যেমন sizeof(void*)
।
আপনি যদি শর্তসাপেক্ষে 64-বিটের চেয়ে 32-বিটের জন্য ভিন্ন কোড কম্পাইল করতে চান, তাহলে আপনি জেনেরিক 32/64 পার্থক্যের জন্য #if defined(__LP64__)
, অথবা __arm__
, __aarch64__
(arm64), __i386__
(x86), এবং __x86_64__
নির্দিষ্ট Android archite সমর্থনের জন্য ব্যবহার করতে পারেন।
printf
বা scanf
-এর মতো ফাংশনগুলির জন্য বিন্যাস স্ট্রিংগুলি সামঞ্জস্য করুন, কারণ প্রথাগত বিন্যাস নির্দিষ্টকারী আপনাকে 64-বিট প্রকারগুলিকে এমনভাবে নির্দিষ্ট করার অনুমতি দেয় না যা 32-বিট এবং 64-বিট উভয় ডিভাইসের জন্যই সঠিক। <inttypes.h>
এ PRI
এবং SCN
ম্যাক্রো এই সমস্যার সমাধান করে, হেক্স পয়েন্টার লেখা ও পড়ার জন্য PRIxPTR
এবং SCNxPTR
; এবং PRId64
এবং SCNd64
পোর্টেবলভাবে 64-বিট মান লেখা এবং পড়ার জন্য।
স্থানান্তর করার সময়, আপনাকে 1
ব্যবহার করার পরিবর্তে একটি 64-বিট ধ্রুবক পেতে 1ULL
ব্যবহার করতে হতে পারে, যা শুধুমাত্র 32 বিট।
অ্যান্ড্রয়েড অ্যাপ বান্ডেলের সাহায্যে প্রশমিত আকার বৃদ্ধি পায়
আপনার অ্যাপে 64-বিট আর্কিটেকচার সমর্থন যোগ করলে আপনার APK আকার বৃদ্ধি পেতে পারে। একই APK-এ 32- এবং 64-বিট নেটিভ কোড উভয়ই অন্তর্ভুক্ত করার সাইজ ইমপ্যাক্ট কমাতে আমরা দৃঢ়ভাবে Android অ্যাপ বান্ডেল বৈশিষ্ট্যের সুবিধা নেওয়ার সুপারিশ করছি।
গেম ডেভেলপার
তিনটি সর্বাধিক ব্যবহৃত ইঞ্জিন 64-বিট সমর্থন করে:
- 2015 সাল থেকে অবাস্তব
- 2015 সাল থেকে Cocos2d
- 2018 সাল থেকে ঐক্য
ঐক্য বিকাশকারীরা
সক্ষম সংস্করণে আপগ্রেড করুন
ইউনিটি 2018.2 এবং 2017.4.16 সংস্করণের সাথে 64-বিট সমর্থন প্রদান করে।
আপনি যদি ইউনিটির এমন একটি সংস্করণে থাকেন যা 64-বিট সমর্থন করে না, তাহলে আপনি যে সংস্করণটি আপগ্রেড করতে চান তা নির্ধারণ করুন এবং আপনার পরিবেশকে স্থানান্তরিত করার জন্য ইউনিটি যে গাইডগুলি সরবরাহ করে তা অনুসরণ করুন, আপনার অ্যাপটি এমন একটি সংস্করণে আপগ্রেড করা হয়েছে যা 64-বিট লাইব্রেরি তৈরি করতে পারে তা নিশ্চিত করে৷ ইউনিটি আপনাকে সম্পাদকের সর্বশেষ LTS সংস্করণে আপগ্রেড করার মাধ্যমে সর্বশেষ বৈশিষ্ট্য এবং আপডেটগুলিতে অ্যাক্সেস করার পরামর্শ দেয়।
এখানে একটি চার্ট রয়েছে যা বিভিন্ন ইউনিটি সংস্করণের রূপরেখা দেয় এবং আপনার কী করা উচিত:
ইউনিটি সংস্করণ | সংস্করণ 64-বিট সমর্থন করে? | প্রস্তাবিত কর্মের কোর্স |
---|---|---|
2020.x | ✔️ | আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2019.x | ✔️ | আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2018.4 (LTS) | ✔️ | আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2018.3 | ✔️ | আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2018.2 | ✔️ | আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2018.1 | ➖ | পরীক্ষামূলক 64-বিট সমর্থন আছে। |
2017.4 (LTS) | ✔️ | 2017.4.16 হিসাবে সমর্থিত। আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2017.3 | ✖️ | 64-বিট সমর্থন করে এমন সংস্করণে আপগ্রেড করুন। |
2017.2 | ✖️ | 64-বিট সমর্থন করে এমন সংস্করণে আপগ্রেড করুন। |
2017.1 | ✖️ | 64-বিট সমর্থন করে এমন সংস্করণে আপগ্রেড করুন। |
<=5.6 | ✖️ | 64-বিট সমর্থন করে এমন সংস্করণে আপগ্রেড করুন। |
আউটপুট 64-বিট লাইব্রেরিতে বিল্ড সেটিংস পরিবর্তন করুন
আপনি যদি ইউনিটির একটি সংস্করণ ব্যবহার করেন যা 64-বিট অ্যান্ড্রয়েড লাইব্রেরি সমর্থন করে, আপনি আপনার বিল্ড সেটিংস সামঞ্জস্য করে আপনার অ্যাপের একটি 64-বিট সংস্করণ তৈরি করতে পারেন। আপনার স্ক্রিপ্টিং ব্যাকএন্ড হিসাবে IL2CPP ব্যাকএন্ড ব্যবহার করুন। 64-বিট আর্কিটেকচার তৈরি করতে আপনার ইউনিটি প্রকল্প সেট আপ করতে, নিম্নলিখিতগুলি করুন:
- বিল্ড সেটিংসে যান এবং প্ল্যাটফর্মের অধীনে একতা প্রতীকটি Android এর পাশে রয়েছে তা যাচাই করে নিশ্চিত করুন যে আপনি Android এর জন্য তৈরি করছেন। 1. যদি ইউনিটি চিহ্নটি অ্যান্ড্রয়েড প্ল্যাটফর্মের পাশে না থাকে তবে অ্যান্ড্রয়েড নির্বাচন করুন এবং প্ল্যাটফর্ম স্যুইচ করুন ক্লিক করুন।
প্লেয়ার সেটিংস ক্লিক করুন.
প্লেয়ার সেটিংস প্যানেলে নেভিগেট করুন > Android এর জন্য সেটিংস > অন্যান্য সেটিংস > কনফিগারেশন
IL2CPP-এ স্ক্রিপ্টিং ব্যাকএন্ড সেট করুন ।
টার্গেট আর্কিটেকচার > ARM64 চেকবক্স নির্বাচন করুন।
স্বাভাবিক হিসাবে নির্মাণ!
মনে রাখবেন যে ARM64-এর জন্য বিল্ডিং করার জন্য আপনার সমস্ত সম্পদ বিশেষভাবে সেই প্ল্যাটফর্মের জন্য তৈরি করা প্রয়োজন। APK আকার হ্রাস করার জন্য ইউনিটির নির্দেশিকা অনুসরণ করুন, এবং আকারের এই বৃদ্ধি কমাতে সহায়তা করার জন্য Android অ্যাপ বান্ডেল বৈশিষ্ট্যের সুবিধা নেওয়ার কথা বিবেচনা করুন।
মাল্টি-এপিকে এবং 64-বিট সম্মতি
আপনি যদি আপনার অ্যাপ প্রকাশ করতে Google Play-এর একাধিক-APK সমর্থন ব্যবহার করেন, তাহলে মনে রাখবেন যে 64-বিট প্রয়োজনীয়তার সাথে সম্মতি প্রকাশের স্তরে মূল্যায়ন করা হয়। যাইহোক, 64-বিট প্রয়োজনীয়তা APK বা অ্যাপ বান্ডেলগুলিতে প্রযোজ্য নয় যেগুলি Android 9 Pie বা তার পরে চলমান ডিভাইসগুলিতে বিতরণ করা হয় না।
যদি আপনার APKগুলির মধ্যে একটি অনুগত নয় বলে চিহ্নিত করা হয়, কিন্তু এটি একটি পূর্ববর্তী সংস্করণ এবং এটিকে সম্মতিতে আনা সম্ভব না হয়, একটি কৌশল হল সেই APK-এর ম্যানিফেস্টের uses-sdk
উপাদানে একটি maxSdkVersion="27"
অ্যাট্রিবিউট যোগ করা। এই APK Android 9 Pie বা তার পরে চলমান ডিভাইসগুলিতে বিতরণ করা হয় না এবং আর সম্মতি ব্লক করে না।
রেন্ডারস্ক্রিপ্ট এবং 64-বিট সম্মতি
যদি আপনার অ্যাপ রেন্ডারস্ক্রিপ্ট ব্যবহার করে এবং Android টুলের পূর্ববর্তী সংস্করণ দিয়ে তৈরি করা হয়, তাহলে আপনি অ্যাপের জন্য 64-বিট কমপ্লায়েন্স সমস্যা দেখতে পারেন। 21.0.0 এর আগে বিল্ড টুলের সাথে, কম্পাইলার একটি বহিরাগত .bc
ফাইলে বিটকোড তৈরি করতে পারে। এই উত্তরাধিকারী .bc
ফাইলগুলি আর 64-বিট আর্কিটেকচারের জন্য সমর্থিত নয়, তাই আপনার APK-এ ফাইলের উপস্থিতি সম্মতির সমস্যা সৃষ্টি করে৷
সমস্যাটি সমাধান করতে, আপনার প্রকল্পের যেকোনো .bc
ফাইল মুছে ফেলুন, আপনার পরিবেশ build-tools-21.0.0
বা তার পরে আপগ্রেড করুন এবং কম্পাইলারকে .bc
ফাইলগুলি নির্গত না করার জন্য Android স্টুডিওতে renderscriptTargetApi
-কে 21+ সেট করুন৷ তারপরে, আপনার অ্যাপ পুনর্নির্মাণ করুন, .bc
ফাইলগুলি পরীক্ষা করুন এবং Play Console-এ আপলোড করুন।
64-বিট হার্ডওয়্যারে আপনার অ্যাপ পরীক্ষা করুন
আপনার অ্যাপের 64-বিট সংস্করণটি 32-বিট সংস্করণের মতো একই গুণমান এবং বৈশিষ্ট্য সেট করা উচিত। সর্বশেষ 64-বিট ডিভাইসের ব্যবহারকারীদের আপনার অ্যাপে দুর্দান্ত অভিজ্ঞতা রয়েছে তা নিশ্চিত করতে আপনার অ্যাপটি পরীক্ষা করুন।
64-বিট-শুধুমাত্র ডিভাইস
যখনই সম্ভব, আমরা নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করে একটি কঠোর 64-বিট-শুধু পরিবেশে আপনার অ্যাপটি পরীক্ষা করার পরামর্শ দিই:
একটি 64-বিট-শুধুমাত্র সিস্টেম চিত্র সহ Google Pixel
অ্যাপ ডেভেলপমেন্ট এবং টেস্টিং সহজতর করার জন্য, আমরা কিছু Pixel ডিভাইসের জন্য একটি কঠোর 64-বিট-শুধু পরিবেশ সহ বিশেষ সিস্টেম চিত্র প্রদান করেছি। এই 64-বিট-শুধু ইমেজগুলি মূলত অ্যান্ড্রয়েড 13 এবং 14 প্রিভিউ রিলিজের জন্য স্ট্যান্ডার্ড ফ্যাক্টরি সিস্টেম ইমেজগুলির সাথে একযোগে প্রদান করা হয়েছিল, কিন্তু আপনি 64-বিট সামঞ্জস্যের জন্য আপনার অ্যাপটি পরীক্ষা করার সময় সেগুলি ব্যবহার করা চালিয়ে যেতে পারেন।
একটি 64-বিট-শুধুমাত্র ছবি পান
কারখানা সিস্টেমের চিত্রগুলির মতো, আপনি অ্যান্ড্রয়েড ফ্ল্যাশ সরঞ্জামটি ব্যবহার করে বা আপনার ডিভাইসটিকে ম্যানুয়ালি ফ্ল্যাশ করে নিম্নলিখিত বিভাগগুলিতে বর্ণিত হিসাবে আপনার ডিভাইসে একটি 64-বিট-কেবল চিত্র ফ্ল্যাশ করতে পারেন।
অ্যান্ড্রয়েড ফ্ল্যাশ টুল ব্যবহার করে আপনার ডিভাইস ফ্ল্যাশ করুন
অ্যান্ড্রয়েড ফ্ল্যাশ টুল আপনাকে আপনার সমর্থিত পিক্সেল ডিভাইসে সুরক্ষিতভাবে একটি সিস্টেম ইমেজ ফ্ল্যাশ করতে দেয়। Android Flash Tool যেকোন ওয়েব ব্রাউজারে কাজ করে যা WebUSB সমর্থন করে, যেমন Chrome বা Edge 79+।
অ্যান্ড্রয়েড ফ্ল্যাশ টুল আপনাকে আপনার ডিভাইস ফ্ল্যাশ করার প্রক্রিয়ার মাধ্যমে ধাপে ধাপে গাইড করে—কোনও সরঞ্জাম ইনস্টল করার প্রয়োজন নেই—কিন্তু আপনাকে আপনার ডিভাইস আনলক করতে হবে এবং বিকাশকারী বিকল্পগুলিতে USB ডিবাগিং সক্ষম করতে হবে ৷ সম্পূর্ণ নির্দেশাবলীর জন্য, অ্যান্ড্রয়েড ফ্ল্যাশ টুল ডকুমেন্টেশন দেখুন।
আপনার ডিভাইসটি ইউএসবি -র মাধ্যমে সংযুক্ত করুন, তারপরে, আপনি যে ধরণের সিস্টেম চিত্রটি ফ্ল্যাশ করতে চান তার উপর নির্ভর করে নিম্নলিখিত লিঙ্কগুলির একটি ব্যবহার করে অ্যান্ড্রয়েড ফ্ল্যাশ সরঞ্জামে নেভিগেট করুন এবং অনস্ক্রিন গাইডেন্স অনুসরণ করুন:
অ্যান্ড্রয়েড 14 (বিটা 5.2) 64-বিট-কেবল সিস্টেম চিত্র
আপনি যে ডিভাইসটি ফ্ল্যাশ করার চেষ্টা করছেন তা নির্বাচন করুন:
অ্যান্ড্রয়েড 13 (কিউপিআর 3 বিটা 3.2) 64-বিট-কেবল সিস্টেম চিত্র
আপনি যে ডিভাইসটি ফ্ল্যাশ করার চেষ্টা করছেন তা নির্বাচন করুন:
আপনার ডিভাইস ম্যানুয়ালি ফ্ল্যাশ করুন
আপনি সর্বশেষ সিস্টেম ইমেজ ডাউনলোড করতে পারেন এবং ম্যানুয়ালি আপনার ডিভাইসে ফ্ল্যাশ করতে পারেন। আপনার পরীক্ষা ডিভাইসের জন্য সিস্টেম ইমেজ ডাউনলোড করতে নিম্নলিখিত টেবিল দেখুন. আপনার যদি পরীক্ষার পরিবেশের উপর সুনির্দিষ্ট নিয়ন্ত্রণের প্রয়োজন হয় বা আপনার যদি ঘন ঘন পুনরায় ইনস্টল করার প্রয়োজন হয়, যেমন স্বয়ংক্রিয় পরীক্ষা করার সময় একটি ডিভাইস ম্যানুয়ালি ফ্ল্যাশ করা কার্যকর।
আপনি আপনার ডিভাইসের ডেটা ব্যাক আপ করার পরে এবং ম্যাচিং সিস্টেমের ছবি ডাউনলোড করার পরে, আপনি ছবিটি আপনার ডিভাইসে ফ্ল্যাশ করতে পারেন৷
আপনি যে কোনো সময় সর্বশেষ সর্বজনীন বিল্ডে ফিরে যেতে বেছে নিতে পারেন।
অ্যান্ড্রয়েড 14 এর জন্য কেবল 64-বিট-কেবল কারখানার চিত্র (বিটা 5.3)
এই চিত্রগুলি 64-বিট অ্যাপের সামঞ্জস্যতা পরীক্ষার জন্য একটি কঠোর 64-বিট-কেবল পরিবেশ সরবরাহ করে। এই 64-বিট-কেবল কনফিগারেশনগুলি কেবল বিকাশকারী ব্যবহারের জন্য।
ডিভাইস | ডাউনলোড লিংক | SHA-256 চেকসাম |
---|---|---|
Pixel 4a (5G) | 7e6731fab811ae389f5ff882d5c5a2b8b942b8363b22bbcc038b39d7c539e60a | |
পিক্সেল 5 | c4da6a19086a02f2cd2fa7a4054e870916954b8e5a61e9a07ee942c537e4b45a | |
পিক্সেল 6 | 98943384284cbc7323b8867d84c36151757f67ae7633012fb69cb5d6bec2b554 | |
Pixel 6 Pro | 67ec40be5bd05a40fa5dabc1ce6795aae75d1904193d52e2da00425ed7cb895b |
অ্যান্ড্রয়েড 13 এর জন্য কেবল 64-বিট-কেবল কারখানার চিত্র (কিউপিআর 3 বিটা 3.2)
এই চিত্রগুলি 64-বিট অ্যাপের সামঞ্জস্যতা পরীক্ষার জন্য একটি কঠোর 64-বিট-কেবল পরিবেশ সরবরাহ করে। এই 64-বিট-কেবল কনফিগারেশনগুলি কেবল বিকাশকারী ব্যবহারের জন্য।
ডিভাইস | ডাউনলোড লিংক | SHA-256 চেকসাম |
---|---|---|
Pixel 4a (5G) | b4be40924f62c3c2b3ed20a9f7fa4303aa9c39649d778eb96f86c867fe3ae59a | |
পিক্সেল 5 | 6e5e027a4f64f9f786db9bb69d50d1a551c3f6aad893ae450e1f8279ea1b761a | |
পিক্সেল 6 | becb9b81a5bddad67a4ac32d30a50dcb372b9d083cb7c046e5180510e479a0b8 | |
Pixel 6 Pro | b0ef544ed2312ac44dc827f24999281b147c11d76356c2d06b2c57a191c60480 |
একটি পাবলিক বিল্ড এ ফিরে যান
আপনি ফ্যাক্টরি ইমেজ ফ্ল্যাশ করতে অ্যান্ড্রয়েড ফ্ল্যাশ টুল ব্যবহার করতে পারেন, অথবা নেক্সাস এবং পিক্সেল ডিভাইসের ফ্যাক্টরি ইমেজ পৃষ্ঠা থেকে ফ্যাক্টরি স্পেক সিস্টেম ইমেজ পেতে পারেন এবং তারপর ম্যানুয়ালি ডিভাইসে ফ্ল্যাশ করতে পারেন।
অ্যান্ড্রয়েড এমুলেটর
অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) থেকে শুরু করে অ্যান্ড্রয়েড এমুলেটর সিস্টেমের চিত্রগুলি কেবল 64-বিট। অ্যাপ্লিকেশন পরীক্ষার জন্য কঠোর 64৪-বিট-কেবল পরিবেশ পেতে অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর সহ একটি সিস্টেম চিত্র ব্যবহার করে একটি অ্যান্ড্রয়েড ভার্চুয়াল ডিভাইস (এভিডি) তৈরি করুন।
অন্যান্য ডিভাইস বিকল্প
আপনার যদি এই ডিভাইসগুলির মধ্যে একটি না থাকে বা অ্যান্ড্রয়েড এমুলেটরটি ব্যবহার করতে না পারে তবে আপনার পরবর্তী সেরা বিকল্পটি এমন একটি ডিভাইস ব্যবহার করা যা 64-বিট সক্ষম, যেমন গুগল পিক্সেল বা অন্যান্য ডিভাইস প্রস্তুতকারকদের কাছ থেকে সাম্প্রতিক অন্যান্য ফ্ল্যাগশিপ ডিভাইসগুলি।
আপনার অ্যাপ্লিকেশনটি ইনস্টল করুন এবং পরীক্ষা করুন
আপনার এপিকে পরীক্ষা করার সহজতম উপায় হ'ল অ্যান্ড্রয়েড ডিবাগ ব্রিজ (এডিবি) ব্যবহার করে অ্যাপটি ইনস্টল করা। বেশিরভাগ ক্ষেত্রে, আপনি ডিভাইসে কোন গ্রন্থাগারগুলি ইনস্টল করতে হবে তা নির্দেশ করতে আপনি --abi
একটি প্যারামিটার হিসাবে সরবরাহ করতে পারেন। এটি ডিভাইসে কেবলমাত্র 64-বিট লাইব্রেরি সহ অ্যাপটি ইনস্টল করে।
:: Command Line
# A successful install:
> adb install --abi armeabi-v7a YOUR_APK_FILE.apk
Success
# If your APK does not have the 64-bit libraries:
> adb install --abi arm64-v8a YOUR_APK_FILE.apk
adb: failed to install YOUR_APK_FILE.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
# If your device does not support 64-bit, an emulator, for example:
> adb install --abi arm64-v8a YOUR_APK_FILE.apk
ABI arm64-v8a not supported on this device
একবার আপনি সফলভাবে ইনস্টল হয়ে গেলে, আপনার অ্যাপটি পরীক্ষা করুন যেমন আপনি সাধারণত 32-বিট সংস্করণের মতো গুণমানটি নিশ্চিত করতে পারেন।
পরিচিত সামঞ্জস্যতার সমস্যাগুলির জন্য পরীক্ষা করুন
আপনি পরীক্ষা করার সময়, 64-বিট ডিভাইসে চলার সময় অ্যাপ্লিকেশনগুলিকে প্রভাবিত করে এমন নিম্নলিখিত সমস্যাগুলির জন্য আপনার অ্যাপ্লিকেশনটি পরীক্ষা করুন। এমনকি যদি আপনার অ্যাপ্লিকেশনটি সরাসরি আক্রান্ত গ্রন্থাগারগুলির উপর নির্ভর না করে তবে তৃতীয় পক্ষের গ্রন্থাগারগুলি এবং আপনার অ্যাপের নির্ভরতাগুলিতে এসডিকে হতে পারে।
সলোডার
আপনি যদি নেটিভ কোড লোডার এসডিকে সলোডার ব্যবহার করছেন তবে v0.10.4 বা উচ্চতর আপডেট করুন। যদি আপনার অ্যাপ্লিকেশনটি সলোডারের উপর নির্ভর করে এমন এসডিকে ব্যবহার করে তবে আক্রান্ত এসডিকেগুলির সর্বশেষতম স্থিতিশীল সংস্করণটিতেও আপডেট করার বিষয়টি নিশ্চিত করুন।
সলোডার ভি 0.9.0 এবং লোয়ার ধরে নিন যে সিস্টেম লাইব্রেরিগুলি /vendor/lib:/system/lib
উপস্থিত রয়েছে। এই বাগটি পিক্সেল 7 এর মতো ডিভাইসে পর্যবেক্ষণযোগ্য নয় যেখানে পথটি বিদ্যমান, তবে এই অনুমানের ফলে ডিভাইসগুলিতে ক্র্যাশ ঘটে যা কেবলমাত্র /vendor/lib64:/system/lib64
এ সিস্টেম লাইব্রেরি রয়েছে।
সলোডার দ্বারা সৃষ্ট এটি এবং অন্যান্য সমস্যাগুলি ঠিক করার বিষয়ে আরও তথ্যের জন্য, গুগল সহায়তা কেন্দ্রে সম্পর্কিত উত্তরটি দেখুন।
OpenSSL
আপনি যদি ওপেনএসএসএল লাইব্রেরি ব্যবহার করছেন তবে ওপেনএসএসএল 1.1.1 আই বা তারও বেশি আপডেট করুন। যদি আপনার অ্যাপ্লিকেশনটি এসডিকে ব্যবহার করে যা এইচটিটিপিএস ব্যবহার করে যোগাযোগ সরবরাহ করে, বা ওপেনএসএল -এর উপর নির্ভর করে এমন অন্যান্য এসডিকে ব্যবহার করে, তবে এসডিকে -র সর্বশেষ সংস্করণে আপডেট করার বিষয়টি নিশ্চিত করুন যা একটি নতুন ওপেনএসএল সংস্করণ ব্যবহার করে। যদি কোনও উপলভ্য না থাকে তবে এসডিকে সরবরাহকারীর কাছে পৌঁছান।
এআরএমভি 8.3 পিএসি রানটাইমে পয়েন্টারগুলি প্রমাণীকরণ করে হার্ডওয়্যার-সহায়তাযুক্ত নিয়ন্ত্রণ প্রবাহের অখণ্ডতা সক্ষম করে। ওপেনএসএসএল এর পূর্ববর্তী সংস্করণগুলি এই ক্ষমতাগুলি ভুলভাবে ব্যবহার করে, আর্মভি 8.3 এ এবং তার উপর ভিত্তি করে প্রসেসরের সাথে সমস্ত ডিভাইসে রানটাইম ক্র্যাশ সৃষ্টি করে।
ওপেনএসএসএল দ্বারা সৃষ্ট এটি এবং অন্যান্য সমস্যাগুলি ঠিক করার বিষয়ে আরও তথ্যের জন্য, গুগল সহায়তা কেন্দ্রে সম্পর্কিত উত্তরটি দেখুন।
বিটিআই
আর্মভি 8.5 এবং উচ্চতর ব্যবহারের শাখা লক্ষ্য নির্দেশাবলী (বিটিআই) জোপ আক্রমণ থেকে রক্ষা করতে সহায়তা করে। বিটিআই দিয়ে নির্মিত লাইব্রেরির এলোমেলো অফসেটগুলিতে শাখাগুলি যে সমস্ত অবহেলিত এসডিকে -র পূর্ববর্তী সংস্করণগুলি অ্যাপ্লিকেশনগুলি ক্র্যাশ করতে পারে। যেহেতু নির্দেশাবলী ইঙ্গিত হিসাবে এনকোড করা হয়েছে, এই বাগটি বিটিআই সমর্থন করে না এমন ডিভাইসগুলিতে এই বাগটি পর্যবেক্ষণযোগ্য নয়।
প্রকাশ করুন
আপনি যখন মনে করেন যে আপনার অ্যাপ্লিকেশনটি প্রস্তুত, তখন স্বাভাবিক হিসাবে প্রকাশ করুন। সর্বদা হিসাবে, আপনার অ্যাপ্লিকেশন স্থাপনের জন্য সেরা অনুশীলনগুলি অনুসরণ করা চালিয়ে যান। আপনার অ্যাপের গুণমানটি সামঞ্জস্যপূর্ণ তা নিশ্চিত করার জন্য আমরা সীমিত সংখ্যক ব্যবহারকারীর কাছে রোলআউটে বদ্ধ পরীক্ষার ট্র্যাকগুলির সুবিধা নেওয়ার পরামর্শ দিই।
একটি বড় আপডেট রোল আউট করার সময়, বৃহত্তর দর্শকদের কাছে প্রকাশের আগে আপনি 64-বিট-সক্ষম ডিভাইসে পুরোপুরি পরীক্ষা করেছেন তা নিশ্চিত করুন।
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
গুগল প্লেতে প্রকাশিত অ্যাপ্লিকেশনগুলির 64-বিট আর্কিটেকচারকে সমর্থন করা দরকার। আপনার অ্যাপ্লিকেশনটির একটি 64-বিট সংস্করণ যুক্ত করা পারফরম্যান্সের উন্নতি সরবরাহ করে এবং আপনাকে কেবল 64-বিট-কেবল হার্ডওয়্যার সহ ডিভাইসের জন্য সেট আপ করে।
নিম্নলিখিত পদক্ষেপগুলি নিশ্চিত করে যে আপনার 32-বিট অ্যাপ 64-বিট ডিভাইসগুলিকে সমর্থন করে।
আপনার অ্যাপ্লিকেশন মূল্যায়ন করুন
যদি আপনার অ্যাপ্লিকেশনটি জাভা প্রোগ্রামিং ভাষায় বা কোটলিনে সমস্ত লাইব্রেরি বা এসডিকে সহ কেবল কোড ব্যবহার করে তবে আপনার অ্যাপ্লিকেশনটি 64-বিট ডিভাইসগুলিকে সমর্থন করে। যদি আপনার অ্যাপ্লিকেশনটি কোনও নেটিভ কোড ব্যবহার করে, বা এটি যদি তা নিশ্চিত হয় না তবে আপনার অ্যাপ্লিকেশনটি মূল্যায়ন করুন।
দ্রুত স্থিতি চেক
প্লে কনসোলে যান এবং তারা মেনে চলেন কিনা তা দেখার জন্য বিদ্যমান রিলিজগুলি একবার দেখুন।
প্লে কনসোলটি সতর্কতাগুলিও দেখায় যা আপনার খসড়া রিলিজগুলিতে প্রযোজ্য যদি 64-বিট প্রয়োজনীয়তার সাথে সম্পর্কিত কোনও সমস্যা থাকে। নিম্নলিখিত চিত্র একটি উদাহরণ.
যদি কোনও সতর্কতা উপস্থিত হয় তবে আপনার অ্যাপ্লিকেশনটিকে 64-বিট ডিভাইসের সাথে সামঞ্জস্যপূর্ণ করার জন্য নিম্নলিখিত পদক্ষেপগুলি দেখুন।
আপনার অ্যাপ্লিকেশনটি নেটিভ কোড ব্যবহার করে?
আপনার অ্যাপ্লিকেশনটি যদি এটি স্থানীয় কোডটি ব্যবহার করে তবে এটি:
- আপনার অ্যাপ্লিকেশনটিতে কোনও সি/সি ++ (নেটিভ) কোড ব্যবহার করে।
- কোনও তৃতীয় পক্ষের নেটিভ লাইব্রেরির সাথে লিঙ্কগুলি।
- তৃতীয় পক্ষের অ্যাপ নির্মাতা দ্বারা নির্মিত যা দেশীয় গ্রন্থাগারগুলি ব্যবহার করে।
আপনার অ্যাপ্লিকেশনটিতে কি 64-বিট লাইব্রেরি অন্তর্ভুক্ত রয়েছে?
আপনার APK ফাইলের কাঠামোটি পরীক্ষা করুন। তৈরি করা হলে, এপিকে অ্যাপ্লিকেশনটির প্রয়োজনীয় কোনও নেটিভ লাইব্রেরি সহ প্যাকেজ করা হয়। নেটিভ লাইব্রেরিগুলি এবিআইয়ের উপর ভিত্তি করে বিভিন্ন ফোল্ডারে সংরক্ষণ করা হয়। এটি প্রতি 64৪-বিট আর্কিটেকচারকে সমর্থন করার প্রয়োজন নেই, তবে আপনি সমর্থন করেন এমন প্রতিটি দেশীয় 32-বিট আর্কিটেকচারের জন্য আপনাকে অবশ্যই সংশ্লিষ্ট 64-বিট আর্কিটেকচার অন্তর্ভুক্ত করতে হবে।
আর্ম আর্কিটেকচারের জন্য, 32-বিট লাইব্রেরিগুলি আর্মেবি-ভি 7 এ অবস্থিত। -৪-বিট সমতুল্য হ'ল এআরএম 64-ভি 8 এ ।
X86 আর্কিটেকচারের জন্য, 32-বিটের জন্য x86 এবং 64-বিটের জন্য x86_64 সন্ধান করুন।
এই উভয় ফোল্ডারে আপনার নেটিভ লাইব্রেরি রয়েছে তা নিশ্চিত করুন। সংক্ষেপে:
প্ল্যাটফর্ম | 32-বিট লাইব্রেরি ফোল্ডার | 64-বিট লাইব্রেরি ফোল্ডার |
---|---|---|
এআরএম | lib/armeabi-v7a | lib/arm64-v8a |
x86 | lib/x86 | lib/x86_64 |
নোট করুন যে আপনার অ্যাপ্লিকেশনটির উপর নির্ভর করে, প্রতিটি ফোল্ডারে লাইব্রেরির ঠিক একই সেট বা নাও থাকতে পারে। লক্ষ্যটি হ'ল আপনার অ্যাপ্লিকেশনটি কেবলমাত্র 64-বিট-পরিবেশে সঠিকভাবে চলমান তা নিশ্চিত করা।
একটি সাধারণ ক্ষেত্রে, 32-বিট এবং 64-বিট আর্কিটেকচার উভয়ের জন্য নির্মিত একটি এপিকে বা বান্ডিল উভয়ই এবিআইয়ের জন্য ফোল্ডার রয়েছে, যার প্রত্যেকটির সাথে সম্পর্কিত স্থানীয় গ্রন্থাগারগুলির একটি সেট রয়েছে। যদি 64৪-বিটের পক্ষে কোনও সমর্থন না থাকে তবে আপনি একটি 32-বিট এবিআই ফোল্ডার দেখতে পাবেন তবে 64-বিট ফোল্ডার নয়।
এপিকে বিশ্লেষক ব্যবহার করে দেশীয় গ্রন্থাগারগুলির সন্ধান করুন
এপিকে বিশ্লেষক এমন একটি সরঞ্জাম যা আপনাকে একটি বিল্ট এপিকে বিভিন্ন দিক মূল্যায়ন করতে দেয়। যে কোনও নেটিভ লাইব্রেরি খুঁজতে এটি ব্যবহার করুন এবং 64৪-বিট লাইব্রেরি উপস্থিত রয়েছে তা নিশ্চিত করুন।
- অ্যান্ড্রয়েড স্টুডিও খুলুন এবং যে কোনও প্রকল্প খুলুন ।
মেনু থেকে, বিল্ড> এপিকে বিশ্লেষণ করুন নির্বাচন করুন ...
আপনি মূল্যায়ন করতে চান এমন APK চয়ন করুন।
LIB ফোল্ডারের মধ্যে দেখুন, যা '.so' ফাইলগুলি হোস্ট করে। যদি কিছু না থাকে তবে আপনার অ্যাপ্লিকেশনটি 64৪-বিট ডিভাইসগুলিকে সমর্থন করে এবং পরবর্তী কোনও পদক্ষেপের প্রয়োজন হয় না। আপনি যদি আর্মেবি-ভি 7 এ বা x86 দেখতে পান তবে আপনার কাছে 32-বিট লাইব্রেরি রয়েছে।
আপনার কাছে আর্ম 64-ভি 8 এ বা x86_64 ফোল্ডারে অনুরূপ '.so' ফাইল রয়েছে কিনা তা পরীক্ষা করে দেখুন।
আপনার যদি কোনও এআরএম 64-ভি 8 এ বা x86_64 লাইব্রেরি না থাকে তবে আপনার এপিকে এই শিল্পকর্মগুলি বিল্ডিং এবং প্যাকেজিং শুরু করতে আপনার বিল্ড প্রক্রিয়াটি আপডেট করুন।
আপনি যদি ইতিমধ্যে উভয় লাইব্রেরি প্যাকেজড হতে দেখেন তবে আপনি 64-বিট হার্ডওয়্যারটিতে আপনার অ্যাপ্লিকেশনটি পরীক্ষা করতে এগিয়ে যেতে পারেন।
আনজিপিং এপিকে দ্বারা দেশীয় গ্রন্থাগারগুলির সন্ধান করুন
এপিকে ফাইলগুলি জিপ ফাইলগুলির মতো কাঠামোগত করা হয়। কমান্ড লাইন বা অন্য কোনও নিষ্কাশন সরঞ্জামের সাহায্যে এপিকে ফাইলটি বের করুন। আপনার নিষ্কাশন সরঞ্জামের উপর নির্ভর করে আপনাকে ফাইলটি .zip এ নামকরণ করতে হতে পারে।
আপনার অ্যাপ্লিকেশন 64৪-বিট ডিভাইসগুলিকে সমর্থন করে কিনা তা নির্ধারণের জন্য উপরের গাইডেন্স অনুসরণ করে, যে ফাইলগুলি উত্তোলন করা হয়েছে তা ব্রাউজ করুন। আপনি কমান্ড লাইন থেকে নিম্নলিখিত কমান্ড উদাহরণটি চালাতে পারেন:
:: Command Line
> zipinfo -1 YOUR_APK_FILE.apk | grep \.so$
lib/armeabi-v7a/libmain.so
lib/armeabi-v7a/libmono.so
lib/armeabi-v7a/libunity.so
lib/arm64-v8a/libmain.so
lib/arm64-v8a/libmono.so
lib/arm64-v8a/libunity.so
এই উদাহরণে দ্রষ্টব্য আর্মেবি-ভি 7 এ এবং এআরএম 64-ভি 8 এ লাইব্রেরির উপস্থিতি, যার অর্থ অ্যাপ্লিকেশনটি 64-বিট আর্কিটেকচারকে সমর্থন করে।
64-বিট লাইব্রেরি দিয়ে আপনার অ্যাপটি তৈরি করুন
নিম্নলিখিত নির্দেশাবলী কীভাবে 64-বিট লাইব্রেরি তৈরি করবেন তার রূপরেখা। নোট করুন যে এই পদক্ষেপগুলি কেবলমাত্র বিল্ডিং কোড এবং লাইব্রেরিগুলি কভার করে যা আপনি উত্স থেকে তৈরি করতে সক্ষম।
অ্যান্ড্রয়েড স্টুডিও বা গ্রেডল দিয়ে তৈরি করুন
বেশিরভাগ অ্যান্ড্রয়েড স্টুডিও প্রকল্পগুলি অন্তর্নিহিত বিল্ড সিস্টেম হিসাবে গ্রেডল ব্যবহার করে, সুতরাং এই বিভাগটি উভয় ক্ষেত্রেই প্রযোজ্য। আপনার নেটিভ কোডের জন্য বিল্ডগুলি সক্ষম করতে, আপনার অ্যাপ্লিকেশনটির 'বিল্ড.গ্রাডল' ফাইলটিতে এনডিকে.এবিআইফিল্টার সেটিংয়ে আপনি যে আর্কিটেকচারকে সমর্থন করতে চান তার উপর নির্ভর করে এআরএম 64-ভি 8 এ এবং/বা x86_64 যুক্ত করুন:
গ্রোভি
// Your app's build.gradle plugins { id 'com.android.app' } android { compileSdkVersion 27 defaultConfig { appId "com.google.example.64bit" minSdkVersion 15 targetSdkVersion 28 versionCode 1 versionName "1.0" ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64' // ...
কোটলিন
// Your app's build.gradle plugins { id("com.android.app") } android { compileSdkVersion(27) defaultConfig { appId = "com.google.example.64bit" minSdkVersion(15) targetSdkVersion(28) versionCode = 1 versionName = "1.0" ndk { abiFilters += listOf("armeabi-v7a","arm64-v8a","x86","x86_64") } // ...
CMake দিয়ে তৈরি করুন
যদি আপনার অ্যাপ্লিকেশনটি সিএমকে ব্যবহার করে নির্মিত হয় তবে আপনি '-ড্যান্ড্রয়েড_বি' প্যারামিটারে আর্ম 64-ভি 8 এ পাস করে 64-বিট এবিআইয়ের জন্য তৈরি করতে পারেন:
:: Command Line
> cmake -DANDROID_ABI=arm64-v8a … or
> cmake -DANDROID_ABI=x86_64 …
এনডিকে-বিল্ড দিয়ে তৈরি করুন
যদি আপনার অ্যাপ্লিকেশনটি এনডিকে-বিল্ড দিয়ে নির্মিত হয় তবে আপনি APP_ABI
ভেরিয়েবল ব্যবহার করে আপনার 'অ্যাপ্লিকেশন.এমকে' ফাইলটি সংশোধন করে 64-বিট এবিআইয়ের জন্য তৈরি করতে পারেন:
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
64-বিট 32-বিট কোড পোর্ট
যদি আপনার কোডটি ইতিমধ্যে ডেস্কটপ বা আইওএসে চলে তবে আপনার অ্যান্ড্রয়েডের জন্য কোনও অতিরিক্ত কাজ করার দরকার নেই। যদি আপনার কোডটি প্রথমবারের মতো 64৪-বিট সিস্টেমের জন্য নির্মিত হয়েছে, তবে আপনাকে অবশ্যই মূল সমস্যাটি সমাধান করতে হবে যে পয়েন্টারগুলি int
মতো 32-বিট পূর্ণসংখ্যার প্রকারগুলিতে আর ফিট করে না।
আপডেট কোড যা int
, unsigned
, বা uint32_t
মতো ধরণের পয়েন্টার সংরক্ষণ করে। ইউনিক্স সিস্টেমে, long
পয়েন্টারের আকারের সাথে মেলে তবে এটি উইন্ডোজে সত্য নয়। পরিবর্তে, উদ্দেশ্য-প্রকাশক প্রকারগুলি uintptr_t
বা intptr_t
ব্যবহার করুন। দুটি পয়েন্টারের মধ্যে পার্থক্য সংরক্ষণ করতে, ptrdiff_t
প্রকারটি ব্যবহার করুন।
আপনার সর্বদা নির্দিষ্ট, স্থির-প্রস্থের পূর্ণসংখ্যার প্রকারগুলি পছন্দ করা উচিত <stdint.h>
তে সংজ্ঞায়িত করা না বরং int
বা long
, এমনকি নন-পয়েন্টারগুলির জন্য এমনকি স্থির-প্রস্থের প্রকারের চেয়ে।
আপনার কোডটি ভুলভাবে পয়েন্টার এবং পূর্ণসংখ্যার মধ্যে রূপান্তরিত করে এমন কেসগুলি ধরতে নিম্নলিখিত সংকলক পতাকাগুলি ব্যবহার করুন:
-Werror=pointer-to-int-cast
-Werror=int-to-pointer-cast
-Werror=shorten-64-to-32
সি/সি ++ অবজেক্টগুলিতে পয়েন্টারগুলি ধারণ করে এমন int
ক্ষেত্রগুলির সাথে জাভা ক্লাসগুলি একই সমস্যা রয়েছে। আপনার জেএনআই উত্সে jint
সন্ধান করুন এবং নিশ্চিত করুন যে আপনি জাভা সাইডে এবং সি ++ পাশের jlong
long
স্যুইচ করুন।
অন্তর্ভুক্ত ফাংশন ঘোষণাগুলি 64-বিট কোডের জন্য অনেক বেশি বিপজ্জনক। সি/সি ++ ধরে নিন যে একটি স্পষ্টভাবে ঘোষিত ফাংশনের রিটার্ন প্রকার (এটি একটি ফাংশন যা সংকলকটির জন্য কোনও ঘোষণা দেখেনি) int
। যদি আপনার ফাংশনের প্রকৃত রিটার্ন প্রকারটি একটি পয়েন্টার হয় তবে এটি 32-বিট সিস্টেমে সূক্ষ্মভাবে কাজ করে যেখানে আপনার পয়েন্টারটি কোনও আইএনটিতে ফিট করে। যাইহোক, একটি 64-বিট সিস্টেমে, সংকলকটি আপনার পয়েন্টারের উপরের অর্ধেকটি ফেলে দেয়। যেমন:
// This function returns a pointer:
// extern char* foo();
// If you don't include a header that declares it,
// when the compiler sees this:
char* result = foo();
// Instead of compiling that to:
result = foo();
// It compiles to something equivalent to:
result = foo() & 0xffffffff;
// Which will then cause a SIGSEGV if you try to dereference `result`.
নিম্নলিখিত সংকলক পতাকা অন্তর্নিহিত ফাংশন ঘোষণার সতর্কতাগুলিকে ত্রুটিগুলিতে পরিণত করে যাতে আপনি এই সমস্যাটি আরও সহজেই খুঁজে পেতে এবং ঠিক করতে পারেন:
-Werror=implicit-function-declaration
আপনার যদি ইনলাইন এসেম্বলার থাকে তবে এটি আবার লিখুন বা একটি সরল সি/সি ++ বাস্তবায়ন ব্যবহার করুন।
যদি আপনার কাছে হার্ড-কোডেড আকারের ধরণের থাকে (উদাহরণস্বরূপ 8 বা 16 বাইট), এগুলিকে সমতুল্য sizeof(T)
এক্সপ্রেশন যেমন sizeof(void*)
দিয়ে প্রতিস্থাপন করুন।
আপনার যদি শর্তসাপেক্ষে 64-বিটের চেয়ে 32-বিটের জন্য বিভিন্ন কোড সংকলন করতে হয় তবে আপনি জেনেরিক 32/64 পার্থক্য, বা __arm__
, __aarch64__
(আর্ম 64), __i386__
(x86), এবং __x86_64__
এর জন্য নির্দিষ্ট আর্কিটেকচারের জন্য #if defined(__LP64__)
ব্যবহার করতে পারেন।
printf
বা scanf
-এর মতো ফাংশনগুলির জন্য ফর্ম্যাট স্ট্রিংগুলি সামঞ্জস্য করুন, কারণ traditional তিহ্যবাহী ফর্ম্যাট স্পেসিফায়ারগুলি আপনাকে 32-বিট এবং 64-বিট ডিভাইস উভয়ের জন্য সঠিক 64৪-বিট প্রকারগুলি নির্দিষ্ট করতে দেয় না। হেক্স পয়েন্টারগুলি লেখার জন্য এবং পড়ার জন্য PRIxPTR
এবং SCNxPTR
এই সমস্যাটি সমাধান করুন, <inttypes.h>
এ PRI
এবং SCN
ম্যাক্রোস; এবং PRId64
এবং SCNd64
port 64-বিট মানগুলি পোর্টেবল করে পড়ার জন্য।
স্থানান্তরিত হওয়ার সময়, আপনাকে 1
ব্যবহারের পরিবর্তে শিফট করার জন্য 64-বিট ধ্রুবক পেতে 1ULL
ব্যবহার করতে হবে, যা কেবল 32 বিট।
অ্যান্ড্রয়েড অ্যাপ্লিকেশন বান্ডিলের সাথে আকার বাড়ায়
আপনার অ্যাপ্লিকেশনটিতে 64-বিট আর্কিটেকচার সমর্থন যুক্ত করা আপনার এপিকে আকার বাড়তে পারে। একই এপিকে 32- এবং 64-বিট নেটিভ কোড উভয়ই অন্তর্ভুক্ত করার আকারের প্রভাবকে হ্রাস করতে আমরা অ্যান্ড্রয়েড অ্যাপ্লিকেশন বান্ডিল বৈশিষ্ট্যটির সুবিধা নেওয়ার দৃ strongly ়ভাবে পরামর্শ দিচ্ছি।
গেম ডেভেলপার
তিনটি সর্বাধিক ব্যবহৃত ইঞ্জিন 64-বিট সমর্থন করে:
- 2015 সাল থেকে অবাস্তব
- 2015 সাল থেকে কোকোস 2 ডি
- 2018 সাল থেকে unity ক্য
ঐক্য বিকাশকারীরা
সক্ষম সংস্করণগুলিতে আপগ্রেড করুন
Unity ক্য সংস্করণ 2018.2 এবং 2017.4.16 সংস্করণ সহ 64-বিট সমর্থন সরবরাহ করে।
আপনি যদি unity ক্যের এমন একটি সংস্করণে থাকেন যা -৪-বিট সমর্থন করে না, তবে আপনি যে সংস্করণটি আপগ্রেড করতে চান তা নির্ধারণ করুন এবং unity ক্য আপনার পরিবেশকে স্থানান্তরিত করার জন্য যে গাইডগুলি সরবরাহ করতে চান তা অনুসরণ করতে চান, আপনার অ্যাপ্লিকেশনটি এমন একটি সংস্করণে আপগ্রেড করা হয়েছে যা 64-বিট লাইব্রেরি তৈরি করতে পারে। Unity ক্য সুপারিশ করে যে আপনি সম্পাদকের সর্বশেষতম এলটিএস সংস্করণে আপগ্রেড করে সর্বশেষতম বৈশিষ্ট্য এবং আপডেটগুলিতে অ্যাক্সেস পেতে পারেন।
এখানে একটি চার্ট যা বিভিন্ন unity ক্য সংস্করণ এবং আপনার কী করা উচিত তার রূপরেখা:
ইউনিটি সংস্করণ | সংস্করণ 64-বিট সমর্থন করে? | প্রস্তাবিত কর্মের কোর্স |
---|---|---|
2020.x | ✔️ | আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2019.x | ✔️ | আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2018.4 (এলটিএস) | ✔️ | আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2018.3 | ✔️ | আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2018.2 | ✔️ | আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2018.1 | ➖ | পরীক্ষামূলক 64-বিট সমর্থন রয়েছে। |
2017.4 (এলটিএস) | ✔️ | 2017.4.16 হিসাবে সমর্থিত। আপনার বিল্ড সেটিংস আউটপুট 64-বিট লাইব্রেরি নিশ্চিত করুন। |
2017.3 | ✖️ | সংস্করণে আপগ্রেড করুন যা 64-বিট সমর্থন করে। |
2017.2 | ✖️ | সংস্করণে আপগ্রেড করুন যা 64-বিট সমর্থন করে। |
2017.1 | ✖️ | সংস্করণে আপগ্রেড করুন যা 64-বিট সমর্থন করে। |
<= 5.6 | ✖️ | সংস্করণে আপগ্রেড করুন যা 64-বিট সমর্থন করে। |
আউটপুট 64-বিট লাইব্রেরিতে বিল্ড সেটিংস পরিবর্তন করুন
আপনি যদি unity ক্যের একটি সংস্করণ ব্যবহার করছেন যা -৪-বিট অ্যান্ড্রয়েড লাইব্রেরিগুলিকে সমর্থন করে তবে আপনি আপনার বিল্ড সেটিংস সামঞ্জস্য করে আপনার অ্যাপ্লিকেশনটির একটি 64-বিট সংস্করণ তৈরি করতে পারেন। আপনার স্ক্রিপ্টিং ব্যাকএন্ড হিসাবে আইএল 2 সিপিপি ব্যাকএন্ডটি ব্যবহার করুন। 64-বিট আর্কিটেকচার তৈরি করতে আপনার ইউনিটি প্রকল্পটি সেট আপ করতে, নিম্নলিখিতগুলি করুন:
- সেটিংস তৈরিতে যান এবং নিশ্চিত করুন যে আপনি প্ল্যাটফর্মের অধীনে অ্যান্ড্রয়েডের পাশে রয়েছে কিনা তা যাচাই করে আপনি অ্যান্ড্রয়েডের জন্য তৈরি করছেন। 1। যদি unity ক্য প্রতীকটি অ্যান্ড্রয়েড প্ল্যাটফর্মের পাশে না থাকে তবে অ্যান্ড্রয়েড নির্বাচন করুন এবং স্যুইচ প্ল্যাটফর্মটি ক্লিক করুন।
প্লেয়ার সেটিংস ক্লিক করুন।
প্লেয়ার সেটিংসে নেভিগেট করুন প্যানেল> অ্যান্ড্রয়েডের জন্য সেটিংস> অন্যান্য সেটিংস> কনফিগারেশন
আইএল 2 সিপিপিতে স্ক্রিপ্টিং ব্যাকএন্ড সেট করুন ।
টার্গেট আর্কিটেকচার> এআরএম 64 চেকবক্সটি নির্বাচন করুন।
স্বাভাবিক হিসাবে বিল্ড!
নোট করুন যে এআরএম 64 এর জন্য বিল্ডিংয়ের জন্য আপনার সমস্ত সম্পদ বিশেষভাবে সেই প্ল্যাটফর্মের জন্য তৈরি করা দরকার। এপিকে আকার হ্রাস করার জন্য unity ক্যের গাইডেন্স অনুসরণ করুন এবং আকারে এই বৃদ্ধি প্রশমিত করতে সহায়তা করার জন্য অ্যান্ড্রয়েড অ্যাপ্লিকেশন বান্ডিল বৈশিষ্ট্যের সুবিধা গ্রহণের বিষয়টি বিবেচনা করুন।
মাল্টি-এপিকে এবং 64-বিট সম্মতি
আপনি যদি আপনার অ্যাপ্লিকেশনটি প্রকাশ করতে গুগল প্লে এর একাধিক-এপিকে সমর্থন ব্যবহার করছেন তবে নোট করুন যে 64-বিট প্রয়োজনীয়তার সাথে সম্মতি রিলিজ স্তরে মূল্যায়ন করা হয়। তবে, 64৪-বিট প্রয়োজনীয়তা APKS বা অ্যাপ্লিকেশন বান্ডিলগুলিতে প্রযোজ্য নয় যা অ্যান্ড্রয়েড 9 পাই বা তার পরে চালিত ডিভাইসগুলিতে বিতরণ করা হয় না।
যদি আপনার এপিকেগুলির মধ্যে একটিকে অনুগত না হিসাবে চিহ্নিত করা হয় তবে এটি একটি পূর্ববর্তী সংস্করণ এবং এটি মেনে চলা সম্ভব নয়, একটি কৌশল হ'ল একটি maxSdkVersion="27"
বৈশিষ্ট্য যুক্ত করা uses-sdk
উপাদানটিতে সেই এপকের ম্যানিফেস্টে। এই এপিকে অ্যান্ড্রয়েড 9 পাই বা তার পরে চলমান ডিভাইসগুলিতে সরবরাহ করা হয়নি এবং আর সম্মতি ব্লক করে না।
রেন্ডারস্ক্রিপ্ট এবং 64-বিট সম্মতি
যদি আপনার অ্যাপ্লিকেশনটি রেন্ডারস্ক্রিপ্ট ব্যবহার করে এবং অ্যান্ড্রয়েড সরঞ্জামগুলির পূর্ববর্তী সংস্করণ দিয়ে নির্মিত হয় তবে আপনি অ্যাপ্লিকেশনটির জন্য 64-বিট কমপ্লায়েন্স ইস্যু দেখতে পাবেন। 21.0.0 এর আগে বিল্ড সরঞ্জামগুলির সাথে, সংকলকটি একটি বাহ্যিক .bc
ফাইলে বিটকোড তৈরি করতে পারে। এই উত্তরাধিকার .bc
ফাইলগুলি আর 64-বিট আর্কিটেকচারের জন্য সমর্থিত নয়, সুতরাং আপনার এপিকে ফাইলটির উপস্থিতি সম্মতিজনিত সমস্যা সৃষ্টি করে।
সমস্যাটি সমাধান করার জন্য, আপনার প্রকল্পের যে কোনও .bc
ফাইলগুলি সরিয়ে ফেলুন, আপনার পরিবেশটি build-tools-21.0.0
করতে আপনার পরিবেশটি আপগ্রেড করুন এবং সংকলককে 21+ এ অ্যান্ড্রয়েড স্টুডিওতে renderscriptTargetApi
সেট করুন, সংকলককে। .bc
ফাইলগুলি না দেওয়ার জন্য বলুন। তারপরে, আপনার অ্যাপ্লিকেশনটি পুনর্নির্মাণ করুন, .bc
ফাইলগুলির জন্য পরিদর্শন করুন এবং কনসোল খেলতে আপলোড করুন।
64-বিট হার্ডওয়্যারে আপনার অ্যাপটি পরীক্ষা করুন
আপনার অ্যাপ্লিকেশনটির 64-বিট সংস্করণটি 32-বিট সংস্করণ হিসাবে একই মানের এবং বৈশিষ্ট্য সেট সরবরাহ করা উচিত। সর্বশেষ 64৪-বিট ডিভাইসে ব্যবহারকারীদের আপনার অ্যাপ্লিকেশনটিতে দুর্দান্ত অভিজ্ঞতা রয়েছে তা নিশ্চিত করার জন্য আপনার অ্যাপ্লিকেশনটি পরীক্ষা করুন।
64-বিট-কেবল ডিভাইস
যখনই সম্ভব, আমরা নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করে আপনার অ্যাপ্লিকেশনটি কঠোর 64-বিট-কেবলমাত্র পরিবেশে পরীক্ষা করার পরামর্শ দিই:
একটি 64-বিট-কেবল সিস্টেম চিত্র সহ গুগল পিক্সেল
অ্যাপ্লিকেশন বিকাশ এবং পরীক্ষার সুবিধার্থে, আমরা কিছু পিক্সেল ডিভাইসের জন্য একটি কঠোর 64-বিট-কেবল পরিবেশের সাথে বিশেষ সিস্টেমের চিত্র সরবরাহ করেছি। এই 64৪-বিট-কেবল চিত্রগুলি মূলত অ্যান্ড্রয়েড 13 এবং 14 পূর্বরূপ প্রকাশের জন্য স্ট্যান্ডার্ড ফ্যাক্টরি সিস্টেমের চিত্রগুলির সাথে একই সাথে সরবরাহ করা হয়েছিল, তবে আপনি 64-বিট সামঞ্জস্যের জন্য আপনার অ্যাপটি পরীক্ষা করার সাথে সাথে আপনি সেগুলি ব্যবহার চালিয়ে যেতে পারেন।
একটি 64-বিট-কেবল চিত্র পান
কারখানা সিস্টেমের চিত্রগুলির মতো, আপনি অ্যান্ড্রয়েড ফ্ল্যাশ সরঞ্জামটি ব্যবহার করে বা আপনার ডিভাইসটিকে ম্যানুয়ালি ফ্ল্যাশ করে নিম্নলিখিত বিভাগগুলিতে বর্ণিত হিসাবে আপনার ডিভাইসে একটি 64-বিট-কেবল চিত্র ফ্ল্যাশ করতে পারেন।
অ্যান্ড্রয়েড ফ্ল্যাশ টুল ব্যবহার করে আপনার ডিভাইস ফ্ল্যাশ করুন
অ্যান্ড্রয়েড ফ্ল্যাশ টুল আপনাকে আপনার সমর্থিত পিক্সেল ডিভাইসে সুরক্ষিতভাবে একটি সিস্টেম ইমেজ ফ্ল্যাশ করতে দেয়। Android Flash Tool যেকোন ওয়েব ব্রাউজারে কাজ করে যা WebUSB সমর্থন করে, যেমন Chrome বা Edge 79+।
অ্যান্ড্রয়েড ফ্ল্যাশ টুল আপনাকে আপনার ডিভাইস ফ্ল্যাশ করার প্রক্রিয়ার মাধ্যমে ধাপে ধাপে গাইড করে—কোনও সরঞ্জাম ইনস্টল করার প্রয়োজন নেই—কিন্তু আপনাকে আপনার ডিভাইস আনলক করতে হবে এবং বিকাশকারী বিকল্পগুলিতে USB ডিবাগিং সক্ষম করতে হবে ৷ সম্পূর্ণ নির্দেশাবলীর জন্য, অ্যান্ড্রয়েড ফ্ল্যাশ টুল ডকুমেন্টেশন দেখুন।
আপনার ডিভাইসটি ইউএসবি -র মাধ্যমে সংযুক্ত করুন, তারপরে, আপনি যে ধরণের সিস্টেম চিত্রটি ফ্ল্যাশ করতে চান তার উপর নির্ভর করে নিম্নলিখিত লিঙ্কগুলির একটি ব্যবহার করে অ্যান্ড্রয়েড ফ্ল্যাশ সরঞ্জামে নেভিগেট করুন এবং অনস্ক্রিন গাইডেন্স অনুসরণ করুন:
অ্যান্ড্রয়েড 14 (বিটা 5.2) 64-বিট-কেবল সিস্টেম চিত্র
আপনি যে ডিভাইসটি ফ্ল্যাশ করার চেষ্টা করছেন তা নির্বাচন করুন:
অ্যান্ড্রয়েড 13 (কিউপিআর 3 বিটা 3.2) 64-বিট-কেবল সিস্টেম চিত্র
আপনি যে ডিভাইসটি ফ্ল্যাশ করার চেষ্টা করছেন তা নির্বাচন করুন:
আপনার ডিভাইস ম্যানুয়ালি ফ্ল্যাশ করুন
আপনি সর্বশেষ সিস্টেম ইমেজ ডাউনলোড করতে পারেন এবং ম্যানুয়ালি আপনার ডিভাইসে ফ্ল্যাশ করতে পারেন। আপনার পরীক্ষা ডিভাইসের জন্য সিস্টেম ইমেজ ডাউনলোড করতে নিম্নলিখিত টেবিল দেখুন. আপনার যদি পরীক্ষার পরিবেশের উপর সুনির্দিষ্ট নিয়ন্ত্রণের প্রয়োজন হয় বা আপনার যদি ঘন ঘন পুনরায় ইনস্টল করার প্রয়োজন হয়, যেমন স্বয়ংক্রিয় পরীক্ষা করার সময় একটি ডিভাইস ম্যানুয়ালি ফ্ল্যাশ করা কার্যকর।
আপনি আপনার ডিভাইসের ডেটা ব্যাক আপ করার পরে এবং ম্যাচিং সিস্টেমের ছবি ডাউনলোড করার পরে, আপনি ছবিটি আপনার ডিভাইসে ফ্ল্যাশ করতে পারেন৷
আপনি যে কোনো সময় সর্বশেষ সর্বজনীন বিল্ডে ফিরে যেতে বেছে নিতে পারেন।
অ্যান্ড্রয়েড 14 এর জন্য কেবল 64-বিট-কেবল কারখানার চিত্র (বিটা 5.3)
এই চিত্রগুলি 64-বিট অ্যাপের সামঞ্জস্যতা পরীক্ষার জন্য একটি কঠোর 64-বিট-কেবল পরিবেশ সরবরাহ করে। এই 64-বিট-কেবল কনফিগারেশনগুলি কেবল বিকাশকারী ব্যবহারের জন্য।
ডিভাইস | ডাউনলোড লিংক | SHA-256 চেকসাম |
---|---|---|
Pixel 4a (5G) | 7e6731fab811ae389f5ff882d5c5a2b8b942b8363b22bbcc038b39d7c539e60a | |
পিক্সেল 5 | c4da6a19086a02f2cd2fa7a4054e870916954b8e5a61e9a07ee942c537e4b45a | |
পিক্সেল 6 | 98943384284cbc7323b8867d84c36151757f67ae7633012fb69cb5d6bec2b554 | |
Pixel 6 Pro | 67ec40be5bd05a40fa5dabc1ce6795aae75d1904193d52e2da00425ed7cb895b |
অ্যান্ড্রয়েড 13 এর জন্য কেবল 64-বিট-কেবল কারখানার চিত্র (কিউপিআর 3 বিটা 3.2)
এই চিত্রগুলি 64-বিট অ্যাপের সামঞ্জস্যতা পরীক্ষার জন্য একটি কঠোর 64-বিট-কেবল পরিবেশ সরবরাহ করে। এই 64-বিট-কেবল কনফিগারেশনগুলি কেবল বিকাশকারী ব্যবহারের জন্য।
ডিভাইস | ডাউনলোড লিংক | SHA-256 চেকসাম |
---|---|---|
Pixel 4a (5G) | b4be40924f62c3c2b3ed20a9f7fa4303aa9c39649d778eb96f86c867fe3ae59a | |
পিক্সেল 5 | 6e5e027a4f64f9f786db9bb69d50d1a551c3f6aad893ae450e1f8279ea1b761a | |
পিক্সেল 6 | becb9b81a5bddad67a4ac32d30a50dcb372b9d083cb7c046e5180510e479a0b8 | |
Pixel 6 Pro | b0ef544ed2312ac44dc827f24999281b147c11d76356c2d06b2c57a191c60480 |
একটি পাবলিক বিল্ড এ ফিরে যান
আপনি ফ্যাক্টরি ইমেজ ফ্ল্যাশ করতে অ্যান্ড্রয়েড ফ্ল্যাশ টুল ব্যবহার করতে পারেন, অথবা নেক্সাস এবং পিক্সেল ডিভাইসের ফ্যাক্টরি ইমেজ পৃষ্ঠা থেকে ফ্যাক্টরি স্পেক সিস্টেম ইমেজ পেতে পারেন এবং তারপর ম্যানুয়ালি ডিভাইসে ফ্ল্যাশ করতে পারেন।
অ্যান্ড্রয়েড এমুলেটর
অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) থেকে শুরু করে অ্যান্ড্রয়েড এমুলেটর সিস্টেমের চিত্রগুলি কেবল 64-বিট। অ্যাপ্লিকেশন পরীক্ষার জন্য কঠোর 64৪-বিট-কেবল পরিবেশ পেতে অ্যান্ড্রয়েড 12 (এপিআই স্তর 31) বা উচ্চতর সহ একটি সিস্টেম চিত্র ব্যবহার করে একটি অ্যান্ড্রয়েড ভার্চুয়াল ডিভাইস (এভিডি) তৈরি করুন।
অন্যান্য ডিভাইস বিকল্প
আপনার যদি এই ডিভাইসগুলির মধ্যে একটি না থাকে বা অ্যান্ড্রয়েড এমুলেটরটি ব্যবহার করতে না পারে তবে আপনার পরবর্তী সেরা বিকল্পটি এমন একটি ডিভাইস ব্যবহার করা যা 64-বিট সক্ষম, যেমন গুগল পিক্সেল বা অন্যান্য ডিভাইস প্রস্তুতকারকদের কাছ থেকে সাম্প্রতিক অন্যান্য ফ্ল্যাগশিপ ডিভাইসগুলি।
আপনার অ্যাপ্লিকেশনটি ইনস্টল করুন এবং পরীক্ষা করুন
আপনার এপিকে পরীক্ষা করার সহজতম উপায় হ'ল অ্যান্ড্রয়েড ডিবাগ ব্রিজ (এডিবি) ব্যবহার করে অ্যাপটি ইনস্টল করা। বেশিরভাগ ক্ষেত্রে, আপনি ডিভাইসে কোন গ্রন্থাগারগুলি ইনস্টল করতে হবে তা নির্দেশ করতে আপনি --abi
একটি প্যারামিটার হিসাবে সরবরাহ করতে পারেন। এটি ডিভাইসে কেবলমাত্র 64-বিট লাইব্রেরি সহ অ্যাপটি ইনস্টল করে।
:: Command Line
# A successful install:
> adb install --abi armeabi-v7a YOUR_APK_FILE.apk
Success
# If your APK does not have the 64-bit libraries:
> adb install --abi arm64-v8a YOUR_APK_FILE.apk
adb: failed to install YOUR_APK_FILE.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
# If your device does not support 64-bit, an emulator, for example:
> adb install --abi arm64-v8a YOUR_APK_FILE.apk
ABI arm64-v8a not supported on this device
একবার আপনি সফলভাবে ইনস্টল হয়ে গেলে, আপনার অ্যাপটি পরীক্ষা করুন যেমন আপনি সাধারণত 32-বিট সংস্করণের মতো গুণমানটি নিশ্চিত করতে পারেন।
পরিচিত সামঞ্জস্যতার সমস্যাগুলির জন্য পরীক্ষা করুন
আপনি পরীক্ষা করার সময়, 64-বিট ডিভাইসে চলার সময় অ্যাপ্লিকেশনগুলিকে প্রভাবিত করে এমন নিম্নলিখিত সমস্যাগুলির জন্য আপনার অ্যাপ্লিকেশনটি পরীক্ষা করুন। এমনকি যদি আপনার অ্যাপ্লিকেশনটি সরাসরি আক্রান্ত গ্রন্থাগারগুলির উপর নির্ভর না করে তবে তৃতীয় পক্ষের গ্রন্থাগারগুলি এবং আপনার অ্যাপের নির্ভরতাগুলিতে এসডিকে হতে পারে।
সলোডার
আপনি যদি নেটিভ কোড লোডার এসডিকে সলোডার ব্যবহার করছেন তবে v0.10.4 বা উচ্চতর আপডেট করুন। যদি আপনার অ্যাপ্লিকেশনটি সলোডারের উপর নির্ভর করে এমন এসডিকে ব্যবহার করে তবে আক্রান্ত এসডিকেগুলির সর্বশেষতম স্থিতিশীল সংস্করণটিতেও আপডেট করার বিষয়টি নিশ্চিত করুন।
সলোডার ভি 0.9.0 এবং লোয়ার ধরে নিন যে সিস্টেম লাইব্রেরিগুলি /vendor/lib:/system/lib
উপস্থিত রয়েছে। এই বাগটি পিক্সেল 7 এর মতো ডিভাইসে পর্যবেক্ষণযোগ্য নয় যেখানে পথটি বিদ্যমান, তবে এই অনুমানের ফলে ডিভাইসগুলিতে ক্র্যাশ ঘটে যা কেবলমাত্র /vendor/lib64:/system/lib64
এ সিস্টেম লাইব্রেরি রয়েছে।
সলোডার দ্বারা সৃষ্ট এটি এবং অন্যান্য সমস্যাগুলি ঠিক করার বিষয়ে আরও তথ্যের জন্য, গুগল সহায়তা কেন্দ্রে সম্পর্কিত উত্তরটি দেখুন।
OpenSSL
আপনি যদি ওপেনএসএসএল লাইব্রেরি ব্যবহার করছেন তবে ওপেনএসএসএল 1.1.1 আই বা তারও বেশি আপডেট করুন। যদি আপনার অ্যাপ্লিকেশনটি এসডিকে ব্যবহার করে যা এইচটিটিপিএস ব্যবহার করে যোগাযোগ সরবরাহ করে, বা ওপেনএসএল -এর উপর নির্ভর করে এমন অন্যান্য এসডিকে ব্যবহার করে, তবে এসডিকে -র সর্বশেষ সংস্করণে আপডেট করার বিষয়টি নিশ্চিত করুন যা একটি নতুন ওপেনএসএল সংস্করণ ব্যবহার করে। যদি কোনও উপলভ্য না থাকে তবে এসডিকে সরবরাহকারীর কাছে পৌঁছান।
এআরএমভি 8.3 পিএসি রানটাইমে পয়েন্টারগুলি প্রমাণীকরণ করে হার্ডওয়্যার-সহায়তাযুক্ত নিয়ন্ত্রণ প্রবাহের অখণ্ডতা সক্ষম করে। ওপেনএসএসএল এর পূর্ববর্তী সংস্করণগুলি এই ক্ষমতাগুলি ভুলভাবে ব্যবহার করে, আর্মভি 8.3 এ এবং তার উপর ভিত্তি করে প্রসেসরের সাথে সমস্ত ডিভাইসে রানটাইম ক্র্যাশ সৃষ্টি করে।
ওপেনএসএসএল দ্বারা সৃষ্ট এটি এবং অন্যান্য সমস্যাগুলি ঠিক করার বিষয়ে আরও তথ্যের জন্য, গুগল সহায়তা কেন্দ্রে সম্পর্কিত উত্তরটি দেখুন।
বিটিআই
আর্মভি 8.5 এবং উচ্চতর ব্যবহারের শাখা লক্ষ্য নির্দেশাবলী (বিটিআই) জোপ আক্রমণ থেকে রক্ষা করতে সহায়তা করে। বিটিআই দিয়ে নির্মিত লাইব্রেরির এলোমেলো অফসেটগুলিতে শাখাগুলি যে সমস্ত অবহেলিত এসডিকে -র পূর্ববর্তী সংস্করণগুলি অ্যাপ্লিকেশনগুলি ক্র্যাশ করতে পারে। যেহেতু নির্দেশাবলী ইঙ্গিত হিসাবে এনকোড করা হয়েছে, এই বাগটি বিটিআই সমর্থন করে না এমন ডিভাইসগুলিতে এই বাগটি পর্যবেক্ষণযোগ্য নয়।
প্রকাশ করুন
আপনি যখন মনে করেন যে আপনার অ্যাপ্লিকেশনটি প্রস্তুত, তখন স্বাভাবিক হিসাবে প্রকাশ করুন। সর্বদা হিসাবে, আপনার অ্যাপ্লিকেশন স্থাপনের জন্য সেরা অনুশীলনগুলি অনুসরণ করা চালিয়ে যান। আপনার অ্যাপের গুণমানটি সামঞ্জস্যপূর্ণ তা নিশ্চিত করার জন্য আমরা সীমিত সংখ্যক ব্যবহারকারীর কাছে রোলআউটে বদ্ধ পরীক্ষার ট্র্যাকগুলির সুবিধা নেওয়ার পরামর্শ দিই।
একটি বড় আপডেট রোল আউট করার সময়, বৃহত্তর দর্শকদের কাছে প্রকাশের আগে আপনি 64-বিট-সক্ষম ডিভাইসে পুরোপুরি পরীক্ষা করেছেন তা নিশ্চিত করুন।
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
গুগল প্লেতে প্রকাশিত অ্যাপ্লিকেশনগুলির 64-বিট আর্কিটেকচারকে সমর্থন করা দরকার। আপনার অ্যাপ্লিকেশনটির একটি 64-বিট সংস্করণ যুক্ত করা পারফরম্যান্সের উন্নতি সরবরাহ করে এবং আপনাকে কেবল 64-বিট-কেবল হার্ডওয়্যার সহ ডিভাইসের জন্য সেট আপ করে।
নিম্নলিখিত পদক্ষেপগুলি নিশ্চিত করে যে আপনার 32-বিট অ্যাপ 64-বিট ডিভাইসগুলিকে সমর্থন করে।
আপনার অ্যাপ্লিকেশন মূল্যায়ন করুন
যদি আপনার অ্যাপ্লিকেশনটি জাভা প্রোগ্রামিং ভাষায় বা কোটলিনে সমস্ত লাইব্রেরি বা এসডিকে সহ কেবল কোড ব্যবহার করে তবে আপনার অ্যাপ্লিকেশনটি 64-বিট ডিভাইসগুলিকে সমর্থন করে। যদি আপনার অ্যাপ্লিকেশনটি কোনও নেটিভ কোড ব্যবহার করে, বা এটি যদি তা নিশ্চিত হয় না তবে আপনার অ্যাপ্লিকেশনটি মূল্যায়ন করুন।
দ্রুত স্থিতি চেক
প্লে কনসোলে যান এবং তারা মেনে চলেন কিনা তা দেখার জন্য বিদ্যমান রিলিজগুলি একবার দেখুন।
প্লে কনসোলটি সতর্কতাগুলিও দেখায় যা আপনার খসড়া রিলিজগুলিতে প্রযোজ্য যদি 64-বিট প্রয়োজনীয়তার সাথে সম্পর্কিত কোনও সমস্যা থাকে। নিম্নলিখিত চিত্র একটি উদাহরণ.
যদি কোনও সতর্কতা উপস্থিত হয় তবে আপনার অ্যাপ্লিকেশনটিকে 64-বিট ডিভাইসের সাথে সামঞ্জস্যপূর্ণ করার জন্য নিম্নলিখিত পদক্ষেপগুলি দেখুন।
আপনার অ্যাপ্লিকেশনটি নেটিভ কোড ব্যবহার করে?
আপনার অ্যাপ্লিকেশনটি যদি এটি স্থানীয় কোডটি ব্যবহার করে তবে এটি:
- আপনার অ্যাপ্লিকেশনটিতে কোনও সি/সি ++ (নেটিভ) কোড ব্যবহার করে।
- কোনও তৃতীয় পক্ষের নেটিভ লাইব্রেরির সাথে লিঙ্কগুলি।
- তৃতীয় পক্ষের অ্যাপ নির্মাতা দ্বারা নির্মিত যা দেশীয় গ্রন্থাগারগুলি ব্যবহার করে।
আপনার অ্যাপ্লিকেশনটিতে কি 64-বিট লাইব্রেরি অন্তর্ভুক্ত রয়েছে?
আপনার APK ফাইলের কাঠামোটি পরীক্ষা করুন। তৈরি করা হলে, এপিকে অ্যাপ্লিকেশনটির প্রয়োজনীয় কোনও নেটিভ লাইব্রেরি সহ প্যাকেজ করা হয়। নেটিভ লাইব্রেরিগুলি এবিআইয়ের উপর ভিত্তি করে বিভিন্ন ফোল্ডারে সংরক্ষণ করা হয়। এটি প্রতি 64৪-বিট আর্কিটেকচারকে সমর্থন করার প্রয়োজন নেই, তবে আপনি সমর্থন করেন এমন প্রতিটি দেশীয় 32-বিট আর্কিটেকচারের জন্য আপনাকে অবশ্যই সংশ্লিষ্ট 64-বিট আর্কিটেকচার অন্তর্ভুক্ত করতে হবে।
আর্ম আর্কিটেকচারের জন্য, 32-বিট লাইব্রেরিগুলি আর্মেবি-ভি 7 এ অবস্থিত। -৪-বিট সমতুল্য হ'ল এআরএম 64-ভি 8 এ ।
X86 আর্কিটেকচারের জন্য, 32-বিটের জন্য x86 এবং 64-বিটের জন্য x86_64 সন্ধান করুন।
এই উভয় ফোল্ডারে আপনার নেটিভ লাইব্রেরি রয়েছে তা নিশ্চিত করুন। সংক্ষেপে:
প্ল্যাটফর্ম | 32-বিট লাইব্রেরি ফোল্ডার | 64-বিট লাইব্রেরি ফোল্ডার |
---|---|---|
এআরএম | lib/armeabi-v7a | lib/arm64-v8a |
x86 | lib/x86 | lib/x86_64 |
নোট করুন যে আপনার অ্যাপ্লিকেশনটির উপর নির্ভর করে, প্রতিটি ফোল্ডারে লাইব্রেরির ঠিক একই সেট বা নাও থাকতে পারে। লক্ষ্যটি হ'ল আপনার অ্যাপ্লিকেশনটি কেবলমাত্র 64-বিট-পরিবেশে সঠিকভাবে চলমান তা নিশ্চিত করা।
একটি সাধারণ ক্ষেত্রে, 32-বিট এবং 64-বিট আর্কিটেকচার উভয়ের জন্য নির্মিত একটি এপিকে বা বান্ডিল উভয়ই এবিআইয়ের জন্য ফোল্ডার রয়েছে, যার প্রত্যেকটির সাথে সম্পর্কিত স্থানীয় গ্রন্থাগারগুলির একটি সেট রয়েছে। যদি 64৪-বিটের পক্ষে কোনও সমর্থন না থাকে তবে আপনি একটি 32-বিট এবিআই ফোল্ডার দেখতে পাবেন তবে 64-বিট ফোল্ডার নয়।
এপিকে বিশ্লেষক ব্যবহার করে দেশীয় গ্রন্থাগারগুলির সন্ধান করুন
এপিকে বিশ্লেষক এমন একটি সরঞ্জাম যা আপনাকে একটি বিল্ট এপিকে বিভিন্ন দিক মূল্যায়ন করতে দেয়। যে কোনও নেটিভ লাইব্রেরি খুঁজতে এটি ব্যবহার করুন এবং 64৪-বিট লাইব্রেরি উপস্থিত রয়েছে তা নিশ্চিত করুন।
- অ্যান্ড্রয়েড স্টুডিও খুলুন এবং যে কোনও প্রকল্প খুলুন ।
মেনু থেকে, বিল্ড> এপিকে বিশ্লেষণ করুন নির্বাচন করুন ...
আপনি মূল্যায়ন করতে চান এমন APK চয়ন করুন।
LIB ফোল্ডারের মধ্যে দেখুন, যা '.so' ফাইলগুলি হোস্ট করে। যদি কিছু না থাকে তবে আপনার অ্যাপ্লিকেশনটি 64৪-বিট ডিভাইসগুলিকে সমর্থন করে এবং পরবর্তী কোনও পদক্ষেপের প্রয়োজন হয় না। আপনি যদি আর্মেবি-ভি 7 এ বা x86 দেখতে পান তবে আপনার কাছে 32-বিট লাইব্রেরি রয়েছে।
আপনার কাছে আর্ম 64-ভি 8 এ বা x86_64 ফোল্ডারে অনুরূপ '.so' ফাইল রয়েছে কিনা তা পরীক্ষা করে দেখুন।
আপনার যদি কোনও এআরএম 64-ভি 8 এ বা x86_64 লাইব্রেরি না থাকে তবে আপনার এপিকে এই শিল্পকর্মগুলি বিল্ডিং এবং প্যাকেজিং শুরু করতে আপনার বিল্ড প্রক্রিয়াটি আপডেট করুন।
আপনি যদি ইতিমধ্যে উভয় লাইব্রেরি প্যাকেজড হতে দেখেন তবে আপনি 64-বিট হার্ডওয়্যারটিতে আপনার অ্যাপ্লিকেশনটি পরীক্ষা করতে এগিয়ে যেতে পারেন।
আনজিপিং এপিকে দ্বারা দেশীয় গ্রন্থাগারগুলির সন্ধান করুন
এপিকে ফাইলগুলি জিপ ফাইলগুলির মতো কাঠামোগত করা হয়। কমান্ড লাইন বা অন্য কোনও নিষ্কাশন সরঞ্জামের সাহায্যে এপিকে ফাইলটি বের করুন। আপনার নিষ্কাশন সরঞ্জামের উপর নির্ভর করে আপনাকে ফাইলটি .zip এ নামকরণ করতে হতে পারে।
আপনার অ্যাপ্লিকেশন 64৪-বিট ডিভাইসগুলিকে সমর্থন করে কিনা তা নির্ধারণের জন্য উপরের গাইডেন্স অনুসরণ করে, যে ফাইলগুলি উত্তোলন করা হয়েছে তা ব্রাউজ করুন। আপনি কমান্ড লাইন থেকে নিম্নলিখিত কমান্ড উদাহরণটি চালাতে পারেন:
:: Command Line
> zipinfo -1 YOUR_APK_FILE.apk | grep \.so$
lib/armeabi-v7a/libmain.so
lib/armeabi-v7a/libmono.so
lib/armeabi-v7a/libunity.so
lib/arm64-v8a/libmain.so
lib/arm64-v8a/libmono.so
lib/arm64-v8a/libunity.so
এই উদাহরণে দ্রষ্টব্য আর্মেবি-ভি 7 এ এবং এআরএম 64-ভি 8 এ লাইব্রেরির উপস্থিতি, যার অর্থ অ্যাপ্লিকেশনটি 64-বিট আর্কিটেকচারকে সমর্থন করে।
64-বিট লাইব্রেরি দিয়ে আপনার অ্যাপটি তৈরি করুন
নিম্নলিখিত নির্দেশাবলী কীভাবে 64-বিট লাইব্রেরি তৈরি করবেন তার রূপরেখা। নোট করুন যে এই পদক্ষেপগুলি কেবলমাত্র বিল্ডিং কোড এবং লাইব্রেরিগুলি কভার করে যা আপনি উত্স থেকে তৈরি করতে সক্ষম।
অ্যান্ড্রয়েড স্টুডিও বা গ্রেডল দিয়ে তৈরি করুন
বেশিরভাগ অ্যান্ড্রয়েড স্টুডিও প্রকল্পগুলি অন্তর্নিহিত বিল্ড সিস্টেম হিসাবে গ্রেডল ব্যবহার করে, সুতরাং এই বিভাগটি উভয় ক্ষেত্রেই প্রযোজ্য। আপনার নেটিভ কোডের জন্য বিল্ডগুলি সক্ষম করতে, আপনার অ্যাপ্লিকেশনটির 'বিল্ড.গ্রাডল' ফাইলটিতে এনডিকে.এবিআইফিল্টার সেটিংয়ে আপনি যে আর্কিটেকচারকে সমর্থন করতে চান তার উপর নির্ভর করে এআরএম 64-ভি 8 এ এবং/বা x86_64 যুক্ত করুন:
গ্রোভি
// Your app's build.gradle plugins { id 'com.android.app' } android { compileSdkVersion 27 defaultConfig { appId "com.google.example.64bit" minSdkVersion 15 targetSdkVersion 28 versionCode 1 versionName "1.0" ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64' // ...
কোটলিন
// Your app's build.gradle plugins { id("com.android.app") } android { compileSdkVersion(27) defaultConfig { appId = "com.google.example.64bit" minSdkVersion(15) targetSdkVersion(28) versionCode = 1 versionName = "1.0" ndk { abiFilters += listOf("armeabi-v7a","arm64-v8a","x86","x86_64") } // ...
CMake দিয়ে তৈরি করুন
যদি আপনার অ্যাপ্লিকেশনটি সিএমকে ব্যবহার করে নির্মিত হয় তবে আপনি '-ড্যান্ড্রয়েড_বি' প্যারামিটারে আর্ম 64-ভি 8 এ পাস করে 64-বিট এবিআইয়ের জন্য তৈরি করতে পারেন:
:: Command Line
> cmake -DANDROID_ABI=arm64-v8a … or
> cmake -DANDROID_ABI=x86_64 …
এনডিকে-বিল্ড দিয়ে তৈরি করুন
যদি আপনার অ্যাপ্লিকেশনটি এনডিকে-বিল্ড দিয়ে নির্মিত হয় তবে আপনি APP_ABI
ভেরিয়েবল ব্যবহার করে আপনার 'অ্যাপ্লিকেশন.এমকে' ফাইলটি সংশোধন করে 64-বিট এবিআইয়ের জন্য তৈরি করতে পারেন:
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
64-বিট 32-বিট কোড পোর্ট
যদি আপনার কোডটি ইতিমধ্যে ডেস্কটপ বা আইওএসে চলে তবে আপনার অ্যান্ড্রয়েডের জন্য কোনও অতিরিক্ত কাজ করার দরকার নেই। যদি আপনার কোডটি প্রথমবারের মতো 64৪-বিট সিস্টেমের জন্য নির্মিত হয়েছে, তবে আপনাকে অবশ্যই মূল সমস্যাটি সমাধান করতে হবে যে পয়েন্টারগুলি int
মতো 32-বিট পূর্ণসংখ্যার প্রকারগুলিতে আর ফিট করে না।
আপডেট কোড যা int
, unsigned
, বা uint32_t
মতো ধরণের পয়েন্টার সংরক্ষণ করে। ইউনিক্স সিস্টেমে, long
পয়েন্টারের আকারের সাথে মেলে তবে এটি উইন্ডোজে সত্য নয়। পরিবর্তে, উদ্দেশ্য-প্রকাশক প্রকারগুলি uintptr_t
বা intptr_t
ব্যবহার করুন। দুটি পয়েন্টারের মধ্যে পার্থক্য সংরক্ষণ করতে, ptrdiff_t
প্রকারটি ব্যবহার করুন।
আপনার সর্বদা নির্দিষ্ট, স্থির-প্রস্থের পূর্ণসংখ্যার প্রকারগুলি পছন্দ করা উচিত <stdint.h>
তে সংজ্ঞায়িত করা না বরং int
বা long
, এমনকি নন-পয়েন্টারগুলির জন্য এমনকি স্থির-প্রস্থের প্রকারের চেয়ে।
আপনার কোডটি ভুলভাবে পয়েন্টার এবং পূর্ণসংখ্যার মধ্যে রূপান্তরিত করে এমন কেসগুলি ধরতে নিম্নলিখিত সংকলক পতাকাগুলি ব্যবহার করুন:
-Werror=pointer-to-int-cast
-Werror=int-to-pointer-cast
-Werror=shorten-64-to-32
সি/সি ++ অবজেক্টগুলিতে পয়েন্টারগুলি ধারণ করে এমন int
ক্ষেত্রগুলির সাথে জাভা ক্লাসগুলি একই সমস্যা রয়েছে। আপনার জেএনআই উত্সে jint
সন্ধান করুন এবং নিশ্চিত করুন যে আপনি জাভা সাইডে এবং সি ++ পাশের jlong
long
স্যুইচ করুন।
অন্তর্ভুক্ত ফাংশন ঘোষণাগুলি 64-বিট কোডের জন্য অনেক বেশি বিপজ্জনক। সি/সি ++ ধরে নিন যে একটি স্পষ্টভাবে ঘোষিত ফাংশনের রিটার্ন প্রকার (এটি একটি ফাংশন যা সংকলকটির জন্য কোনও ঘোষণা দেখেনি) int
। যদি আপনার ফাংশনের প্রকৃত রিটার্ন প্রকারটি একটি পয়েন্টার হয় তবে এটি 32-বিট সিস্টেমে সূক্ষ্মভাবে কাজ করে যেখানে আপনার পয়েন্টারটি কোনও আইএনটিতে ফিট করে। যাইহোক, একটি 64-বিট সিস্টেমে, সংকলকটি আপনার পয়েন্টারের উপরের অর্ধেকটি ফেলে দেয়। যেমন:
// This function returns a pointer:
// extern char* foo();
// If you don't include a header that declares it,
// when the compiler sees this:
char* result = foo();
// Instead of compiling that to:
result = foo();
// It compiles to something equivalent to:
result = foo() & 0xffffffff;
// Which will then cause a SIGSEGV if you try to dereference `result`.
নিম্নলিখিত সংকলক পতাকা অন্তর্নিহিত ফাংশন ঘোষণার সতর্কতাগুলিকে ত্রুটিগুলিতে পরিণত করে যাতে আপনি এই সমস্যাটি আরও সহজেই খুঁজে পেতে এবং ঠিক করতে পারেন:
-Werror=implicit-function-declaration
আপনার যদি ইনলাইন এসেম্বলার থাকে তবে এটি আবার লিখুন বা একটি সরল সি/সি ++ বাস্তবায়ন ব্যবহার করুন।
যদি আপনার কাছে হার্ড-কোডেড আকারের ধরণের থাকে (উদাহরণস্বরূপ 8 বা 16 বাইট), এগুলিকে সমতুল্য sizeof(T)
এক্সপ্রেশন যেমন sizeof(void*)
দিয়ে প্রতিস্থাপন করুন।
আপনার যদি শর্তসাপেক্ষে 64-বিটের চেয়ে 32-বিটের জন্য বিভিন্ন কোড সংকলন করতে হয় তবে আপনি জেনেরিক 32/64 পার্থক্য, বা __arm__
, __aarch64__
(আর্ম 64), __i386__
(x86), এবং __x86_64__
এর জন্য নির্দিষ্ট আর্কিটেকচারের জন্য #if defined(__LP64__)
ব্যবহার করতে পারেন।
printf
বা scanf
-এর মতো ফাংশনগুলির জন্য ফর্ম্যাট স্ট্রিংগুলি সামঞ্জস্য করুন, কারণ traditional তিহ্যবাহী ফর্ম্যাট স্পেসিফায়ারগুলি আপনাকে 32-বিট এবং 64-বিট ডিভাইস উভয়ের জন্য সঠিক 64৪-বিট প্রকারগুলি নির্দিষ্ট করতে দেয় না। হেক্স পয়েন্টারগুলি লেখার জন্য এবং পড়ার জন্য PRIxPTR
এবং SCNxPTR
এই সমস্যাটি সমাধান করুন, <inttypes.h>
এ PRI
এবং SCN
ম্যাক্রোস; এবং PRId64
এবং SCNd64
port 64-বিট মানগুলি পোর্টেবল করে পড়ার জন্য।
স্থানান্তরিত হওয়ার সময়, আপনাকে 1
ব্যবহারের পরিবর্তে শিফট করার জন্য 64-বিট ধ্রুবক পেতে 1ULL
ব্যবহার করতে হবে, যা কেবল 32 বিট।
অ্যান্ড্রয়েড অ্যাপ্লিকেশন বান্ডিলের সাথে আকার বাড়ায়
Adding 64-bit architecture support to your app can cause your APK size to grow. We strongly recommend taking advantage of the Android App Bundle feature to minimize the size impact of including both 32- and 64-bit native code in the same APK.
গেম ডেভেলপার
The three most-used engines support 64-bit:
- Unreal since 2015
- Cocos2d since 2015
- Unity since 2018
ঐক্য বিকাশকারীরা
Upgrade to capable versions
Unity provides 64-bit support with versions 2018.2 and 2017.4.16 .
If you are on a version of Unity that does not support 64-bit, determine the version you want to upgrade to and follow the guides that Unity provides to migrate your environment, ensuring your app is upgraded to a version that can build 64-bit libraries. Unity recommends you have access to the latest features and updates by upgrading to the latest LTS version of the editor.
Here's a chart that outlines the various Unity versions and what you should do:
ইউনিটি সংস্করণ | Version supports 64-bit? | প্রস্তাবিত কর্মের কোর্স |
---|---|---|
2020.x | ✔️ | Ensure your build settings output 64-bit libraries. |
2019.x | ✔️ | Ensure your build settings output 64-bit libraries. |
2018.4 (LTS) | ✔️ | Ensure your build settings output 64-bit libraries. |
2018.3 | ✔️ | Ensure your build settings output 64-bit libraries. |
2018.2 | ✔️ | Ensure your build settings output 64-bit libraries. |
2018.1 | ➖ | Has experimental 64-bit support. |
2017.4 (LTS) | ✔️ | Supported as of 2017.4.16 . Ensure your build settings output 64-bit libraries. |
2017.3 | ✖️ | Upgrade to version that supports 64-bit. |
2017.2 | ✖️ | Upgrade to version that supports 64-bit. |
2017.1 | ✖️ | Upgrade to version that supports 64-bit. |
<=5.6 | ✖️ | Upgrade to version that supports 64-bit. |
Change build settings to output 64-bit libraries
If you are using a version of Unity that supports 64-bit Android libraries, you can generate a 64-bit version of your app by adjusting your build settings. Use the IL2CPP backend as your Scripting Backend. To set up your Unity project to build 64-bit architecture, do the following:
- Go to Build Settings and ensure you are building for Android by verifying that the Unity symbol is next to Android under Platform . 1. If the Unity symbol is not next to the Android platform, select Android and click Switch Platform.
Click Player settings.
Navigate to Player Settings Panel > Settings for Android > Other settings > Configuration
Set Scripting Backend to IL2CPP.
Select the Target Architecture > ARM64 checkbox.
Build as normal!
Note that building for ARM64 requires all your assets to be built specifically for that platform. Follow Unity's guidance for reducing APK size, and consider taking advantage of the Android App Bundle feature to help mitigate this increase in size.
Multi-APK and 64-bit compliance
If you are using Google Play's multiple-APK support to publish your app, note that compliance with the 64-bit requirement is evaluated at the release level. However, the 64-bit requirement does not apply to APKs or app bundles that are not distributed to devices running Android 9 Pie or later.
If one of your APKs is marked as not being compliant, but is an earlier version and it's not possible to bring it into compliance, one strategy is to add a maxSdkVersion="27"
attribute in the uses-sdk
element in that APK's manifest. This APK isn't delivered to devices running Android 9 Pie or later, and no longer blocks compliance.
RenderScript and 64-bit compliance
If your app uses RenderScript and was built with an earlier version of the Android tools, you might see 64-bit compliance issues for the app. With build tools earlier than 21.0.0, the compiler may generate bitcode into an external .bc
file. These legacy .bc
files are no longer supported for 64-bit architectures, so the presence of the file in your APK causes the compliance issue.
To fix the issue, remove any .bc
files in your project, upgrade your environment to build-tools-21.0.0
or later, and set the renderscriptTargetApi
in Android Studio to 21+, to tell the compiler to not emit .bc
files. Then, rebuild your app, inspect for .bc
files, and upload to Play Console.
Test your app on 64-bit hardware
The 64-bit version of your app should offer the same quality and feature set as the 32-bit version. Test your app to make sure that users on the latest 64-bit devices have a great experience in your app.
64-bit-only devices
Whenever possible, we recommend testing your app in a strict 64-bit-only environment using one of the following options:
Google Pixel with a 64-bit-only system image
To facilitate app development and testing, we've provided special system images with a strict 64-bit-only environment for some Pixel devices. These 64-bit-only images were originally provided concurrently with standard factory system images for the Android 13 and 14 preview releases, but you can continue to use them as you test your app for 64-bit compatibility.
Get a 64-bit-only image
Similar to factory system images, you can flash a 64-bit-only image to your device using the Android Flash Tool or by flashing your device manually , as described in the following sections.
অ্যান্ড্রয়েড ফ্ল্যাশ টুল ব্যবহার করে আপনার ডিভাইস ফ্ল্যাশ করুন
অ্যান্ড্রয়েড ফ্ল্যাশ টুল আপনাকে আপনার সমর্থিত পিক্সেল ডিভাইসে সুরক্ষিতভাবে একটি সিস্টেম ইমেজ ফ্ল্যাশ করতে দেয়। Android Flash Tool যেকোন ওয়েব ব্রাউজারে কাজ করে যা WebUSB সমর্থন করে, যেমন Chrome বা Edge 79+।
অ্যান্ড্রয়েড ফ্ল্যাশ টুল আপনাকে আপনার ডিভাইস ফ্ল্যাশ করার প্রক্রিয়ার মাধ্যমে ধাপে ধাপে গাইড করে—কোনও সরঞ্জাম ইনস্টল করার প্রয়োজন নেই—কিন্তু আপনাকে আপনার ডিভাইস আনলক করতে হবে এবং বিকাশকারী বিকল্পগুলিতে USB ডিবাগিং সক্ষম করতে হবে ৷ সম্পূর্ণ নির্দেশাবলীর জন্য, অ্যান্ড্রয়েড ফ্ল্যাশ টুল ডকুমেন্টেশন দেখুন।
Connect your device over USB, then, depending on the type of system image you want to flash, navigate to Android Flash Tool using one of the following links and follow the onscreen guidance:
Android 14 (Beta 5.2) 64-bit-only system images
Select the device you are trying to flash:
Android 13 (QPR3 Beta 3.2) 64-bit-only system images
Select the device you are trying to flash:
আপনার ডিভাইস ম্যানুয়ালি ফ্ল্যাশ করুন
আপনি সর্বশেষ সিস্টেম ইমেজ ডাউনলোড করতে পারেন এবং ম্যানুয়ালি আপনার ডিভাইসে ফ্ল্যাশ করতে পারেন। আপনার পরীক্ষা ডিভাইসের জন্য সিস্টেম ইমেজ ডাউনলোড করতে নিম্নলিখিত টেবিল দেখুন. আপনার যদি পরীক্ষার পরিবেশের উপর সুনির্দিষ্ট নিয়ন্ত্রণের প্রয়োজন হয় বা আপনার যদি ঘন ঘন পুনরায় ইনস্টল করার প্রয়োজন হয়, যেমন স্বয়ংক্রিয় পরীক্ষা করার সময় একটি ডিভাইস ম্যানুয়ালি ফ্ল্যাশ করা কার্যকর।
আপনি আপনার ডিভাইসের ডেটা ব্যাক আপ করার পরে এবং ম্যাচিং সিস্টেমের ছবি ডাউনলোড করার পরে, আপনি ছবিটি আপনার ডিভাইসে ফ্ল্যাশ করতে পারেন৷
আপনি যে কোনো সময় সর্বশেষ সর্বজনীন বিল্ডে ফিরে যেতে বেছে নিতে পারেন।
64-bit-only factory images for Android 14 (Beta 5.3)
These images provide a strict 64-bit-only environment for testing 64-bit app compatibility. These 64-bit-only configurations are for developer use only.
ডিভাইস | ডাউনলোড লিংক | SHA-256 Checksum |
---|---|---|
Pixel 4a (5G) | 7e6731fab811ae389f5ff882d5c5a2b8b942b8363b22bbcc038b39d7c539e60a | |
পিক্সেল 5 | c4da6a19086a02f2cd2fa7a4054e870916954b8e5a61e9a07ee942c537e4b45a | |
পিক্সেল 6 | 98943384284cbc7323b8867d84c36151757f67ae7633012fb69cb5d6bec2b554 | |
Pixel 6 Pro | 67ec40be5bd05a40fa5dabc1ce6795aae75d1904193d52e2da00425ed7cb895b |
64-bit-only factory images for Android 13 (QPR3 Beta 3.2)
These images provide a strict 64-bit-only environment for testing 64-bit app compatibility. These 64-bit-only configurations are for developer use only.
ডিভাইস | ডাউনলোড লিংক | SHA-256 Checksum |
---|---|---|
Pixel 4a (5G) | b4be40924f62c3c2b3ed20a9f7fa4303aa9c39649d778eb96f86c867fe3ae59a | |
পিক্সেল 5 | 6e5e027a4f64f9f786db9bb69d50d1a551c3f6aad893ae450e1f8279ea1b761a | |
পিক্সেল 6 | becb9b81a5bddad67a4ac32d30a50dcb372b9d083cb7c046e5180510e479a0b8 | |
Pixel 6 Pro | b0ef544ed2312ac44dc827f24999281b147c11d76356c2d06b2c57a191c60480 |
একটি পাবলিক বিল্ড এ ফিরে যান
আপনি ফ্যাক্টরি ইমেজ ফ্ল্যাশ করতে অ্যান্ড্রয়েড ফ্ল্যাশ টুল ব্যবহার করতে পারেন, অথবা নেক্সাস এবং পিক্সেল ডিভাইসের ফ্যাক্টরি ইমেজ পৃষ্ঠা থেকে ফ্যাক্টরি স্পেক সিস্টেম ইমেজ পেতে পারেন এবং তারপর ম্যানুয়ালি ডিভাইসে ফ্ল্যাশ করতে পারেন।
অ্যান্ড্রয়েড এমুলেটর
Starting in Android 12 (API level 31), Android Emulator system images are 64-bit only. Create an Android Virtual Device (AVD) using a system image with Android 12 (API level 31) or higher to get a strict 64-bit-only environment for app testing.
Other device options
If you don't have one of these devices or can't use the Android Emulator, your next best option is to use a device that is 64-bit capable, such as a Google Pixel or other recent flagship devices from other device manufacturers.
Install and test your app
The easiest way to test your APK is to install the app using Android Debug Bridge (adb). In most cases, you can supply --abi
as a parameter to indicate which libraries to install to the device. This installs the app with only the 64-bit libraries on the device.
:: Command Line
# A successful install:
> adb install --abi armeabi-v7a YOUR_APK_FILE.apk
Success
# If your APK does not have the 64-bit libraries:
> adb install --abi arm64-v8a YOUR_APK_FILE.apk
adb: failed to install YOUR_APK_FILE.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
# If your device does not support 64-bit, an emulator, for example:
> adb install --abi arm64-v8a YOUR_APK_FILE.apk
ABI arm64-v8a not supported on this device
Once you have installed successfully, test your app like you normally would to ensure the quality is the same as the 32-bit version.
Check for known compatibility issues
As you test, check your app for the following issues that affect apps when running on 64-bit devices. Even if your app doesn't depend on the affected libraries directly, third-party libraries and SDKs in your app's dependencies might.
SoLoader
If you are using the native code loader SDK SoLoader , update to v0.10.4 or higher. If your app uses SDKs that depend on SoLoader, make sure to also update to the latest stable version of the affected SDKs.
SoLoader v0.9.0 and lower assume that system libraries are present in /vendor/lib:/system/lib
. This bug is not observable in devices like the Pixel 7 where the path exists, but this assumption causes crashes in devices that only have system libraries in /vendor/lib64:/system/lib64
.
For more information on fixing this and other issues caused by SoLoader, see the corresponding answer in the Google Help Center .
OpenSSL
If you are using the OpenSSL library, update to OpenSSL 1.1.1i or higher. If your app uses SDKs that provide communication using HTTPS, or other SDKs that depend on OpenSSL, make sure to also update to the latest version of the SDK that uses a newer OpenSSL version. Reach out to the SDK provider if one is not available.
ARMv8.3 PAC enables hardware-assisted control flow integrity by authenticating pointers at runtime. Earlier versions of OpenSSL use these capabilities incorrectly, causing runtime crashes in all devices with processors based on ARMv8.3a and above.
For more information on fixing this and other issues caused by OpenSSL, see the corresponding answer in the Google Help Center .
বিটিআই
ARMv8.5 and higher use Branch Target Instructions (BTIs) to help protect against JOP attacks . Earlier versions of obfuscation SDKs that branch into random offsets of libraries built with BTI can cause apps to crash. Since the instructions are encoded as HINTs , this bug is not observable in devices that don't support BTI.
প্রকাশ করুন
When you feel like your app is ready, publish as normal. As always, continue to follow the best practices for deploying your app. We recommend taking advantage of closed testing tracks to rollout to a limited number of users to ensure the quality of your app is consistent.
As when rolling out an major update, make sure you have thoroughly tested on 64-bit-capable devices before publishing to a larger audience.
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 14 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.
ডাউনলোড করুন Android 13 factory system image (64-bit-only)
ডাউনলোড করার আগে, আপনাকে অবশ্যই নিম্নলিখিত শর্তাবলীতে সম্মত হতে হবে।
শর্তাবলী
By clicking to accept, you hereby agree to the following:All use of this development version SDK will be governed by the Android Software Development Kit License Agreement (available at https://developer.android.com/studio/terms and such URL may be updated or changed by Google from time to time), which will terminate when Google issues a final release version.
Your testing and feedback are important part of the development process and by using the SDK, you acknowledge that (i) implementation of some features are still under development, (ii) you should not rely on the SDK having the full functionality of a stable release; (iii) you agree not to publicly distribute or ship any application using this SDK as this SDK will no longer be supported after the official Android SDK is released; and (iv) you agree that Google may deliver elements of the SDK to your devices via auto-update (OTA or otherwise, in each case as determined by Google).
WITHOUT LIMITING SECTION 10 OF THE ANDROID SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT, YOU UNDERSTAND THAT A DEVELOPMENT VERSION OF A SDK IS NOT A STABLE RELEASE AND MAY CONTAIN ERRORS, DEFECTS AND SECURITY VULNERABILITIES THAT CAN RESULT IN SIGNIFICANT DAMAGE, INCLUDING THE COMPLETE, IRRECOVERABLE LOSS OF USE OF YOUR COMPUTER SYSTEM OR OTHER DEVICE.