تنسيقات ضغط البنية المستهدفة في مجموعة حزمات تطبيق Android

الزخارف هي صور يمكن تطبيقها على سطح تصميم ثلاثي الأبعاد. زخارف كما تستخدمها العارضات ثنائية الأبعاد أيضًا لرسم عناصر مثل الصور المتحركة أو الخلفيات. تصف هذه الصفحة تنسيقات ضغط المظهر الشائعة المستخدمة في الألعاب وكيفية استهدافهم في مجموعات حزمات تطبيق Android. القراءة لمحة عن مجموعة حزمات تطبيق Android عرض المواد في Play قبل البدء الدليل.

خلفية

تدعم وحدات معالجة الرسومات عادةً مجموعة من تنسيقات ضغط البنية. حاسمة تنسيق ضغط البنية (أو إطار الشفافية والموافقة) هو تنسيق ملف تم تحسينه لوحدات معالجة الرسومات. فوحدة معالجة الرسومات تُحمّل زخارف وتعرضها بشكل أسرع وبذاكرة أقل، مقارنة بما إذا كانت صفيفًا من قيم RGBA في الذاكرة. يتم إجراء هذا الدعم في مستوى الأجهزة: تُضمِّن الشركة المصنّعة لوحدة معالجة الرسومات المكوّنات في البطاقات الرسومية. شريحة تقرأ التنسيقات المتوافقة وتفك ضغطها وتعرضها.

في ما يلي تنسيقات شائعة لضغط المظهر السطحي على أجهزة الجوّال الحديثة:

  • ASTC: تنسيق حديث تم تصميمه ليحل محل التنسيقات السابقة. أكثر مرونة من التنسيقات السابقة نظرًا لتوافقها مع أحجام كتل مختلفة. باستخدام هذا التنسيق طريقة جيدة لتحسين حجم لعبتك.
  • ETC2: متوافق مع جميع الأجهزة التي تتوافق مع OpenGL ES 3.0 والإصدارات الأحدث. ويشمل ذلك جميع أجهزة Android الجوّالة النشطة تقريبًا.

تتوافق هذه التنسيقات مع النسب المئوية التقريبية التالية في نظام التشغيل Android. الأجهزة:

تنسيق ضغط الطبقة النسبة المئوية لأجهزة Google Play التي توفّر خدمة الدعم
خدمة ASTC > 80%
نظام تحصيل رسوم العبور إلكترونيًا > 95%

وحدات معالجة الرسومات على أجهزة الكمبيوتر المكتبية التي تشغّل تطبيق "ألعاب Google Play على الكمبيوتر" متوافقة أيضًا مع التنسيق التالي:

  • DDS أو S3TC: يُطلق عليها أحيانًا اسم BCn أو DXTC أو DXTn.

تشمل تنسيقات ضغط البنية القديمة التي لم تعُد يُنصح بها ما يلي:

  • ETC1: متاح على معظم الأجهزة. لا يدعم هذا التنسيق الشفافية، ولكن يمكن للألعاب استخدام ملف زخرفة ثانٍ للمكون ألفا.
  • PVRTC: شائع في ألعاب iOS، ويتوفّر أيضًا على بعض أجهزة Android.

لا يُسمح باستخدام ETC1 إلا في الألعاب التي تتوافق مع الإصدارات القديمة جدًا. أجهزة أو بعض أجهزة Android TV التي لا تتوافق مع OpenGL ES 3.0 أعلى.

تنسيق تلقائي

ومع العديد من التنسيقات المتاحة (مع مستويات متفاوتة من دعم الجهاز)، يمكنك قد لا يتمكنون من معرفة التنسيقات التي يجب استخدامها عند إنشاء زخارف لعبتك. نتيجة لذلك، أُنشئت مكتبة مات بلوت ليب في فإن تنسيق حِزمة التطبيق يتيح لك اختيار ضغط تلقائي للزخرفة لكل حزمة مواد عرض إذا كان الجهاز لا يتوافق مع الأجهزة الأخرى المحددة التنسيقات، يتم تثبيت مواد العرض التي تستخدم هذا التنسيق الافتراضي.

ننصحك باستخدام ETC2 في حال عدم استهداف معدّات قديمة جدًا. لتنسيق افتراضي. يجب استخدام تنسيقات ETC2 التي تضمن متوافق مع OpenGL ES 3.0. تتوفّر هذه التنسيقات أيضًا في VulkanGraphic API.

يحدد تنسيق ASTC مجموعة متنوعة من أحجام كتل الضغط، والتي تتيح يمكنك بشكل انتقائي استبدال جودة الصورة المخفّضة للحصول على ضغط أكبر. بناء على طبيعة المادة الفنية المصدر، للحصول على زخرفة معينة اختيار حجم كتلة أصغر أو أكبر للحفاظ على جودة مرئية مقبولة.

إذا كانت لعبتك متوافقة مع "ألعاب Google Play على الكمبيوتر" وتستخدم Vulkan، عليك زخارف S3TC. تعتمد تنسيقات S3TC على كل وحدات معالجة الرسومات لسطح المكتب.

إنشاء حِزمة تطبيق

يستخدم Google Play مجموعات حزمات تطبيق Android لإنشاء وعرض حِزم APK محسّنة تهيئة الجهاز لكل مستخدم، بحيث يمكن للمستخدمين تنزيل الرمز والموارد فقط التي تحتاجها لتشغيل لعبتك. تتضمن حِزم APK المحسَّنة هذه مجموعة واحدة من البنية. مواد العرض هذه بتنسيق الضغط الأمثل للجهاز.

إذا لم تكن لعبتك من نوع Unity، يمكنك استخدام Gradle لإنشاء حزمة تطبيق. قد يحتاج المستخدمون المتقدمون إلى استخدام bundletool.

إذا كانت لعبتك متوافقة مع نظام Unity، ستتم إتاحة حِزم التطبيقات باستخدام ميزة "عرض المواد في Play". متوفّرة في Unity 2021.3 والإصدارات الأحدث. لمزيد من المعلومات، يُرجى الاطّلاع على مستندات Unity يمكنك استخدام مكوّن Unity الإضافي لإنشاء حِزمة تطبيق تحتوي على من Unity.

استخدام Gradle

  1. تحديث إصدار المكوّن الإضافي لنظام Gradle المتوافق مع Android في مخطط مشروعك من build.gradle إلى الإصدار 4.1 أو الإصدارات الأحدث (على سبيل المثال، com.android.tools.build:gradle:4.1.0).

  2. حدد مجموعة أنواع الأجهزة التي تريد استهدافها للعبتك تنسيقات ضغط القوام التي تتوافق معها (لمزيد من المعلومات حول يمكنك الاطّلاع على الخلفية).

  3. يمكنك إنشاء نُسخ من مواد العرض لكل تنسيق من تنسيقات ضغط البنية من الخطوة السابقة. يمكن أن يتضمن ذلك إنشاء أوراق رموز متحركة باستخدام برنامج معجب TexturePacker أو تشغيل نص برمجي يحوِّل مواد العرض الأولية إلى أصول بتنسيق معين (على سبيل المثال، astc-encoder).

  4. إنشاء حِزم مواد عرض (راجِع إنشاء لغة بلغة C++ أو Java)، التي تحتوي على مواد عرض لعبتك ويتم استخدامها بواسطة ميزة "عرض المواد في Play". بالنسبة يمكنك على سبيل المثال إنشاء حزمة مواد عرض واحدة لكل مستوى أو حِزم مواد عرض الأجزاء المختلفة من لعبتك.

  5. أضِف أدلة لكل تنسيق ضغط مواد العرض داخل حِزم مواد العرض. التي تريد دعمها. إضافة اللاحقات المتوافقة إلى أسماء دليل الزخرفة التي تتوافق مع ضغط الهيئة التنسيق المستخدم للملفات الموجودة.

    يمكنك إنشاء دليل بدون لاحقة في اسمه (على سبيل المثال، common/src/main/assets/textures/). في هذا الدليل، ضع الخاص بتنسيق مواد عرض الزخرفة. يجب أن يكون هذا التنسيق التلقائي متوافقًا مع معظم الأجهزة (على سبيل المثال، ETC1 أو ETC2). إذا لم يكن الجهاز متوافقًا مع غير ذلك من التنسيقات المحددة (على سبيل المثال، PVRTC وASTC في الجدول أدناه). يثبّت متجر Google Play هذا الدليل بدلاً من ذلك.

    الدليل السابق الدليل بعد
    common حزمة مواد العرض:
    shared/build.gradle
    common/src/main/assets/textures/...
    common حزمة مواد العرض:
    shared/build.gradle
    common/src/main/assets/textures/...
    Shared/src/main/assets/textures#tcf_astc/...
    شائعة/src/main/assets/textures#tcf_pvrtc/...
    level1 حزمة مواد العرض:
    level1/build.gradle
    level1/src/main/assets/textures/...
    level1 حزمة مواد العرض:
    level1/build.gradle
    level1/src/main/assets/textures/...
    level1/src/main/assets/textures#tcf_astc/...
    level1/src/main/assets/textures#tcf_pvrtc/...
    level2 حزمة مواد العرض:
    level2/build.gradle
    level2/src/main/assets/textures/...
    level2 حزمة مواد العرض:
    level2/build.gradle
    level2/src/main/assets/textures/...
    level2/src/main/assets/textures#tcf_astc/...
    level2/src/main/assets/textures#tcf_pvrtc/...
  6. عدِّل ملف build.gradle في تطبيقك للسماح بتقسيم ملفات حِزم مواد العرض لكل زخارف.

    // In the app build.gradle file:
    android {
        ...
        bundle {
            texture {
                enableSplit true
            }
        }
    }
    
  7. في "استوديو Android"، اختَر إنشاء > إنشاء حِزمة موقَّعة أو حِزمة APK تشغيل إعداد مهمة Gradle من سطر الأوامر إلى إنشاء حزمتك.

استخدام مكوّن Unity الإضافي في Google Play

الحصول على مكوّن Unity الإضافي (أو الحزمة) لعرض المواد في Play لإنشاء حِزمة تطبيق تحتوي على حِزم مواد عرض مستهدَفة للزخارف

إعداد مواد العرض

لإعداد مواد عرض المظهر لإنشاء حِزمة تطبيق، يُرجى اتّباع الخطوات التالية:

  1. ادمِج المشهد وأصولك في وحدات متعددة AssetBundles

  2. حدد مجموعة أنواع الأجهزة التي تريد استهدافها للعبتك تنسيقات ضغط القوام التي تتوافق معها (لمزيد من المعلومات حول يمكنك الاطّلاع على الخلفية).

  3. عدِّل النص البرمجي للعبتك لإنشاء عدة مجموعات AssetBundles. مرة لكل تنسيق زخارف تريد اعتماده. يمكنك الاطّلاع على المثال التالي للنص البرمجي:

    using Google.Android.AppBundle.Editor;
    using UnityEditor;
    
    public class MyBundleBuilder
    {
       [MenuItem("Assets/Build AssetBundles TCF variants")]
       public static void BuildAssetBundles()
       {
           // Describe the AssetBundles to be built:
           var assetBundlesToBuild = new []
           {
               new AssetBundleBuild
               {
                   assetBundleName = "level1-textures",
                   assetNames = new[] {"level1/character-textures", "level1/background-textures"}
               },
               new AssetBundleBuild
               {
                   assetBundleName = "level2-textures",
                   assetNames = new[] {"level2/character-textures", "level2/background-textures"}
               }
           };
    
           // Describe where to output the asset bundles and in which formats:
           var outputPath = "Assets/AssetBundles";
           var defaultTextureFormat = MobileTextureSubtarget.ETC2;
           var additionalTextureFormats = new[] { MobileTextureSubtarget.ASTC, MobileTextureSubtarget.PVRTC }
           var allowClearDirectory = true;
    
           // Generate asset bundles:
           AssetBundleBuilder.BuildAssetBundles(
               outputPath,
               assetBundlesToBuild,
               BuildAssetBundleOptions.UncompressedAssetBundle,
               defaultTextureFormat,
               additionalTextureFormats,
               allowClearDirectory);
    
           // While in this example we're using the UI to configure the
           // AssetBundles, you can use the value returned by BuildAssetBundles
           // to configure the asset packs, if you want to build the bundle
           // entirely using the scripting API.
       }
    }
    
  4. التحقق من أن كل مادة عرض للزخرفة هي ناتج عن دليل لاحقة في اسمها (مثلاً، #tcf_astc).

    التحقق من أن الدليل الذي لا يحتوي على لاحقة في اسمه هو إخراج (على سبيل المثال، Assets/AssetBundles/). يحتوي هذا الدليل على التنسيق الافتراضي لـ مواد العرض الزخرفية. يجب أن يكون هذا التنسيق الافتراضي متوافقًا مع معظم الأجهزة ( مثال، ETC2). إذا لم يكن الجهاز يتيح استخدام التنسيقات المحددة الأخرى (على سبيل المثال، ASTC في الرمز من الخطوة السابقة)، ثم ويثبّت Store هذا الدليل بدلاً من ذلك.

    Assets/AssetBundles.meta
    Assets/AssetBundles/AssetBundles
    Assets/AssetBundles/AssetBundles.manifest
    Assets/AssetBundles/AssetBundles.manifest.meta
    Assets/AssetBundles/AssetBundles.meta
    Assets/AssetBundles/samplescene
    Assets/AssetBundles/samplescene.manifest
    Assets/AssetBundles/samplescene.manifest.meta
    Assets/AssetBundles/samplescene.meta
    Assets/AssetBundles/texturesbundle
    Assets/AssetBundles/texturesbundle.manifest
    Assets/AssetBundles/texturesbundle.manifest.meta
    Assets/AssetBundles/texturesbundle.meta
    Assets/AssetBundles#tcf_astc.meta
    Assets/AssetBundles#tcf_astc/AssetBundles
    Assets/AssetBundles#tcf_astc/AssetBundles.manifest
    Assets/AssetBundles#tcf_astc/AssetBundles.manifest.meta
    Assets/AssetBundles#tcf_astc/AssetBundles.meta
    Assets/AssetBundles#tcf_astc/samplescene
    Assets/AssetBundles#tcf_astc/samplescene.manifest
    Assets/AssetBundles#tcf_astc/samplescene.manifest.meta
    Assets/AssetBundles#tcf_astc/samplescene.meta
    Assets/AssetBundles#tcf_astc/texturesbundle
    Assets/AssetBundles#tcf_astc/texturesbundle.manifest
    Assets/AssetBundles#tcf_astc/texturesbundle.manifest.meta
    Assets/AssetBundles#tcf_astc/texturesbundle.meta
    
  5. حدد Google > Android > عرض المواد:

  6. انقر على إضافة مجلد لإضافة المجلد الذي يحتوي على مادة العرض التلقائية. حِزم. تم تثبيت هذه الحِزم على أجهزة لا تتوافق مع الأجهزة الأخرى. التنسيقات التي تحددها.

    تأكَّد من ضبط وضع العرض لـ AssetBundle.

    التنسيق التلقائي لعرض Unity AssetBundle

  7. انقر على إضافة مجلد لإضافة مجلد يحتوي على AssetBundles تم إنشاؤه خصيصًا. بتنسيق آخر (على سبيل المثال، ASTC). كرر عند الحاجة.

    تأكَّد من ضبط وضع العرض لكل AssetBundle.

    تنسيق ASTC لإرسال Unity AssetBundle

إنشاء

حدد Google > أنشِئ "مجموعة حزمات تطبيق Android" لإطلاق إصدار Unity من في اللعبة. علاوةً على ذلك، تُجمِّع AssetBundles في حِزم مواد عرض متعددة، حيث تضم كل واحدة منها يتم تحويل اسم AssetBundle إلى حزمة مواد عرض واحدة.

(متقدّم) استخدام أداة packagetool

لمزيد من المعلومات عن bundletool، يُرجى الاطّلاع على إنشاء حزمة تطبيق باستخدام أداة packagetool

لإنشاء حِزمة التطبيق، عليك اتّباع الخطوات التالية:

  1. تنزيل bundletool من مستودع جيت هب الخاص به.

  2. حدد مجموعة أنواع الأجهزة التي تريد استهدافها للعبتك تنسيقات ضغط القوام التي تتوافق معها (لمزيد من المعلومات حول يمكنك الاطّلاع على الخلفية).

  3. يمكنك إنشاء نُسخ من مواد العرض لكل تنسيق من تنسيقات ضغط البنية من الخطوة السابقة. يمكن أن يتضمن ذلك إنشاء أوراق رموز متحركة باستخدام برنامج معجب TexturePacker أو تشغيل نص برمجي يحوِّل مواد العرض الأولية إلى أصول بتنسيق معين (على سبيل المثال، astc-encoder).

  4. إنشاء حِزم مواد عرض (راجِع إنشاء لغة بلغة C++ أو Java)، التي تحتوي على مواد عرض لعبتك ويتم استخدامها بواسطة ميزة "عرض المواد في Play". بالنسبة يمكنك على سبيل المثال إنشاء حزمة مواد عرض واحدة لكل مستوى أو حِزم مواد عرض الأجزاء المختلفة من لعبتك.

  5. في حِزم مواد العرض المختلفة، أضِف لاحقات متوافقة. مع أسماء دليل الزخرفة التي تتوافق مع ضغط الهيئة التنسيق المستخدم للملفات الموجودة.

    يمكنك إنشاء دليل بدون لاحقة في اسمه (على سبيل المثال، common/src/main/assets/textures/). في هذا الدليل، ضع الخاص بتنسيق مواد عرض الزخرفة. يجب أن يكون هذا التنسيق التلقائي متوافقًا مع معظم الأجهزة (على سبيل المثال، ETC1 أو ETC2). إذا لم يكن الجهاز متوافقًا مع غير ذلك من التنسيقات المحددة (على سبيل المثال، PVRTC وASTC في الجدول أدناه). يثبّت متجر Google Play هذا الدليل بدلاً من ذلك.

    الدليل السابق الدليل بعد
    common حزمة مواد العرض:
    shared/build.gradle
    common/src/main/assets/textures/...
    common حزمة مواد العرض:
    shared/build.gradle
    common/src/main/assets/textures/...
    Shared/src/main/assets/textures#tcf_astc/...
    شائعة/src/main/assets/textures#tcf_pvrtc/...
    level1 حزمة مواد العرض:
    level1/build.gradle
    level1/src/main/assets/textures/...
    level1 حزمة مواد العرض:
    level1/build.gradle
    level1/src/main/assets/textures/...
    level1/src/main/assets/textures#tcf_astc/...
    level1/src/main/assets/textures#tcf_pvrtc/...
    level2 حزمة مواد العرض:
    level2/build.gradle
    level2/src/main/assets/textures/...
    level2 حزمة مواد العرض:
    level2/build.gradle
    level2/src/main/assets/textures/...
    level2/src/main/assets/textures#tcf_astc/...
    level2/src/main/assets/textures#tcf_pvrtc/...
  6. إضافة سمة إطار الشفافية والموافقة إلى ملف البيانات الوصفية لحِزمة التطبيق (BundleConfig.json). استخدام TEXTURE_COMPRESSION_FORMAT لنطاق value الحقل:

    {
      ...
      "optimizations": {
        "splitsConfig": {
          "splitDimension": [
          ...
          {
             "value": "TEXTURE_COMPRESSION_FORMAT",
             "negate": false,
             "suffixStripping": {
               "enabled": true,
               "defaultSuffix": ""
              }
          }],
        }
      }
    }
    

    اضبط suffixStripping.enabled على true لإزالة اللاحقة (على سبيل المثال، #tcf_astc) من أسماء الأدلة عند إنشاء حِزم مواد العرض. هذا النمط لتمكين لعبتك من قراءة الملفات من اسم دليل معروف (مثل level1/assets/textures). يمكن لبعض محركات الألعاب اكتشاف شكل حتى لا تهتم لعبتك بتنسيق مواد عرض الزخرفة التي التي تم تثبيتها معه.

    تحدّد الدالة suffixStripping.defaultSuffix لاحقة الدليل التلقائي عند تُنشئ bundletool حزمة APK مستقلة للأجهزة التي تعمل بنظام التشغيل Android 5.0 (واجهة برمجة التطبيقات). المستوى 21) وأقل. في جدول الأمثلة السابق، كان الإصدار الافتراضي من تثبيت مواد عرض الزخرفة على هذه الأجهزة؛ هذا هو المقصود السلوك في معظم الحالات.

  7. إنشاء حِزمة التطبيق:

    bundletool build-bundle --config=BUILD_CONFIG.json \
      --modules=level1.zip,level2.zip,common.zip,base.zip --output=MY_BUNDLE.aab
    

التحقّق من محتوى حِزمة التطبيق

إذا لم تكن قد فعلت ذلك بالفعل، تنزيل bundletool من مستودع جيت هب.

تحقَّق من محتوى حِزمة تطبيق الناتج من خلال إنشاء حِزم APK منها فحصها:

bundletool build-apks --output=APKS.apks --bundle=MY_BUNDLE.aab
zipinfo APKS.apks

يجب أن تكون النتيجة مشابهة لما يلي:

toc.pb
splits/base-master.apk
splits/base-armeabi_v7a.apk
splits/…
asset-slices/level1-astc.apk
asset-slices/level1-other_tcf.apk
asset-slices/level1-pvrtc.apk

تشير هذه الأسماء إلى تطبيق استهداف إطار الشفافية والموافقة بشكلٍ سليم. إذا قمت باستخراج محتوى حزمة APK للمستوى (مثل asset-slices/level1-astc.apk)، التحقق من وجود دليل واحد فقط باسم textures.

اختبار حِزمة التطبيق

عليك توصيل جهاز وتثبيت حِزم مواد العرض المناسبة:

bundletool install-apks --apks=APKS.apks

لا يثبِّت هذا الأمر سوى حِزم مواد العرض التي تستوفي مواصفات الجهاز. وتشمل هذه المواصفات واجهة التطبيق الثنائية (ABI) وكثافة الشاشة واللغة بالإضافة إلى تنسيق ضغط البنية المطبق. تحاكي هذه العملية ما يقوم به "متجر Google Play" للعبتك المنشورة

للتحقّق من تثبيت حِزم مواد العرض الصحيحة، نفِّذ أحد الإجراءات التالية:

  • استخدم الأمر bundletool extract-apks لإخراج ملفات apk التي تم تثبيتها من أجله جهازك إلى دليل ثم افحص هذا الدليل.

    1. استخراج مواصفات جهازك:

      bundletool get-device-spec --output=MY_DEVICE_SPEC.json
      
    2. تشغيل "bundletool extract-apks" مع مواصفات الجهاز هذه:

      bundletool extract-apks --apks=APKS.apks --device-spec=MY_DEVICE_SPEC.json \
          --output-dir out
      
    3. أدرِج الملفات في دليل out وتأكَّد من أنّ حِزم مواد العرض المناسبة تثبيت البرامج. تكون أسماء حِزم مواد العرض لاحقة باسم تنسيق الهيئة (مع مثل level1-astc.apk).

  • أضِف عبارات سجلّ في لعبتك تُخرج تنسيق الهيئة عند التحميل. زخرفة.

  • إنشاء مجموعة اختبارية من الزخارف (على سبيل المثال، استبدال زخرفة لون مشرق واحد لتنسيق معين). شغِّل اللعبة وتأكَّد من أنّها حاليًا.

إذا كان تطبيقك يحتوي على on-demand أو fast-follow حِزم مواد عرض، استخدِم حل اختبار محلي لتسليم مواد العرض.

اللاحقات المتوافقة لأسماء أدلة الزخرفة

يتعرّف Google Play على اللاحقات التالية المستخدمة في أسماء أدلة الزخرفة:

  • #tcf_astc لضغط القوام التكيّفي القابل للتوسّع (ASTC)
  • #tcf_atc لضغط بنية ATI (ATC)
  • #tcf_dxt1 لضغط بنية S3 DXT1 (DXT1)
  • #tcf_latc لضغط بنية Luminance-Alpha (LATC)
  • #tcf_paletted لضغط الهيئة العامة بلوحة الألوان
  • #tcf_pvrtc لضغط بنية PowerVR (PVRTC)
  • #tcf_etc1 لضغط بنية إريكسون (ETC1)
  • #tcf_etc2 لضغط تركيبة الزخارف 2 من إريكسون (ETC2)
  • #tcf_s3tc لضغط بنية S3 (S3TC)
  • #tcf_3dc لضغط بنية ATI 3Dc (ثلاثي الأبعاد)

قواعد العرض في Google Play

يفحص Google Play سلاسل إضافات OpenGL التي يستخدمها الجهاز إصدار OpenGL الذي يتوافق مع الجهاز. يستخدم Google Play هذه المعلومات لتنفيذ ما يلي: تحديد تنسيق الزخرفة الصحيح لإرساله إلى الجهاز من نظام التشغيل Android مجموعة حزمات التطبيق.

يوفّر Google Play التنسيق الأول بالترتيب التالي: الذي يتوافق مع الجهاز.

إذا لم يكن الجهاز متوافقًا مع أي من تنسيقات الزخرفة في مجموعة حزمات التطبيق، يوفّر Google Play تنسيقات الزخرفة التنسيق التلقائي. (ما لم تكن تستهدف مكونات أجهزة معينة، يفضَّل استخدام ETC1 أو ETC2) خيارات التنسيق الافتراضي). للحصول على معلومات حول كيفية تجميع الأصول في التنسيق الافتراضي، راجع استخدام أداة packagetool أو استخدام مكوّن Unity الإضافي في Google Play

في حال عدم تجميع مواد العرض بتنسيق تلقائي، يصنّف Google Play التطبيق. للإشارة إلى أنّه غير متوفّر للجهاز. في هذه الحالة، لا يمكن للمستخدمين تنزيل التطبيق.

التنسيق (معيّن في tcf_xxxx) يتوفّر هذا الخيار على الأجهزة التي تتضمّن OpenGL. سلسلة الإضافة
Astc GL_KHR_texture_compression_astc_ldr
شركة pvrtc GL_IMG_texture_compression_pvrtc
حملة s3tc GL_EXT_texture_compression_s3tc
ديك تي 1 GL_EXT_texture_compression_dxt1
لاك GL_EXT_texture_compression_latc
إحالة ناجحة إضافية GL_AMD_compressed_ATC_texture
تنسيق 3dc GL_AMD_compressed_3DC_texture
وما إلى ذلك2 غير منطبق. يجب على الجهاز أن تدعم OpenGL ES الإصدار 3.0 أو لاحقًا.
وما إلى ذلك1 GL_OES_compressed_ETC1_RGB8_texture
مطلية بالألوان GL_OES_compressed_paletted_texture