ملفات APK لتراكيب GL

الإعلانات

إنشاء عدة ملفات APK لتراكيب مختلفة من GL

 

 

 

ملفات APK لتراكيب GL

عندما تطور تطبيق الأندرويد للإستفادة من ملفات APK المتعددة على قوقل بلي، من المهم إعتماد بعض الممارسات الجيدة منذ البدايه..

ومنع حدوث المزيد من وجع الرأس الغير ضروري أثناء عملية التطوير. يوضح لك هذا الدرس كيفية إنشاء ملفات APK متعددة لتطبيقك..

حيث يدعم كل منها مجموعة فرعية مختلفة من صيغ تراكيب OpenGL.

ستحصل أيضاً على بعض الأدوات اللازمة للحفاظ على الكود الأساسي لملفات APK المتعددة سليماً قدر الإمكان.

 

 

 

أكد أنك تحتاج إلى ملفات APK متعددة


عند محاولة إنشاء تطبيق يعمل عبرأحجام متعددة من أجهزة الأندرويد، ممن الطبيعي أنك تريد أن يظهر تطبيقك على أفضل نحو في كل جهاز على حدة..

بصرف النظر عن حقيقة أنه ليست جميع الأجهزة تدعم نفس مجموعة تراكيب GL.

قد يبدو الأمر في البدايه كما لو أن دعم ملفات APK المتعدده هو الحل الأفضل، ولكن الحال ليس هكذا غالباً.

يحتوي قسم إستخدام ملف APK واحد بدلاً من ذلك، في دليل مطوّري ملفات APK المتعدده على بعض المعلومات المفيدة حول..

كيفية تحقيق ذلك بإستخدام ملف APK واحد، بما في ذلك كيفية إكتشاف صيغ التراكيب المدعومه أثناء التشغيل.

بناءً على حالتك، قد يكون من الأسهل حزم كافة الصيغ مع تطبيقك، وببساطة إختيار أي واحد منها لإستخدامه أثناء التشغيل.

إذا نجحت في ذلك، فإن حصر تطبيقك على ملف APK واحد له العديد من المزايا، بما في ذلك:

  • يكون النشر والإختبار أسهل.
  • لا يوجد سوى كود أساسي واحد للإحتفاظ به.
  • يمكن للتطبيق التكيف مع تغييرات تكوين الجهاز.
  • إستعادة التطبيق تعمل عبر الأجهزة فقط.
  • لن يكون هناك داعي للقلق بشأن تفضيل المتجر، أو سلوك “الترقيات” من ملف APK إلى الملف الأحدث..

أو تحديد أي ملف APK يتناسب مع فئة الأجهزة.

يفترض الجزء المتبقي من هذا الدرس أنك بحثت عن الموضوع، وأستوعبت جيداً المواد في المصادر المرتبطه..

وحددت أن ملفات APK المتعددة هي المسار الصحيح لتطبيقك.

 

 

 

إنشاء مخطط لمتطلباتك


يوفر دليل مطوري برامج الأندرويد مرجعاً مفيداً لبعض التراكيب المدعومة الشائعة على صفحة دعم تراكيب جي إل -gl-texture.

تحتوي هذه الصفحة أيضاً على بعض التلميحات حول أي الهواتف (أو عائلات الهواتف) التي تدعم صيغ تراكيب معينة.

لاحظ أنه من المفيد عموماً أن يدعم أحد ملفاتك APK الـ ETC1 ، كما أن صيغة التركيب هذه مدعومة..

من جميع الأجهزة التي تعمل بنظام الأندرويد والتي تدعم مواصفات OpenGL ES 2.0.

نظراً لأن معظم الأجهزة التي تعمل بنظام الأندرويد تدعم أكثر من صيغة تركيب واحدة، فستحتاج إلى إنشاء طلب تفضيل.

قم بإنشاء مخطط يتضمن جميع الصيغ التي سيدعمها تطبيقك. ستكون الخلية في أقصى اليسار هي الأقل أولوية..

(من المحتمل أن تكون ETC1 ، وهي قوية حقاً من حيث الأداء والتوافق). ثم الألوان في المخطط بحيث تمثل كل خلية ملف APK مختلف.

لا يؤدي التلوين في المخطط إلى ماهو أكثر من جعل هذا الدليل أحادي اللون – كما أنه يحتوي أيضاً على طريقة لجعل التواصل داخل الفريق أسهل..

يمكنك الآن ببساطة الإشارة إلى كل ملف APK هكذا، الملف “الأزرق” أو “الأخضر” أو “الأحمر”، بدلاً من الإشارة إليه هكذا “الملف الذي يدعم يدعم صيغ تراكيب ETC1″، إلخ.

 

 

 

ملفات APK لتراكيب GL

 

ضع كل الأكواد والمصادر الشائعة في مكتبة المشروع


سواء كنت تقوم بتعديل تطبيق أندرويد موجود أو تبدأ بإنشاء تطبيق من الصفر، فهذا هو أول شيء يجب أن تفعله في الكود الأساسي، والأكثر أهمية.

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

مما يحسن وقت التطوير ويقلل من إحتمالية حدوث الأخطاء التي كان من الممكن تجنبها بسهولة.

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

إذا كنت تقوم بتحويل تطبيق موجود ليقوم بدعم ملفات APK المتعددة، فقم بتنظيف كودك الأساسي لكلٍ من..

ملف سلسلة ترجمة، قائمة القيم، وألوان الثيمات، رموز القائمة، والمخطط و التي لن تتغير عبر ملفات APK، وقم بوضعها كلها في مكتبة المشروع.

الكود الذي لن يتغير كثيراً يجب أن يذهب أيضاً إلى مكتبة المشروع.

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

من ناحية أخرى، إذا كنت تنشئ التطبيق من الصفر، فحاول قدر الإمكان كتابة الكود في مشروع المكتبة أولاً..

ثم أنقله إلى ملف APK مستقل إذا لزم الأمر. فهذا أسهل بكثير لإدارته على المدى الطويل من إضافته إلى ملف، ثم آخر، ثم آخر..

ثم بعد أشهر تحاول معرفة ما إذا كان يمكن نقل هذا الجزء إلى قسم المكتبة دون تخريب أي شيء.

 

 

 

ملفات APK لتراكيب GL

 

إنشاء مشاريع APK جديدة


يجب أن يكون هناك مشروع أندرويد منفصل لكل ملف APK ستقوم بإطلاقه. لتنظيم أسهل..

ضع مشروع المكتبة وجميع مشاريع APK ذات الصلة ضمن نفس المجلد الرئيسي.

تذكر أيضاً أن كل ملف APK يحتاج إلى أن يكون له نفس اسم الحزمة، على الرغم من أنه لا يلزمهم بالضرورة مشاركة اسم الحزمة مع المكتبة.

إذا كان لديك 3 ملفات APK تتبع نظام التخطيط الموضح أعلاه، فإن دليلك الرئيسي قد يبدو كما يلي:

alexlucas:~/code/multi-apks-root$ ls
foo-blue
foo-green
foo-lib
foo-red

 

بمجرد إنشاء المشاريع، أضف مشروع المكتبة كمرجع لكل مشروع من مشاريع APK. و إذا أمكن، فحدد نشاط البدايه في مشروع المكتبة..

وقم بمد هذا النشاط إلى مشروع APK. وجود نشاط بدايه محدد في مشروع المكتبة..

يمنحك فرصة لوضع جميع عمليات تهيئة تطبيقك في مكان واحد..

بحيث لا يضطر كل ملف من ملفات APK إلى إعادة تنفيذ المهام “العامة” مثل تهيئة التحليل، تشغيل عمليات التحقق من التراخيص..

وأي إجراءات تهيئة أخرى لا تتغير كثيراً من ملف APK إلى آخر.

 

 

 

ملفات APK لتراكيب GL

 

ضبط ملفات الإيضاح


عند تنزيل أحد المستخدمين لتطبيق يستخدم ملفات APK متعددة من خلال قوقل بلي، يتم إختيار ملف APK الصحيح وفقاً لقاعدتين بسيطتين:

  • يجب أن يوضح ملف الإيضاح أن ملف APK المحدد، مؤهل
  • من ملفات APK المؤهلة، يفوز الملف الذي يحوي رقم الإصدار الأعلى
  • إذا كانت أي من صيغ التراكيب المدرجة في ملف APK الخاص بك مدعومة من قبل الجهاز في المتجر، فسيعتبر هذا الجهاز مؤهلاً.

فيما يتعلق بتراكيب GL، فإن تلك القاعدة الأخيرة مهمة. و هذا يعني أنه يجب عليك..

على سبيل المثال، أن تكون دقيقاً جداً عند إستخدام صيغ GL المختلفة في نفس التطبيق.

إذا كنت تستخدم %PowerVR 99 من الوقت، ولكنك تستخدم ETC1 كمثال لشاشة البدايه…

فمن الضروري أن يشير ملف إيضاحك إلى دعم التطبيق لكلا الصيغتين. الجهاز الذي يدعم صيغة ETC1 فقط سيعتبر متوافقاً..

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

مصممه خصيصاً لإستهداف أجهزة مختلفة بناءً على صيغ GL المدعومه، فستكون هناك صيغة واحدة لكل ملف APK.

وهذا ما يجعل دعم التراكيب مختلفاً بعض الشيء، عن ملفي APK الآخرين للأبعاد، ملف مستوى واجهة برمجة التطبيقات ملف حجم الشاشة.

لا يتضمن أي جهاز سوى على مستوى واحد من واجهات برمجة التطبيقات، وحجم واحد للشاشة، والأمر متروك لملف APK ليدعم أي مجموعة منهما.

بإستخدام التراكيب، سيدعم ملف APK بشكلٍ عام تركيب واحد، وسيقوم الجهاز بدعم الكثير من التراكيب.

غالباً ما يكون هناك تداخل في ما يتعلق بدعم الجهاز الواحد للعديد من ملفات APK، ولكن الحل هو نفسه: رموز الإصدار.

على سبيل المثال ، يمكنك إستخدام بعض الأجهزة، ومعرفة عدد ملفات APK المحددة مسبقاً التي تناسب كل جهاز.

بإفتراض أن كل من صيغ PowerVR و ATI مفضلان على صيغة ETC1 عند توفرهما، وليس وفقاً لقاعدة “أعلى رقم إصدار يفوز”..

إذا قمنا بتعيين سمة رمز الإصدار versionCode في كل ملف APK هكذا، اللون الأحمر أكبر أو يساوي الأخضر أكبر أو يساوي الأزرق..

فسيتم دائماً إختيار كلٍ من الأحمر والأخضر على إختيار الأزرق على الأجهزة التي تدعمهم، ويجب أن يأتي الجهاز الذي يدعم كلٍ من الملفين الأحمر والأخضر، وسيتم إختيار الملف الأحمر.

من أجل الحفاظ على جميع ملفاتك APK في “مسارات” منفصلة، من المهم أن يكون لديك نظام تخطيط جيد لرمز الإصدار.

يمكن العثور على المخطط الموصى به في مكان رمز الإصدار في دليل المطورين. لأن مجموعة الأمثلة لملفات APK ..

تتعامل فقط مع بعد واحد من الثلاثة أبعاد الممكنة، فسيكون كافياً فصل كل ملف APK بمقدار 1000، قم بزيادتها من هناك. قد يبدو هذا كالتالي:

الأزرق: 1001 ، 1002 ، 1003 ، 1004 …
الأخضر: 2001 و 2002 و 2003 و 2004 …
الأحمر: 3001 و 3002 و 3003 و 3004 …

مع وضع كل هذا معاً، من المرجح أن تظهر ملفات إيضاح أندرويد على النحو التالي:

الأزرق

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:versionCode="1001" android:versionName="1.0" package="com.example.foo">
    <supports-gl-texture android:name="GL_OES_compressed_ETC1_RGB8_texture" />
    ...

الأخضر

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:versionCode="2001" android:versionName="1.0" package="com.example.foo">
    <supports-gl-texture android:name="GL_AMD_compressed_ATC_texture" />
    ...

الأحمر

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:versionCode="3001" android:versionName="1.0" package="com.example.foo">
    <supports-gl-texture android:name="GL_IMG_texture_compression_pvrtc" />
    ...

 

 

 

ملفات APK لتراكيب GL

 

راجع قائمة التحقق قبل الإطلاق الخاصة بك


قبل الرفع إلى قوقل بلاي، تحقق مجدداً من العناصر التالية. تذكر أن هذه العناصر مرتبطة بملفات APK المتعددة تحديداً..

  • ولا تمثل بأي حال قائمة تحقق كاملة لجميع التطبيقات التي يتم رفعها إلى قوقل بلاي.
  • يجب أن تحتوي جميع ملفات APK على اسم الحزمة نفسه.
  • يجب توقيع جميع ملفات APK بالشهادة نفسها.
  • تحقق مرة أخرى من مرشحات ملف إيضاحك فيما لو كانت هناك معلومات متضاربة (ملفات APK التي تدعم فقط..

نسخة كب كيك على الشاشات الكبيرة لن يتمكن أي شخص من رؤيتها).

  • يجب أن يكون كل ملف إيضاح لملف APK فريداً على الأقل في واحدة من الميزات المدعومه..

إما الشاشات أو بنية openGL أو إصدار النظام الأساسي.

  • حاول إختبار كل ملف APK على جهاز واحد على الأقل. فيما عدا ذلك، لديك واحد من أكثر محاكيات..

الجهاز قابلية للتخصيص في جلسة العمل على جهازك. امرح

 

من المفيد أيضاً فحص ملف APK الذي تم تجميعه قبل إرساله إلى المتجر، للتأكد من عدم وجود أي أمور يمكن أن تخفي تطبيقك على قوقل بلاي.

هذا في الواقع بسيط جداً، بإستخدام أداة “aapt”. تعد أداة Aapt (أداة حزم مواد الأندرويد) جزءاً من عملية..

البناء لإنشاء تطبيقات الأندرويد وحزمها، وهي أيضاً أداة مفيدة جداً لفحصهم.

>aapt dump badging
package: name='com.example.hello' versionCode='1' versionName='1.0'
sdkVersion:'11'
uses-permission:'android.permission.SEND_SMS'
application-label:'Hello'
application-icon-120:'res/drawable-ldpi/icon.png'
application-icon-160:'res/drawable-mdpi/icon.png'
application-icon-240:'res/drawable-hdpi/icon.png'
application: label='Hello' icon='res/drawable-mdpi/icon.png'
launchable-activity: name='com.example.hello.HelloActivity'  label='Hello' icon=''
uses-feature:'android.hardware.telephony'
uses-feature:'android.hardware.touchscreen'
main
supports-screens: 'xlarge'
supports-any-density: 'true'
locales: '--_--'
densities: '120' '160' '240'

 

عندما تقوم بفحص مخرجات أداة aapt، تأكد من أنك لا تملك قيماً متعارضة للشاشات المدعومه والشاشات المتوافقة..

وأنك لا تملك قيم “إستخدام-خاصية” غير مقصودة تمت إضافتها كنتيجة لأذوناتك المحدده في ملف الإيضاح.

في المثال أعلاه، لن يكون ملف APK مرئياً للعديد من الأجهزة.

 

لماذا؟ بإضافة الإذن المطلوبه إرسال رسالة قصيرة SEND_SMS، تم إضافة متطلبات خاصية الإتصال الهاتفي android.hardware.telephony ضمنياً.

لأن معظم الأجهزة ذات الشاشة الأكبر (إن لم تكن كلها) عبارة عن أجهزة لوحية لا تحتوي على خاصية الإتصال الهاتفي..

سيعمل قوقل بلاي على تصفية ملف APK هذا في جميع الحالات، إلى أن تأتي أجهزة مستقبلية..

و التي يكون حجمها كبيراً بما يكفي للإبلاغ عنه كحجم شاشة أكبر، وتمتلك خاصية الإتصال الهاتفي.

لحسن الحظ يمكن إصلاح هذا بسهولة عن طريق إضافة ما يلي إلى ملف إيضاحك:

<uses-feature android:name="android.hardware.telephony" android:required="false" />

 

كما تتم إضافة متطلب خاصية شاشة اللمس android.hardware.touchscreen ضمنياً. إذا أردت أن يكون ملف APK التابع لك..

مرئياً على أجهزة التلفاز التي لا تحتوي على شاشة لمس، فيجب عليك إضافة ما يلي إلى ملف إيضاحك:

<uses-feature android:name="android.hardware.touchscreen" android:required="false" />

 

 

حالما تكمل قائمة التحقق قبل الإطلاق، حمّل ملفاتك الـ APK إلى قوقل بلاي. قد يستغرق الأمر بعض الوقت حتى يظهر التطبيق عند تصفح قوقل بلاي..

ولكن عندما يظهر، يمكنك إجراء فحص أخير. يمكنك تنزيل التطبيق على أي أجهزة اختبار تملكها للتأكد من أن ملفات APK تستهدف الأجهزة المقصودة. تهانينا، لقد انتهيت!

 


للإطلاع على المقال باللغة الإنجليزية أضغط هنا.

الإعلانات

اترك رد