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' APP_ABI
পরিবর্তন করে 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 দ্বারা সমর্থিত নির্দিষ্ট আর্কিটেকচার।
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' APP_ABI
পরিবর্তন করে 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 দ্বারা সমর্থিত নির্দিষ্ট আর্কিটেকচার।
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
করতে আপনার পরিবেশটি আপগ্রেড করুন এবং সংকলককে 21+ এ অ্যান্ড্রয়েড স্টুডিওতে renderscriptTargetApi
সেট করুন, সংকলককে। .bc
ফাইলগুলি না দেওয়ার জন্য বলুন। তারপরে, আপনার অ্যাপ্লিকেশনটি পুনর্নির্মাণ করুন, .bc
ফাইলগুলির জন্য পরিদর্শন করুন এবং কনসোল খেলতে আপলোড করুন।
64-বিট হার্ডওয়্যারে আপনার অ্যাপটি পরীক্ষা করুন
আপনার অ্যাপ্লিকেশনটির 64-বিট সংস্করণটি 32-বিট সংস্করণ হিসাবে একই মানের এবং বৈশিষ্ট্য সেট সরবরাহ করা উচিত। সর্বশেষ 64৪-বিট ডিভাইসে ব্যবহারকারীদের আপনার অ্যাপ্লিকেশনটিতে দুর্দান্ত অভিজ্ঞতা রয়েছে তা নিশ্চিত করার জন্য আপনার অ্যাপ্লিকেশনটি পরীক্ষা করুন।
64-বিট-কেবল ডিভাইস
যখনই সম্ভব, আমরা নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করে আপনার অ্যাপ্লিকেশনটি কঠোর 64-বিট-কেবলমাত্র পরিবেশে পরীক্ষা করার পরামর্শ দিই:
একটি 64-বিট-কেবল সিস্টেম চিত্র সহ গুগল পিক্সেল
অ্যাপ্লিকেশন বিকাশ এবং পরীক্ষার সুবিধার্থে, আমরা কিছু পিক্সেল ডিভাইসের জন্য একটি কঠোর 64-বিট-কেবল পরিবেশের সাথে বিশেষ সিস্টেমের চিত্র সরবরাহ করেছি। এই 64৪-বিট-কেবল চিত্রগুলি মূলত অ্যান্ড্রয়েড 13 এবং 14 পূর্বরূপ প্রকাশের জন্য স্ট্যান্ডার্ড ফ্যাক্টরি সিস্টেমের চিত্রগুলির সাথে একই সাথে সরবরাহ করা হয়েছিল, তবে আপনি 64-বিট সামঞ্জস্যের জন্য আপনার অ্যাপটি পরীক্ষা করার সাথে সাথে আপনি সেগুলি ব্যবহার চালিয়ে যেতে পারেন।
একটি 64-বিট-কেবল চিত্র পান
কারখানা সিস্টেমের চিত্রগুলির মতো, আপনি অ্যান্ড্রয়েড ফ্ল্যাশ সরঞ্জামটি ব্যবহার করে বা আপনার ডিভাইসটিকে ম্যানুয়ালি ফ্ল্যাশ করে নিম্নলিখিত বিভাগগুলিতে বর্ণিত হিসাবে আপনার ডিভাইসে একটি 64-বিট-কেবল চিত্র ফ্ল্যাশ করতে পারেন।
অ্যান্ড্রয়েড ফ্ল্যাশ সরঞ্জাম ব্যবহার করে আপনার ডিভাইসটি ফ্ল্যাশ করুন
অ্যান্ড্রয়েড ফ্ল্যাশ সরঞ্জাম আপনাকে আপনার সমর্থিত পিক্সেল ডিভাইসে নিরাপদে একটি সিস্টেম চিত্র ফ্ল্যাশ করতে দেয়। অ্যান্ড্রয়েড ফ্ল্যাশ সরঞ্জামটি কোনও ওয়েব ব্রাউজারের সাথে কাজ করে যা ওয়েবাসবি সমর্থন করে, যেমন ক্রোম বা এজ 79+।
অ্যান্ড্রয়েড ফ্ল্যাশ সরঞ্জামটি আপনার ডিভাইসটি ফ্ল্যাশ করার প্রক্রিয়াটির মাধ্যমে আপনাকে ধাপে ধাপে গাইড করে-সরঞ্জামগুলি ইনস্টল করার দরকার নেই-তবে আপনাকে আপনার ডিভাইসটি আনলক করতে হবে এবং বিকাশকারী বিকল্পগুলিতে ইউএসবি ডিবাগিং সক্ষম করতে হবে । সম্পূর্ণ নির্দেশাবলীর জন্য, অ্যান্ড্রয়েড ফ্ল্যাশ সরঞ্জাম ডকুমেন্টেশন দেখুন।
আপনার ডিভাইসটি ইউএসবি -র মাধ্যমে সংযুক্ত করুন, তারপরে, আপনি যে ধরণের সিস্টেম চিত্রটি ফ্ল্যাশ করতে চান তার উপর নির্ভর করে নিম্নলিখিত লিঙ্কগুলির একটি ব্যবহার করে অ্যান্ড্রয়েড ফ্ল্যাশ সরঞ্জামে নেভিগেট করুন এবং অনস্ক্রিন গাইডেন্স অনুসরণ করুন:
অ্যান্ড্রয়েড 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-বিট-শুধু পরিবেশ পেতে Android 12 (API স্তর 31) বা উচ্চতর একটি সিস্টেম চিত্র ব্যবহার করে একটি Android ভার্চুয়াল ডিভাইস (AVD) তৈরি করুন ৷
অন্যান্য ডিভাইস বিকল্প
আপনার যদি এই ডিভাইসগুলির মধ্যে একটি না থাকে বা অ্যান্ড্রয়েড এমুলেটরটি ব্যবহার করতে না পারে তবে আপনার পরবর্তী সেরা বিকল্পটি এমন একটি ডিভাইস ব্যবহার করা যা 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.