Google Play पर पब्लिश किए गए ऐप्लिकेशन के लिए, यह ज़रूरी है कि वे 64-बिट आर्किटेक्चर. अपने ऐप्लिकेशन का 64-बिट वर्शन जोड़ना परफ़ॉर्मेंस को बेहतर बनाता है और आपको सिर्फ़ 64-बिट वाले डिवाइसों के लिए सेट अप करता है हार्डवेयर.
इन तरीकों से यह पक्का करें कि आपका 32-बिट ऐप्लिकेशन, 64-बिट वाले डिवाइसों पर काम करता है.
अपने ऐप्लिकेशन का आकलन करें
अगर आपका ऐप्लिकेशन सिर्फ़ Java प्रोग्रामिंग भाषा या Kotlin के साथ सभी लाइब्रेरी या SDK टूल शामिल हैं, तो आपका ऐप्लिकेशन 64-बिट वाले डिवाइसों पर काम करता है. अगर आपका ऐप्लिकेशन किसी नेटिव कोड का इस्तेमाल करता है या आपको पक्के तौर पर नहीं पता कि वह ऐसा करता है या नहीं, तो अपने ऐप्लिकेशन की है.
स्थिति की तुरंत जाँच
Play Console पर जाएं और मौजूदा रिलीज़ पर नज़र डालें कि क्या वे नीति का पालन करती हैं.
Play Console, ऐसी चेतावनियां भी दिखाता है जो आपकी ड्राफ़्ट रिलीज़ पर लागू होती हैं. ऐसा तब होता है, जब 64-बिट की ज़रूरत से जुड़ी कोई भी समस्या हो. यहां दी गई इमेज का उदाहरण दिया गया है.
अगर कोई सूचना दिखती है, तो ऐप्लिकेशन के साथ काम करने के लिए नीचे दिया गया तरीका अपनाएं 64-बिट वाले डिवाइस.
क्या आपका ऐप्लिकेशन नेटिव कोड का इस्तेमाल करता है?
आपका ऐप्लिकेशन नेटिव कोड का इस्तेमाल तब करता है, जब:
- आपके ऐप्लिकेशन में किसी भी C/C++ (नेटिव) कोड का इस्तेमाल करता हो.
- तीसरे पक्ष की किसी स्थानीय लाइब्रेरी से लिंक.
- इसे तीसरे पक्ष के ऐसे ऐप्लिकेशन बिल्डर ने बनाया है जो नेटिव लाइब्रेरी का इस्तेमाल करता है.
क्या आपके ऐप्लिकेशन में 64-बिट लाइब्रेरी की सुविधा है?
अपनी APK फ़ाइल के स्ट्रक्चर की जांच करें. बनाए जाने पर, APK किसी भी जो ऐप्लिकेशन के लिए ज़रूरी नेटिव लाइब्रेरी हैं. स्थानीय लाइब्रेरी को अलग-अलग जगहों पर सेव किया जाता है एबीआई पर आधारित फ़ोल्डर हो. यह ज़रूरी नहीं है कि 64-बिट आर्किटेक्चर, लेकिन हर नेटिव 32-बिट आर्किटेक्चर के लिए आपका में संबंधित 64-बिट आर्किटेक्चर शामिल होना चाहिए.
ARM आर्किटेक्चर के लिए, 32-बिट लाइब्रेरी armeabi-v7a पर मौजूद हैं. 64-बिट के बराबर सुविधा arm64-v8a है.
x86 आर्किटेक्चर के लिए, 32-बिट के लिए x86 और उसके लिए x86_64 की तलाश करें 64-बिट.
पक्का करें कि आपके पास इन दोनों फ़ोल्डर में नेटिव लाइब्रेरी हों. रीकैप के लिए:
प्लैटफ़ॉर्म | 32-बिट लाइब्रेरी फ़ोल्डर | 64-बिट लाइब्रेरी फ़ोल्डर |
---|---|---|
सेट करें | lib/armeabi-v7a
|
lib/arm64-v8a
|
x86 | lib/x86
|
lib/x86_64
|
ध्यान रखें कि आपके ऐप्लिकेशन के आधार पर, ऐसा हो सकता है कि बिलकुल एक जैसा सेट न हो लाइब्रेरी चुनें. इसका मकसद यह पक्का करना है कि आपका ऐप्लिकेशन जिसमें सिर्फ़ 64-बिट वाला एनवायरमेंट मौजूद हो.
आम तौर पर, ऐसा APK या बंडल जिसे 32-बिट और 64-बिट, दोनों के लिए बनाया गया है आर्किटेक्चर में दोनों एबीआई के लिए फ़ोल्डर होते हैं. हर फ़ोल्डर में नेटिव का एक सेट होता है लाइब्रेरी. अगर 64-बिट के लिए कोई सुविधा मौजूद नहीं है, तो आपको 32-बिट एबीआई फ़ोल्डर दिख सकता है लेकिन 64-बिट फ़ोल्डर नहीं.
APK ऐनालाइज़र का इस्तेमाल करके नेटिव लाइब्रेरी ढूंढें
APK Analytics एक ऐसा टूल है जिसकी मदद से, अलग-अलग ऐप्लिकेशन का आकलन किया जा सकता है . इसका इस्तेमाल किसी भी नेटिव लाइब्रेरी को खोजने के लिए करें. साथ ही, यह भी पक्का करें कि आपके पास 64-बिट की लाइब्रेरी मौजूद हैं.
- Android Studio खोलें और कोई भी प्रोजेक्ट खोलें.
मेन्यू से, बिल्ड > चुनें APK का विश्लेषण करें...
वह APK चुनें जिसका आपको आकलन करना है.
lib फ़ोल्डर के अंदर देखें, जो '.so' को होस्ट करता है फ़ाइलें (अगर कोई हो.) अगर कोई नहीं, तो आपका ऐप्लिकेशन 64-बिट वाले डिवाइसों पर काम करेगा और आपको आगे कोई कार्रवाई नहीं करनी होगी आवश्यक. अगर आपको armeabi-v7a या x86 दिखता है, तो इसका मतलब है कि आपके डिवाइस में 32-बिट है लाइब्रेरी.
देखें कि क्या आपके पास मिलता-जुलता '.so' है arm64-v8a में मौजूद फ़ाइलें या x86_64 फ़ोल्डर होना चाहिए.
अगर आपके पास arm64-v8a या x86_64 लाइब्रेरी नहीं है, तो अपने बिल्ड प्रोसेस शुरू की जा सकती है.
अगर आपको पहले से ही दोनों लाइब्रेरी पैकेज की गई दिखाई दे रही हैं, तो आप सीधे यहां जा सकते हैं 64-बिट हार्डवेयर पर अपने ऐप्लिकेशन की जांच करना.
APK अनज़िप करके मूल लाइब्रेरी खोजें
APK फ़ाइलों को ZIP फ़ाइलों की तरह स्ट्रक्चर किया जाता है. कमांड लाइन या किसी और एक्सट्रैक्शन टूल, 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 के साथ बनाएं
Android Studio के ज़्यादातर प्रोजेक्ट में, बिल्ड सिस्टम के तौर पर Gradle का इस्तेमाल किया जाता है. इसलिए, सेक्शन दोनों ही मामलों में लागू होता है. अपने नेटिव कोड के लिए बिल्ड चालू करने के लिए, जोड़ें arm64-v8a और/या x86_64. सहायता मिलेगी. 'build.gradle' फ़ाइल:
ग्रूवी
// 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' // ...
Kotlin
// 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 का इस्तेमाल करके बनाया गया है, तो 64-बिट के लिए बनाया जा सकता है पास करके एबीआई arm64-v8a को '-DANDROID_ABI' में जोड़ें पैरामीटर:
:: Command Line
> cmake -DANDROID_ABI=arm64-v8a … or
> cmake -DANDROID_ABI=x86_64 …
ndk-build के साथ बनाएं
अगर आपके ऐप्लिकेशन को ndk-build के साथ बनाया गया है, तो
64-बिट एबीआई, आपकी 'Application.mk' फ़ाइल में बदलाव करके. ऐसा करने के लिए,
APP_ABI
वैरिएबल:
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
32-बिट कोड को 64-बिट में पोर्ट करना
अगर आपका कोड पहले से ही डेस्कटॉप या iOS पर चल रहा है, तो आपको कुछ करने की ज़रूरत नहीं है
Android को और ज़्यादा काम
करते हैं. अगर पहली बार आपका कोड किसी
64-बिट सिस्टम, आपको मुख्य समस्या यह करनी होगी कि पॉइंटर अब फ़िट नहीं हो पा रहे हैं
32-बिट पूर्णांक टाइप, जैसे कि int
.
ऐसा कोड अपडेट करें जो 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
फ़ील्ड वाली Java क्लास जिनमें C/C++ ऑब्जेक्ट के पॉइंटर एक जैसे हैं
समस्या. अपने जेएनआई सोर्स में jint
खोजें और पक्का करें कि
Java साइड पर long
और C++ साइड पर jlong
.
इंप्लिसिट फ़ंक्शन का एलान, 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
अगर आपके पास इनलाइन असेंबलर है, तो उसे फिर से लिखें या सादे 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-बिट, दोनों तरह के डिवाइसों के लिए सही है. PRI
और SCN
मैक्रो
<inttypes.h>
इस सवाल को हल करें, PRIxPTR
और SCNxPTR
हेक्स पॉइंटर लिखने और पढ़ने के लिए; और लिखने के लिए PRId64
और SCNd64
64-बिट वैल्यू को पोर्ट कर सकता है.
शिफ़्ट करते समय, 64-बिट कॉन्सटेंट शिफ़्ट होने के लिए, आपको 1ULL
का इस्तेमाल करना पड़ सकता है
इसके लिए 1
का इस्तेमाल करें, जो सिर्फ़ 32 बिट है.
'Android ऐप्लिकेशन बंडल' का इस्तेमाल करके, ऐप्लिकेशन के साइज़ को कम करने की सुविधा
अपने ऐप्लिकेशन में 64-बिट आर्किटेक्चर की सुविधा जोड़ने से आपके APK का साइज़ बढ़ सकता है. हमारा सुझाव है कि आप ऐप्लिकेशन के साइज़ के असर को कम करने के लिए, Android ऐप्लिकेशन बंडल सुविधा जिसमें एक ही APK में 32- और 64-बिट वाले नेटिव कोड शामिल हैं.
गेम डेवलपर
तीन सबसे ज़्यादा इस्तेमाल किए जाने वाले इंजन, 64-बिट की सुविधा देते हैं:
- 2015 से अवास्तविक
- साल 2015 से Cocos2d
- साल 2018 से Unity
Unity डेवलपर
बेहतर सुविधाओं वाले वर्शन पर अपग्रेड करें
Unity 2018.2 के वर्शन और 16.4.2017.
अगर Unity के ऐसे वर्शन का इस्तेमाल किया जा रहा है जो 64-बिट के साथ काम नहीं करता, तो जिस वर्शन पर अपग्रेड करना है और उन गाइड का पालन करना होगा Unity आपके एनवायरमेंट को माइग्रेट करने की सुविधा देता है, ताकि पक्का किया जा सके कि आपका ऐप्लिकेशन जिसमें 64-बिट लाइब्रेरी बनाने की सुविधा होगी. Unity का सुझाव है कि आपके पास नई सुविधाएं और अपडेट पाने के लिए, एलटीएस के नए वर्शन पर अपग्रेड करें एडिटर का वर्शन है.
यहां एक चार्ट दिया गया है, जिसमें Unity के अलग-अलग वर्शन के बारे में जानकारी दी गई है. साथ ही, यह भी बताया गया है कि आपको क्या करना चाहिए:
Unity वर्शन | क्या वर्शन 64-बिट के साथ काम करता है? | सुझाई गई कार्रवाई |
---|---|---|
2020.x |
✔️ |
अपने बिल्ड को पक्का करें सेटिंग आउटपुट 64-बिट लाइब्रेरी की सुविधा देती हैं. |
2019.x |
✔️ |
अपने बिल्ड को पक्का करें सेटिंग आउटपुट 64-बिट लाइब्रेरी की सुविधा देती हैं. |
2018.4 (एलटीएस) |
✔️ |
अपने बिल्ड को पक्का करें सेटिंग आउटपुट 64-बिट लाइब्रेरी की सुविधा देती हैं. |
3.2018 |
✔️ |
पक्का करें कि आपकी बिल्ड सेटिंग का आउटपुट 64-बिट लाइब्रेरी. |
2018.2018 |
✔️ |
पक्का करें कि आपकी बिल्ड सेटिंग का आउटपुट 64-बिट लाइब्रेरी. |
1.2018 |
➖ |
प्रयोग के तौर पर 64-बिट की सुविधा है. |
2017.4 (एलटीएस) |
✔️ |
16.4.2017 से लागू. पक्का करें कि आपकी बिल्ड सेटिंग में 64-बिट लाइब्रेरी का आउटपुट हो. |
3.2017. |
न करें |
64-बिट वाले वर्शन पर अपग्रेड करें. |
2017.2 |
न करें |
64-बिट वाले वर्शन पर अपग्रेड करें. |
1.2017 |
न करें |
64-बिट वाले वर्शन पर अपग्रेड करें. |
5.6 से कम या इसके बराबर |
न करें |
64-बिट वाले वर्शन पर अपग्रेड करें. |
बिल्ड सेटिंग को आउटपुट 64-बिट लाइब्रेरी में बदलें
अगर Unity के ऐसे वर्शन का इस्तेमाल किया जा रहा है जो 64-बिट Android लाइब्रेरी के साथ काम करता है, तो अपनी बिल्ड सेटिंग में बदलाव करके, आपके ऐप्लिकेशन का 64-बिट वर्शन जनरेट कर सकता है. इस्तेमाल की जाने वाली चीज़ें स्क्रिप्टिंग बैकएंड के तौर पर, IL2CPP बैकएंड को भी शामिल करें. सेट अप करने के लिए आपका Unity प्रोजेक्ट को 64-बिट आर्किटेक्चर बनाना है, तो ये काम करें:
- बिल्ड की सेटिंग पर जाएं और पक्का करें कि इस तरीके से Android के लिए बनाया जा रहा है यह पुष्टि करना कि प्लैटफ़ॉर्म में Android के बगल में यूनिटी सिंबल मौजूद है. 1. अगर Android प्लैटफ़ॉर्म के बगल में यूनिटी सिंबल नहीं है, तो Android चुनें और प्लैटफ़ॉर्म स्विच करें पर क्लिक करें.
प्लेयर की सेटिंग पर क्लिक करें.
प्लेयर सेटिंग पैनल > पर जाएं Android की सेटिंग > किसी और तरह का कॉन्टेंट सेटिंग > कॉन्फ़िगरेशन
स्क्रिप्टिंग बैकएंड को IL2CPP पर सेट करें.
टारगेट आर्किटेक्चर चुनें > ARM64 चेकबॉक्स.
सामान्य तरीके से बनाएं!
ध्यान दें कि ARM64 के लिए बिल्डिंग बनाने के लिए, यह ज़रूरी है कि आपकी सभी ऐसेट खास तौर पर बनाई जाएं उस प्लैटफ़ॉर्म के लिए. APK को छोटा करने के लिए, Unity के दिशा-निर्देशों का पालन करें और इस सुविधा का फ़ायदा लेने के लिए इस बढ़ोतरी को कम करने के लिए, Android ऐप्लिकेशन बंडल की सुविधा का इस्तेमाल करें आकार में.
मल्टी-APK और 64-बिट अनुपालन
अगर आप इन कामों के लिए Google Play के एक से ज़्यादा APK की सुविधा का इस्तेमाल कर रहे हैं आपका ऐप्लिकेशन पब्लिश करता है या नहीं, तो ध्यान रखें कि यह पता लगाया जाता है कि ऐप्लिकेशन 64-बिट की ज़रूरी शर्त को पूरा करता है या नहीं रिलीज़ लेवल पर मिलता है. हालांकि, 64-बिट की ज़रूरत APK या ऐसे ऐप्लिकेशन बंडल जो Android 9 Pie या उसके बाद के वर्शन पर काम करने वाले डिवाइसों पर उपलब्ध नहीं हैं.
अगर आपके किसी APK को, 'नीति का पालन नहीं करता है' के तौर पर मार्क किया गया है, लेकिन वह पहले का वर्शन है
और इसे अनुपालन में लाना संभव नहीं है, एक कार्यनीति यह है कि
uses-sdk
एलिमेंट में, maxSdkVersion="27"
एट्रिब्यूट
मेनिफ़ेस्ट को पूरी तरह से समझ सकें. यह APK, Android 9 Pie पर चलने वाले डिवाइसों पर डिलीवर नहीं किया गया है
साथ ही, अनुपालन को ब्लॉक नहीं करता.
RenderScript और 64-बिट अनुपालन
अगर आपका ऐप्लिकेशन RenderScript का इस्तेमाल करता है और उसे
Android टूल के लिए, आपको ऐप्लिकेशन के लिए 64-बिट अनुपालन से जुड़ी समस्याएं आ सकती हैं. बिल्ड के साथ
जो टूल 21.0.0 से पहले के हैं, तो कंपाइलर किसी बाहरी
.bc
फ़ाइल. .bc
की ये लेगसी फ़ाइलें, अब 64-बिट के साथ काम नहीं करतीं
आर्किटेक्चर शामिल होते हैं, इसलिए आपके APK में फ़ाइल मौजूद होने से
समस्या.
इस समस्या को ठीक करने के लिए, अपने प्रोजेक्ट से कोई भी.bc
फ़ाइल हटाएं. इसके बाद, अपनी
आस-पास के माहौल को build-tools-21.0.0
या उसके बाद के लेवल पर सेट करें और
renderscriptTargetApi
की मदद से Android Studio में 21 साल के बाद के वर्शन पर काम करें
कंपाइलर से .bc
फ़ाइलें उत्सर्जन न करें. इसके बाद, अपना ऐप्लिकेशन फिर से बनाएं और .bc
की जांच करें
फ़ाइलों और Play Console पर अपलोड किया जा सकता है.
64-बिट हार्डवेयर पर अपने ऐप्लिकेशन की जांच करें
आपके ऐप्लिकेशन के 64-बिट वर्शन में, वही क्वालिटी और सुविधाएं होनी चाहिए जो 32-बिट वर्शन है. अपने ऐप्लिकेशन की जांच करके, यह पक्का करें कि लोगों के डिवाइस पर 64-बिट का नया वर्शन इंस्टॉल हो Google डिवाइसों पर आपके ऐप्लिकेशन का बेहतरीन अनुभव मिलता है.
सिर्फ़ 64-बिट वाले डिवाइस
हमारा सुझाव है कि जब भी मुमकिन हो, अपने ऐप्लिकेशन को 64-बिट वाले सख्त वर्शन में टेस्ट करें का इस्तेमाल करें:
सिर्फ़ 64-बिट वाले सिस्टम इमेज वाला Google Pixel
ऐप्लिकेशन डेवलपमेंट और टेस्टिंग की सुविधा देने के लिए, हमने सिस्टम की खास इमेज उपलब्ध कराई हैं साथ ही, कुछ Pixel डिवाइसों पर 64-बिट वाली सख्त सेटिंग लागू की गई है. ये 64-बिट मूल रूप से इमेज, फ़ैक्ट्री सिस्टम की स्टैंडर्ड इमेज के साथ दी गई थीं के लिए, Android 13 और 14 की झलक वाली रिलीज़ का इस्तेमाल किया जा सकता है. हालांकि, उन्हें इस तरह इस्तेमाल किया जा सकता है: की जांच करनी है कि आपका ऐप्लिकेशन 64-बिट के साथ काम करता है या नहीं.
सिर्फ़ 64 बिट वाली इमेज पाएं
फ़ैक्ट्री सिस्टम की इमेज की तरह ही, 64-बिट वाली इमेज को भी अपने Android Flash टूल का इस्तेमाल करके या अपने डिवाइस को मैन्युअल तरीके से, नीचे दिए गए सेक्शन में बताया गया है.
Android Flash टूल का इस्तेमाल करके अपने डिवाइस को फ़्लैश करें
Android Flash टूल की मदद से, सिस्टम की इमेज को सुरक्षित तरीके से फ़्लैश किया जा सकता है Pixel डिवाइस का इस्तेमाल करें. Android Flash टूल किसी भी वेब ब्राउज़र के साथ काम करता है जो WebUSB (जैसे, Chrome या Edge 79+) के साथ काम करता हो.
Android Flash Tool, आपको फ़्लैश करने की प्रक्रिया के डिवाइस के लिए—टूल इंस्टॉल करने की ज़रूरत नहीं है—लेकिन आपको अपने डिवाइस को और डेवलपर के लिए सेटिंग और टूल में जाकर, यूएसबी डीबग करने की सुविधा चालू करें. इसके लिए सभी निर्देशों को पूरा करने के लिए, Android Flash टूल दस्तावेज़ में दिया गया है.
अपने डिवाइस को यूएसबी से कनेक्ट करें. इसके बाद, सिस्टम की इमेज के हिसाब से इसे कनेक्ट करें फ़्लैश करने के लिए, निम्न में से किसी एक लिंक का उपयोग करके Android Flash टूल पर जाएं और स्क्रीन पर दिए गए दिशा-निर्देशों का पालन करें:
Android 14 (बीटा 5.2) के लिए, सिर्फ़ 64-बिट वाले सिस्टम इमेज
वह डिवाइस चुनें जिसे आप फ़्लैश करने का प्रयास कर रहे हैं:
Android 13 (QPR3 बीटा 3.2) 64-बिट वाले सिस्टम इमेज
वह डिवाइस चुनें जिसे आप फ़्लैश करने का प्रयास कर रहे हैं:
अपने डिवाइस को मैन्युअल तरीके से फ़्लैश करें
साथ ही, सिस्टम की नई इमेज डाउनलोड की जा सकती है और इसे मैन्युअल तरीके से अपने डिवाइस. अपने टेस्ट के लिए सिस्टम इमेज डाउनलोड करने के लिए, यहां दी गई टेबल देखें डिवाइस. अगर आपको डिवाइस को मैन्युअल तरीके से फ़्लैश करना है, तो या अगर आपको बार-बार फिर से इंस्टॉल करने की ज़रूरत हो, जैसे कि ऑटोमेटेड टेस्टिंग कर रहा है.
अपने डिवाइस के डेटा का बैक अप लेने और उससे मेल खाने वाली सिस्टम इमेज डाउनलोड करने के बाद, आपके डिवाइस पर इमेज को फ़्लैश कर सकता है.
आपके पास किसी भी समय नए पब्लिक बिल्ड पर वापस जाने का विकल्प है समय.
Android 14 (बीटा 5.3) के लिए, सिर्फ़ 64-बिट वाली फ़ैक्ट्री इमेज
ये इमेज, 64-बिट ऐप्लिकेशन की टेस्टिंग के लिए 64-बिट वाला सख्त एनवायरमेंट उपलब्ध कराती हैं साथ काम करता है. ये 64-बिट कॉन्फ़िगरेशन, सिर्फ़ डेवलपर के इस्तेमाल के लिए हैं.
डिवाइस | लिंक डाउनलोड करें | SHA-256 चेकसम |
---|---|---|
Pixel 4a (5G) | 7e6731fab811ae389f5ff882d5c5a2b8b942b8363b22bbcc038b39d7c539e60a |
|
Pixel 5 | c4da6a19086a02f2cd2fa7a4054e870916954b8e5a61e9a07ee942c537e4b45a |
|
Pixel 6 | 98943384284cbc7323b8867d84c36151757f67ae7633012fb69cb5d6bec2b554 |
|
Pixel 6 Pro | 67ec40be5bd05a40fa5dabc1ce6795aae75d1904193d52e2da00425ed7cb895b |
Android 13 (QPR3 बीटा 3.2) के लिए सिर्फ़ 64-बिट वाली फ़ैक्ट्री इमेज
ये इमेज, 64-बिट ऐप्लिकेशन की टेस्टिंग के लिए 64-बिट वाला सख्त एनवायरमेंट उपलब्ध कराती हैं साथ काम करता है. ये 64-बिट कॉन्फ़िगरेशन, सिर्फ़ डेवलपर के इस्तेमाल के लिए हैं.
डिवाइस | लिंक डाउनलोड करें | SHA-256 चेकसम |
---|---|---|
Pixel 4a (5G) | b4be40924f62c3c2b3ed20a9f7fa4303aa9c39649d778eb96f86c867fe3ae59a |
|
Pixel 5 | 6e5e027a4f64f9f786db9bb69d50d1a551c3f6aad893ae450e1f8279ea1b761a |
|
Pixel 6 | becb9b81a5bddad67a4ac32d30a50dcb372b9d083cb7c046e5180510e479a0b8 |
|
Pixel 6 Pro | b0ef544ed2312ac44dc827f24999281b147c11d76356c2d06b2c57a191c60480 |
सार्वजनिक बिल्ड पर वापस जाएं
आप Android Flash टूल का इस्तेमाल फ़ैक्ट्री इमेज फ़्लैश करें या फ़ैक्ट्री स्पेसिफ़िकेशन सिस्टम पाएं नेक्सस और Pixel डिवाइसों के लिए फ़ैक्ट्री इमेज से मिली इमेज पेज पर जा सकता है और फिर उसे डिवाइस पर मैन्युअल रूप से फ़्लैश कर दिया जाएगा.
Android एम्युलेटर
Android 12 (एपीआई लेवल 31) और इसके बाद के वर्शन में Android एम्युलेटर सिस्टम की इमेज 64-बिट की हैं सिर्फ़. सिस्टम का इस्तेमाल करके, Android वर्चुअल डिवाइस (एवीडी) बनाएं सिर्फ़ 64-बिट वाली सख्त इमेज के लिए, Android 12 (एपीआई लेवल 31) या उसके बाद के वर्शन वाली इमेज ऐप्लिकेशन टेस्टिंग के लिए एनवायरमेंट.
डिवाइस के अन्य विकल्प
अगर आपके पास इनमें से कोई डिवाइस नहीं है या Android Emulator का इस्तेमाल नहीं किया जा सकता, तो अगला सबसे अच्छा विकल्प यह है कि आप 64-बिट की क्षमता वाले डिवाइस का इस्तेमाल करें. जैसे, Google Pixel या डिवाइस बनाने वाली दूसरी कंपनियों के हाल ही के फ़्लैगशिप डिवाइस.
अपना ऐप्लिकेशन इंस्टॉल करना और उसे टेस्ट करना
अपने APK की जांच करने का सबसे आसान तरीका, Android डीबग का इस्तेमाल करके ऐप्लिकेशन इंस्टॉल करना है
ब्रिज (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 और इससे पहले के वर्शन को लगता है कि सिस्टम लाइब्रेरी
/vendor/lib:/system/lib
. Pixel जैसे डिवाइसों पर इस गड़बड़ी का पता नहीं लगाया जा सकता
7 जहां पाथ मौजूद है, लेकिन इस अनुमान की वजह से सिर्फ़ उन डिवाइसों में क्रैश हो जाते हैं जिनमें
/vendor/lib64:/system/lib64
में सिस्टम लाइब्रेरी मौजूद हों.
इसे ठीक करने और SoLoader की वजह से होने वाली अन्य समस्याओं के बारे में ज़्यादा जानकारी के लिए, Google सहायता केंद्र में संबंधित उत्तर देखें.
OpenSSL
अगर आपकी वेबसाइट पर, गोलियों की अगर आपने आपका ऐप्लिकेशन, एचटीटीपीएस का इस्तेमाल करके जानकारी देने वाले SDK टूल इस्तेमाल करता है या ऐसे दूसरे SDK टूल इस्तेमाल करता है जो तो जारी रखने के लिए, SDK टूल को सबसे नए वर्शन पर अपडेट करना न भूलें. जो नए OpenSSL वर्शन का इस्तेमाल करता है. अगर SDK टूल उपलब्ध नहीं है, तो सेवा देने वाली कंपनी से संपर्क करें उपलब्ध हैं.
ARMv8.3 PAC, हार्डवेयर की मदद से कंट्रोल करने की सुविधा चालू करता है रनटाइम के दौरान पॉइंटर की पुष्टि करके, फ़्लो इंटेग्रिटी. इसके पुराने वर्शन OpenSSL में इन सुविधाओं का गलत तरीके से इस्तेमाल किया जाता है. इस वजह से, सभी डिवाइसों में रनटाइम क्रैश होता है ARMv8.3a और इसके बाद के वर्शन पर आधारित प्रोसेसर वाले डिवाइस.
इसे ठीक करने और दूसरों के साथ ज़्यादा लिंक करने की समस्या के बारे में ज़्यादा जानने के लिए, Google सहायता केंद्र में संबंधित उत्तर देखें.
बीटीआई
ARMv8.5 और इसके बाद के इस्तेमाल के लिए, ब्रांच टारगेट निर्देश (बीटीआई) का इस्तेमाल किया जाता है, ताकि JOP हमले. अस्पष्ट बनाने के पुराने वर्शन ऐसे SDK टूल जो बीटीआई के साथ बनाई गई लाइब्रेरी के रैंडम ऑफ़सेट में बंटे होते हैं. इससे बंद हो जाता है. क्योंकि निर्देशों को इस फ़ॉर्मैट में एन्कोड किया गया है HINT, डिवाइसों में इस गड़बड़ी का पता नहीं लगाया जा सकता जो BTI का समर्थन नहीं करते.
प्रकाशित करें
जब आपको लगे कि आपका ऐप्लिकेशन तैयार है, तब सामान्य रूप से पब्लिश करें. हमेशा की तरह, जारी रखें को डिप्लॉय करने के सबसे सही तरीके अपनाएं. हमारा सुझाव है कि आप की सीमित संख्या में रोल आउट करने के लिए, क्लोज़्ड टेस्टिंग ट्रैक का इस्तेमाल किया गया उपयोगकर्ताओं को ध्यान में रखकर, यह पक्का किया जा सकता है कि आपके ऐप्लिकेशन की क्वालिटी एक जैसी हो.
किसी बड़े अपडेट को रोल आउट करते समय, पक्का करें कि आपने बड़ी ऑडियंस के लिए पब्लिश करने से पहले, 64-बिट की सुविधा वाले डिवाइस.
Download Android 14 factory system image (64-bit-only)
Before downloading, you must agree to the following terms and conditions.
Terms and Conditions
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.
Download Android 14 factory system image (64-bit-only)
Before downloading, you must agree to the following terms and conditions.
Terms and Conditions
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.
Download Android 14 factory system image (64-bit-only)
Before downloading, you must agree to the following terms and conditions.
Terms and Conditions
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.
Download Android 14 factory system image (64-bit-only)
Before downloading, you must agree to the following terms and conditions.
Terms and Conditions
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.
Download Android 13 factory system image (64-bit-only)
Before downloading, you must agree to the following terms and conditions.
Terms and Conditions
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.
Download Android 13 factory system image (64-bit-only)
Before downloading, you must agree to the following terms and conditions.
Terms and Conditions
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.
Download Android 13 factory system image (64-bit-only)
Before downloading, you must agree to the following terms and conditions.
Terms and Conditions
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.
Download Android 13 factory system image (64-bit-only)
Before downloading, you must agree to the following terms and conditions.
Terms and Conditions
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.