يجب أن تتوافق التطبيقات المنشورة على Google Play مع بنية 64 بت. تؤدي إضافة إصدار 64 بت من تطبيقك إلى تحسين الأداء وتجهيز تطبيقك ليكون متوافقًا مع الأجهزة التي تتضمّن أجهزة تعمل بالإصدار 64 بت فقط.
تضمن الخطوات التالية توافق تطبيقك الذي يعمل بنظام 32 بت مع الأجهزة التي تعمل بنظام 64 بت.
تقييم تطبيقك
إذا كان تطبيقك يستخدم فقط الرموز البرمجية المكتوبة بلغة البرمجة Java أو Kotlin، بما في ذلك جميع المكتبات أو حِزم SDK، فهذا يعني أنّ تطبيقك متوافق مع الأجهزة التي تعمل بنظام 64 بت. إذا كان تطبيقك يستخدم أي رمز برمجي أصلي، أو إذا لم تكن متأكدًا من ذلك، عليك تقييم تطبيقك.
التحقّق السريع من الحالة
انتقِل إلى Play Console واطّلِع على الإصدارات الحالية لمعرفة ما إذا كانت متوافقة.
تعرض Play Console أيضًا تحذيرات تنطبق على مسودات إصداراتك في حال وجود أي مشاكل متعلقة بمتطلبات إصدار 64 بت. الصورة التالية هي مثال.
في حال ظهور تنبيه، اطّلِع على الخطوات التالية لجعل تطبيقك متوافقًا مع الأجهزة التي تعمل بإصدار 64 بت.
هل يستخدم تطبيقك رمزًا برمجيًا أصليًا؟
يستخدم تطبيقك الرمز البرمجي الأصلي في الحالات التالية:
- يستخدم أي رمز C/C++ (أصلي) في تطبيقك.
- روابط تتضمّن أي مكتبات أصلية تابعة لجهات خارجية
- تم إنشاؤه باستخدام أداة إنشاء تطبيقات تابعة لجهة خارجية تستخدم مكتبات أصلية.
هل يتضمّن تطبيقك مكتبات 64 بت؟
افحص بنية ملف APK. عند إنشاء حزمة APK، يتم تجميعها مع أي مكتبات مجمّعة من رموز برمجية أصلية يحتاجها التطبيق، ويتم تخزين هذه المكتبات في مجلدات مختلفة استنادًا إلى واجهة التطبيق الثنائية (ABI). ليس مطلوبًا توفير كل بنية 64 بت، ولكن يجب تضمين بنية 64 بت متوافقة مع كل بنية أصلية 32 بت توفّرها.
بالنسبة إلى بنية ARM الأساسية، يمكن الوصول إلى مكتبات إصدار 32 بت من خلال armeabi-v7a. وفي المقابل، يمكن الوصول إلى إصدار 64 بت من خلال arm64-v8a.
بالنسبة إلى بنية x86، ابحث عن x86 للإصدار 32 بت وx86_64 للإصدار 64 بت.
تأكَّد من توفُّر مكتبات أصلية في كلا المجلّدين. باختصار:
النظام الأساسي | مجلد المكتبات 32 بت | مجلد مكتبات 64 بت |
---|---|---|
تفعيل جهاز الإنذار | lib/armeabi-v7a
|
lib/arm64-v8a
|
x86 | lib/x86
|
lib/x86_64
|
يُرجى العِلم أنّه قد تتوفّر أو لا تتوفّر مجموعة المكتبات نفسها في كل مجلد، وذلك حسب تطبيقك. والهدف من ذلك هو ضمان تشغيل تطبيقك بشكل صحيح في بيئة 64 بت فقط.
في الحالة العادية، تحتوي حزمة APK أو حزمة تطبيق تم إنشاؤها لكل من بنية 32 بت وبنية 64 بت على مجلدات لكل من واجهات التطبيق الثنائية (ABI)، ويحتوي كل مجلد على مجموعة مقابلة من المكتبات الأصلية. إذا لم يكن الإصدار 64 بت متاحًا، قد يظهر لك مجلد ABI للإصدار 32 بت ولكن لن يظهر مجلد للإصدار 64 بت.
البحث عن المكتبات المجمّعة من رموز برمجية أصلية باستخدام "أداة تحليل ملفات APK"
أداة تحليل حِزم APK هي أداة تتيح لك تقييم جوانب مختلفة من حِزمة APK تم إنشاؤها. استخدِمها للعثور على أي مكتبات أصلية، وتأكَّد من توفُّر مكتبات 64 بت.
- افتح استوديو Android، ثم افتح أي مشروع.
من القائمة، اختَر إنشاء > تحليل حزمة APK…
اختَر حزمة APK التي تريد تقييمها.
ابحث داخل المجلد lib الذي يستضيف ملفات .so، إن وُجدت. إذا لم يكن هناك أي أخطاء، يعني ذلك أنّ تطبيقك متوافق مع الأجهزة التي تعمل بنظام 64 بت، وليس عليك اتّخاذ أي إجراء آخر. إذا ظهر لك armeabi-v7a أو x86، هذا يعني أنّ لديك مكتبات 32 بت.
تحقَّق مما إذا كانت لديك ملفات .so مشابهة في المجلد arm64-v8a أو x86_64.
إذا لم يكن لديك أي مكتبات arm64-v8a أو x86_64، عليك تعديل عملية الإنشاء لبدء إنشاء هذه العناصر وتعبئتها في حزمة APK.
إذا كنت ترى بالفعل كلا المكتبتين مضمّنتَين في الحزمة، يمكنك الانتقال إلى قسم اختبار تطبيقك على أجهزة تعمل بإصدار 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" أو Gradle
تستخدم معظم مشاريع "استوديو Android" نظام Gradle الأساسي للإنشاء، لذا ينطبق هذا القسم على كلتا الحالتين. لتفعيل عمليات الإنشاء للرمز البرمجي الأصلي، أضِف arm64-v8a و/أو x86_64، حسب البِنى التي تريد توفيرها، إلى إعداد ndk.abiFilters في ملف build.gradle الخاص بتطبيقك:
Groovy
// 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، يمكنك إنشاء حِزم بتنسيقات ABI لنظام 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
. في أنظمة Unix، يتطابق long
مع حجم المؤشر، ولكن لا ينطبق ذلك على Windows. بدلاً من ذلك، استخدِم النوعَين 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
تواجه فئات Java التي تتضمّن حقول int
تحتوي على مؤشرات إلى عناصر C/C++ المشكلة نفسها. ابحث عن jint
في مصدر JNI وتأكَّد من التبديل إلى
long
في رمز Java وjlong
في رمز C++.
تكون تعريفات الدوال الضمنية أكثر خطورة بكثير بالنسبة إلى الرموز البرمجية ذات 64 بت. تفترض لغة C/C++ أنّ نوع الإرجاع لدالة تم تعريفها ضمنيًا (أي دالة لم يرَ المترجم تعريفًا لها) هو 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*)
.
إذا كنت بحاجة إلى تجميع رموز برمجية مختلفة بشكل مشروط لإصدار 32 بت عن إصدار 64 بت، يمكنك استخدام #if defined(__LP64__)
للاختلافات العامة بين الإصدارين 32 و64 بت، أو __arm__
و__aarch64__
(arm64) و__i386__
(x86) و__x86_64__
للبِنى المحدّدة التي يتوافق معها نظام التشغيل Android.
عدِّل سلاسل التنسيق للدوال المشابهة printf
أو scanf
، لأنّ محدّدات التنسيق التقليدية لا تتيح لك تحديد أنواع 64 بت بطريقة صحيحة لكل من الأجهزة التي تعمل بالإصدار 32 بت و64 بت. تعمل وحدات الماكرو PRI
وSCN
في <inttypes.h>
على حلّ هذه المشكلة، PRIxPTR
وSCNxPTR
لكتابة وقراءة مؤشرات الست عشرية، وPRId64
وSCNd64
لكتابة وقراءة قيم 64 بت بشكل قابل للنقل.
عند إجراء عملية الإزاحة، قد تحتاج إلى استخدام 1ULL
للحصول على قيمة ثابتة بنظام 64 بت لإزاحتها
بدلاً من استخدام 1
، التي تبلغ 32 بت فقط.
تجنُّب زيادة الحجم باستخدام "حزمة تطبيقات Android"
يمكن أن تؤدي إضافة إمكانية استخدام بنية 64 بت إلى زيادة حجم حزمة APK. ننصحك بشدة بالاستفادة من ميزة حِزمة تطبيق Android للحدّ من تأثير الحجم الناتج عن تضمين الرموز البرمجية الأصلية المتوافقة مع كل من بنية 32 بت و64 بت في ملف APK نفسه.
مطوّرو الألعاب
تتوافق محرّكات البحث الثلاثة الأكثر استخدامًا مع الإصدار 64 بت:
- Unreal منذ 2015
- Cocos2d منذ 2015
- Unity منذ 2018
مطوّرو Unity
الترقية إلى إصدارات متوافقة
توفّر Unity إصدارات 2018.2 و2017.4.16 المتوافقة مع نظام 64 بت.
إذا كنت تستخدم إصدارًا من Unity لا يتوافق مع نظام 64 بت، حدِّد الإصدار الذي تريد الترقية إليه واتّبِع الأدلة التي توفّرها Unity لنقل بيئتك، مع التأكّد من ترقية تطبيقك إلى إصدار يمكنه إنشاء مكتبات 64 بت. تنصح Unity بالترقية إلى أحدث إصدار من LTS للمحرّر للاستفادة من أحدث الميزات والتحديثات.
في ما يلي جدول يوضّح إصدارات Unity المختلفة والإجراءات التي يجب اتّخاذها:
إصدار Unity | هل يتوافق الإصدار مع 64 بت؟ | الإجراء المقترَح |
---|---|---|
2020.x |
✔️ |
تأكَّد من أنّ إعدادات الإصدار تنتج مكتبات 64 بت. |
2019.x |
✔️ |
تأكَّد من أنّ إعدادات الإصدار تنتج مكتبات 64 بت. |
2018.4 (إصدار الدعم الطويل الأمد) |
✔️ |
تأكَّد من أنّ إعدادات الإصدار تنتج مكتبات 64 بت. |
2018.3 |
✔️ |
تأكَّد من أنّ إعدادات الإصدار تنتج مكتبات 64 بت. |
2018.2 |
✔️ |
تأكَّد من أنّ إعدادات الإصدار تنتج مكتبات 64 بت. |
2018.1 |
➖ |
يتضمّن دعمًا تجريبيًا للإصدار 64 بت. |
2017.4 (LTS) |
✔️ |
متاح اعتبارًا من 16/4/2017. تأكَّد من أنّ إعدادات الإصدار تنتج مكتبات 64 بت. |
2017.3 |
✖️ |
يجب الترقية إلى إصدار متوافق مع 64 بت. |
2017.2 |
✖️ |
يجب الترقية إلى إصدار متوافق مع 64 بت. |
2017.1 |
✖️ |
يجب الترقية إلى إصدار متوافق مع 64 بت. |
5.6 أو أقل |
✖️ |
يجب الترقية إلى إصدار متوافق مع 64 بت. |
تغيير إعدادات الإنشاء لإخراج مكتبات 64 بت
إذا كنت تستخدم إصدارًا من Unity يتوافق مع مكتبات Android 64 بت، يمكنك إنشاء إصدار 64 بت من تطبيقك عن طريق تعديل إعدادات الإصدار. استخدِم IL2CPP backend كبرنامج Scripting Backend. لإعداد مشروع Unity لإنشاء بنية 64 بت، اتّبِع الخطوات التالية:
- انتقِل إلى إعدادات الإنشاء وتأكَّد من أنّك تُنشئ تطبيقًا لنظام التشغيل Android من خلال التأكّد من ظهور رمز Unity بجانب Android ضمن النظام الأساسي. 1. إذا لم يكن رمز Unity بجانب منصة Android، اختَر Android وانقر على تبديل المنصة.
انقر على إعدادات المشغّل.
انتقِل إلى لوحة إعدادات اللاعب > إعدادات Android > إعدادات أخرى > الإعدادات.
اضبط Scripting Backend على IL2CPP.
ضَع علامة في مربّع الاختيار بنية الاستهداف > ARM64.
يمكنك إنشاء التطبيق كالمعتاد.
يُرجى العلم أنّ إنشاء إصدار ARM64 يتطلّب إنشاء جميع مواد العرض خصيصًا لهذه المنصة. اتّبِع إرشادات Unity لتقليل حجم حِزم APK، وفكِّر في الاستفادة من ميزة مجموعة حزمات تطبيق Android للمساعدة في الحدّ من هذه الزيادة في الحجم.
حِزم APK المتعددة والتوافق مع إصدار 64 بت
إذا كنت تستخدم دعم حِزم APK المتعددة على Google Play لنشر تطبيقك، يُرجى العِلم أنّه يتم تقييم الامتثال لمتطلبات إصدار 64 بت على مستوى الإصدار. ومع ذلك، لا ينطبق شرط توفُّر إصدار 64 بت على حِزم APK أو حِزم التطبيقات التي لا يتم توزيعها على الأجهزة التي تعمل بالإصدار 9 من نظام التشغيل Android (Pie) أو الإصدارات الأحدث.
إذا تم وضع علامة على إحدى حِزم APK بأنّها غير متوافقة، وكانت إصدارًا قديمًا
ولا يمكن جعلها متوافقة، يمكنك إضافة السمة
maxSdkVersion="27"
إلى العنصر uses-sdk
في ملف البيان الخاص بحزمة APK هذه. لا يتم تسليم حزمة 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 بت يحصلون على تجربة رائعة في تطبيقك.
الأجهزة التي تعمل ببنية 64 بت فقط
ننصحك، متى أمكن ذلك، باختبار تطبيقك في بيئة 64 بت فقط باستخدام أحد الخيارَين التاليَين:
هاتف Google Pixel مزوّد بصورة نظام 64 بت فقط
لتسهيل عملية تطوير التطبيقات واختبارها، وفّرنا صور نظام خاصة تتضمّن بيئة 64 بت فقط لبعض أجهزة Pixel. تم توفير صور نظام المصنع هذه التي تتوافق مع 64 بت فقط في الأصل بشكل متزامن مع صور نظام المصنع العادية لإصدارات Android 13 و14 التجريبية، ولكن يمكنك مواصلة استخدامها أثناء اختبار تطبيقك للتأكّد من توافقه مع إصدار 64 بت.
الحصول على صورة 64 بت فقط
على غرار صور نظام المصنع، يمكنك تنزيل صورة 64 بت فقط على جهازك باستخدام "أداة تنزيل Android" أو من خلال تنزيل صورة النظام على جهازك يدويًا، كما هو موضّح في الأقسام التالية.
تثبيت صورة النظام على جهازك باستخدام أداة Android Flash Tool
تتيح لك أداة Android Flash Tool تثبيت صورة نظام بأمان على جهاز Pixel المتوافق. تعمل أداة Android Flash Tool مع أي متصفّح ويب يتوافق مع WebUSB، مثل Chrome أو Edge 79 أو الإصدارات الأحدث.
يرشدك تطبيق Android Flash Tool خطوة بخطوة خلال عملية تنزيل البرامج على جهازك، ولست بحاجة إلى تثبيت أي أدوات، ولكن عليك فتح قفل جهازك وتفعيل خيار "تصحيح أخطاء USB" في "خيارات المطوّرين". للحصول على التعليمات الكاملة، يُرجى الاطّلاع على مستندات أداة Android Flash Tool.
وصِّل جهازك عبر USB، ثم انتقِل إلى "أداة الفلاش في Android" باستخدام أحد الروابط التالية، واتّبِع الإرشادات الظاهرة على الشاشة، وذلك حسب نوع صورة النظام التي تريد تثبيتها:
صور نظام 64 بت فقط (الإصدار التجريبي 5.2) من Android 14
اختَر الجهاز الذي تحاول إجراء عملية التحديث السريع له:
صور نظام الإصدار التجريبي 3.2 من Android 13 (الإصدار الثالث من منصة QPR) المتوافقة مع الأجهزة التي تعمل بنظام 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 |
صور نظام 64 بت فقط للإصدار التجريبي 3.2 من Android 13 (QPR3)
توفّر هذه الصور بيئة 64 بت فقط لاختبار توافق تطبيقات 64 بت. تتوفّر هذه الإعدادات التي تعمل بنظام 64 بت فقط للمطوّرين.
جهاز | رابط التنزيل | المجموع الاختباري SHA-256 |
---|---|---|
Pixel 4a (5G) | b4be40924f62c3c2b3ed20a9f7fa4303aa9c39649d778eb96f86c867fe3ae59a |
|
Pixel 5 | 6e5e027a4f64f9f786db9bb69d50d1a551c3f6aad893ae450e1f8279ea1b761a |
|
Pixel 6 | becb9b81a5bddad67a4ac32d30a50dcb372b9d083cb7c046e5180510e479a0b8 |
|
Pixel 6 Pro | b0ef544ed2312ac44dc827f24999281b147c11d76356c2d06b2c57a191c60480 |
الرجوع إلى إصدار علني
يمكنك استخدام "أداة تثبيت البرامج السريعة من Android" لتثبيت نسخة برامج الجهة المصنِّعة، أو الحصول على نسخة برامج الجهة المصنِّعة من صفحة نسخ برامج الجهة المصنِّعة لأجهزة Nexus وPixel ثم تثبيتها يدويًا على الجهاز.
Android Emulator
بدءًا من نظام التشغيل Android 12 (المستوى 31 لواجهة برمجة التطبيقات)، ستكون صور نظام Android Emulator بنظام 64 بت فقط. أنشئ جهاز Android افتراضيًا (AVD) باستخدام صورة نظام تتضمّن الإصدار 12 من نظام التشغيل Android (المستوى 31 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث للحصول على بيئة 64 بت فقط لإجراء اختبارات التطبيق.
خيارات الجهاز الأخرى
إذا لم يكن لديك أحد هذه الأجهزة أو لم تتمكّن من استخدام "محاكي Android"، يمكنك بدلاً من ذلك استخدام جهاز متوافق مع 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 التابعة لجهات خارجية والملحَقة بتطبيقك.
SoLoader
إذا كنت تستخدم حزمة تطوير البرامج (SDK) لتحميل الرموز البرمجية الأصلية SoLoader، يجب التحديث إلى الإصدار 0.10.4 أو إصدار أحدث. إذا كان تطبيقك يستخدم حِزم SDK تعتمد على SoLoader، احرص أيضًا على التحديث إلى أحدث إصدار ثابت من حِزم SDK المتأثرة.
يفترض الإصدار 0.9.0 والإصدارات الأقدم من SoLoader أنّ مكتبات النظام متوفّرة في
/vendor/lib:/system/lib
. لا يمكن ملاحظة هذا الخطأ في أجهزة مثل Pixel 7 التي يتوفّر فيها المسار، ولكن هذا الافتراض يتسبّب في حدوث أعطال في الأجهزة التي تتضمّن مكتبات النظام فقط في /vendor/lib64:/system/lib64
.
لمزيد من المعلومات حول حلّ هذه المشكلة والمشاكل الأخرى التي يسببها SoLoader، يُرجى الاطّلاع على الإجابة ذات الصلة في "مركز مساعدة Google".
OpenSSL
إذا كنت تستخدم مكتبة OpenSSL، عليك التحديث إلى الإصدار 1.1.1i من OpenSSL أو إصدار أحدث. إذا كان تطبيقك يستخدم حِزم SDK توفّر إمكانية الاتصال من خلال بروتوكول HTTPS، أو حِزم SDK أخرى تعتمد على OpenSSL، احرص على التحديث إلى أحدث إصدار من حزمة SDK التي تستخدم إصدارًا أحدث من OpenSSL. يُرجى التواصل مع موفِّر حزمة SDK إذا لم يكن هناك معرّف متاح.
تتيح ميزة ARMv8.3 PAC التحقّق من سلامة تدفق التحكّم بمساعدة الأجهزة من خلال مصادقة المؤشرات في وقت التشغيل. تستخدم الإصدارات القديمة من OpenSSL هذه الإمكانات بشكل غير صحيح، ما يتسبب في حدوث أعطال في وقت التشغيل في جميع الأجهزة التي تتضمّن معالِجات تستند إلى ARMv8.3a والإصدارات الأحدث.
لمزيد من المعلومات حول حلّ هذه المشكلة والمشاكل الأخرى التي يسببها OpenSSL، يُرجى الاطّلاع على الإجابة ذات الصلة في "مركز مساعدة Google".
BTI
تستخدم الإصدارات ARMv8.5 والإصدارات الأحدث تعليمات استهداف الفروع (BTI) للمساعدة في الحماية من هجمات JOP. يمكن أن تتسبّب الإصدارات القديمة من حِزم SDK التي تعمل على إخفاء الرموز البرمجية والتي تتفرّع إلى إزاحات عشوائية للمكتبات التي تم إنشاؤها باستخدام BTI في تعطُّل التطبيقات. بما أنّ التعليمات مشفّرة على شكل تلميحات، لا يمكن ملاحظة هذا الخطأ في الأجهزة التي لا تتوافق مع 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.