التطبيقات

الإعلانات

التطبيقات <application>

 

التطبيقات <application>

بناء الجملة:

وارد في:

<manifest>

يمكن أن يحتوي على:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<provider>
<uses-library>

الوصف:

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

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

السمات:

android:allowTaskReparenting

سواء كان أو لم يكن يمكن نقل الأنشطة التي يحددها التطبيق من المهمة التي بدأتهم إلى المهمة التي يتقاربون معها عندما يتم نقل تلك المهمة إلى المقدمة.

تأخذ القيمة “true” إذا أمكنها التحرك، وتأخذ القيمة “false” إذا كان يجب أن تبقى في المهمة التي بدأت بها.

القيمة الإفتراضية هي “false”.

يحتوي عنصر النشاط <activity> على سمته الخاصة allowTaskReparenting التي يمكنها تخطي القيم المحددة هنا. راجع هذه السمة لمزيد من المعلومات.

 

android:allowBackup

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

إذا تم تعيين هذه السمة على “خطأ” “false”، فلن يتم إجراء نسخ إحتياطي أو إستعادة للتطبيق.

حتى من خلال إجراء نسخ إحتياطي لكامل النظام الذي يؤدي إلى حفظ جميع بيانات التطبيق في adb.

القيمة الإفتراضية لهذه السمة هي ” true”.

 

android:allowClearUserData

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

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

لمزيد من المعلومات، راجع إستعادة بيانات المستخدم على أجهزة جديدة.

 

android:backupAgent

اسم الفئة التي بتنفيذ عامل النسخ الإحتياطي للتطبيق، فئة فرعية من عامل النسخ الإحتياطي BackupAgent.

قيمة السمة يجب أن تكون اسم فئة مؤهل بالكامل مثل (“com.example.project.MyBackupAgent“).

مع ذلك، كإختصار، إذا كان الحرف الأول من الاسم هو نقطة مثال (“.MyBackupAgent“) فسيتم إلحاقه إلى اسم الحزمة المحدد في عنصر <manifest>.

لا يوجد قيمة إفتراضية لهذه السمة، يجب تحديد الاسم.

 

android:backupInForeground

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

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

تعيين هذه العلامة على صحيح “true” يمكن أن تؤثر على سلوك التطبيق أثناء نشاط التطبيق.

القيمة الإفتراضية هي خطأ ” false”، مما يعني أن نظام التشغيل سوف يتجنب القيام بنسخ إحتياطي للتطبيق أثناء تشغيله و وجوده في المقدمة.

(مثل تطبيق الموسيقى الذي ينشط تشغيل الموسيقى عبر خدمة في حالة ()startForeground ).

 

android:banner

مصدر رسوميات يقوم بتوفير شعار رسومي موسع للعنصر المرتبط به.

يستخدم مع علامة <application> لتزويد جميع أنشطة التطبيق بالشعار الإفتراضي، أو يستخدم علامة <activity> لتوفير شعار لنشاط معين.

يقوم النظام بإستخدام الشعار لتمثيل تطبيق في الشاشة الرئيسية لتلفاز الأندرويد. بما أن الشعار يعرض فقط في الشاشة الرئيسية.

يجب تحديده فقط من خلال التطبيقات التي لها نشاط يتعامل مع غرض CATEGORY_LEANBACK_LAUNCHER.

يجب تعيين هذه السمة كمرجع لمصدر رسومي يحتوي على صورة (مثال، “drawable/banner@“). لا يوجد شعار إفتراضي.

لمزيد من المعلومات، راجع توفير شعار للشاشة الرئيسية “ابدأ مع تطبيقات التلفاز”.

 

android:debuggable

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

  تأخذ القيمة “true” إذا أمكن ذلك، و تأخذ القيمة “false” إذا لم يمكن.

القيمة الإفتراضية هي “false”.

android:description

نص المستخدم القابل للقراءة بشأن التطبيق “حول التطبيق”، أطول ويحتوي على تفاصيل أكثر من مسمى التطبيق.

يجب تعيين القيمة كمرجع لمصدر سلسلة.

على عكس المسمى، لا يمكن أن يكون سلسلة خام. ليس هناك قيمة إفتراضية.

android:directBootAware

ما إذا كان التطبيق في وضع التشغيل المباشر أم لا.

أي إذا كان يمكن أو لا يمكن تشغيل التطبيق قبل قيام المستخدم بإلغاء قفل الجهاز.

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

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

القيمة الإفتراضية هي “false”.

 

android:enabled

سواء كان أو لم يكن نظام الأندرويد قادراً على تمثيل مكونات التطبيق – تأخذ القيمة “true” إذا أمكنه ذلك، وتأخذ القيمة “false” إذا لم يمكنه.

إذا كانت القيمة “true”، فإن كل مكون يقوم بتمكين سمة تحدد ما إذا كان ذلك المكون مُمكناً أم لا.

إذا كانت القيمة “false”، فإنها ستتجاوز القيم الخاصة بالمكون؛ جميع المكونات معطلة.

القيمة الإفتراضية هي “true”.

 

android:extractNativeLibs

ما إذا كان أو لم يكن، مثبت الحزمة يقوم بإستخراج المكتبات الأصلية من ملف APK إلى ملفات النظام.

إذا تم تعيينها على “خطأ”، فإن مكتباتك الأصلية يجب أن تتم محاذاتها و تخزينها بدون ضغطها في ملف APK.

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

القيمة الإفتراضية هي “true”.

 

android:fullBackupContent

تشير هذه السمة إلى ملف XML يحتوي على قواعد النسخ الإحتياطي الكامله للنسخ الإحتياطي التلقائي.

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

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

لمزيد من المعلومات، راجع الملفات التي نسخت إحتياطياً.

 

android:fullBackupOnly

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

إذا تم تعيينها على صحيح، فإن تطبيقك سيقوم بتنفيذ النسخ الإحتياطي التلقائي عند تثبيته على جهاز يعمل بنظام أندرويد 6.0 (API 23) أو أعلى.

على الأجهزة الأقدم، يقوم تطبيقك بتجاهل هذه السمة ويقوم بتنفيذ عمليات النسخ الإحتياطي “مفتاح\قيمه”.

القيمة الإفتراضية هي خطأ “false”.

 

android:hasCode

سواء كان أو لم يكن، التطبيق يحتوي على أي كود – تأخذ القيمة “true” إذا أحتوى على كود، وتأخذ القيمة “false” إذا لم يحتوي.

عندما تكون القيمة خطأ، فإن النظام لن يحاول تحميل أي أكواد تطبيق عند تشغيل المكونات. القيمة الإفتراضية هي صحيح.

مثال، إذا كان تطبيقك يدعم التسليم الفعال لـGoogle Play ويحتوي على نماذج ميزات فعاله لا تقوم بإنتاج أي ملفات لـDEX .

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

 

android:hardwareAccelerated

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

تأخذ القيمة “true” إذا كان يجب تمكينها، وتأخذ القيمة “false” إذا لم يجب تمكينها.

القيمة الإفتراضية هي “true” إذا قمت بتعيين كلٍ من إصدارات minSdkVersion و targetSdkVersion على الرقم 14 أو أعلى؛ خلاف ذلك، تأخذ القيمة “false”.

بدءاً من إصدار أندرويد 3.0 (API 11)، توفر مسرع الأجهزة OpenGL للتطبيقات، لتحسين أداء العديد من عمليات الرسوميات ثنائية الأبعاد الشائعة.

عندما يتم تمكين مسرع الأجهزة، يتم تسريع معظم العمليات في Canvas و Paint و Xfermode و مرشح اللون و التظليل و الكاميرا.

 

وهذا يؤدي إلى جعل الحركة و التمرير أكثر سلاسة، ويحسن الإستجابة بشكل عام، حتى بالنسبة للتطبيقات التي لا تستخدم بشكل صريح مكتبات الإطار OpenGL.

لاحظ أن ليست جميع عمليات OpenGL الثنائية الأبعاد متسارعه.

إذا قمت بتمكين مسرع الجهاز، قم بإختبار تطبيقك للتأكد من أنه قادر على إستخدام المسرع دون أخطاء.

لمزيد من المعلومات، اقرأ دليل تسريع الأجهزة.

 

android:icon

أيقونة للتطبيق ككل، والأيقونة الإفتراضية لكل مكون من مكونات التطبيق. راجع سمات الأيقونات الفردية لعناصر:

<activity>,

<activity-alias>,

<service>, 

<receiver>,

<provider>.

يجب تعيين هذه السمة كمرجع لمصدر رسومي يحتوي على صورة مثال ( “drawable/icon@“). لا يوجد أيقونة إفتراضية.

 

android:isGame

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

القيمة الإفتراضية هي خطأ.

 

android:killAfterRestore

ما إذا كان التطبيق المعني يجب إنهاؤه بعد إستعادة إعداداته أثناء عملية إستعادة النظام بالكامل.

عمليات إستعادة الحزم الفردية لن تتسبب أبداً في إيقاف تشغيل التطبيق.

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

القيمة الإفتراضية هي صحيح، مما يعني أنه بعد إنتهاء التطبيق من معالجة بياناته أثناء إستعادة النظام بالكامل، سيتم إنهاؤه.

 

android:largeHeap

ما إذا كان يجب إنشاء عمليات تطبيقك بإستخدام حزمة كبيرة من large Dalvik heap. وهذا ينطبق على جميع العمليات التي تم إنشاؤها للتطبيق.

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

فيجب أن يستخدم الجميع هذا الخيار بإستمرار أو سيكون لديهم نتائج غير متوقعه.

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

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

للإستعلام عن حجم الذاكرة المتوفرة أثناء التشغيل، إستخدم الداله ()getMemoryClass أو الداله ()getLargeMemoryClass.

android:label

التسمية القابلة للقراءة بواسطة المستخدم للتطبيق ككل، مسمى إفتراضي لكل من مكونات التطبيق.

راجع سمات التسمية الفردية لعناصر:

<activity>,

<activity-alias>,

<service>,

<receiver>,

<provider>.

يجب تعيين التسمية كمرجع لمصدر سلسله، بحيث يمكن ترجمتها مثل السلاسل الأخرى في واجهة المستخدم.

مع ذلك، كوسيلة مناسبة أثناء تطوير تطبيقك، يمكن أيضاً تعيينه كسلسلة خام.

 

android:logo

شعار للتطبيق ككل و الشعار الإفتراضي للأنشطة.

يجب تعيين هذه السمة كمرجع لمصدر رسومي يحتوي على صورة مثال ( “drawable/logo@“). لا يوجد شعار إفتراضي.

 

android:manageSpaceActivity

اسم مؤهل بالكامل للفئة الفرعية للنشاط الذي يمكن للنشاط تشغيله للسماح للمستخدمين بإدارة الذاكرة التي يشغلها التطبيق على الجهاز.

يجب أيضاً الإعلان عن النشاط بإستخدام العنصر <activity>.

android:name

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

الفئة الفرعية إختياريه.

معظم التطبيقات لن تحتاج إلى واحدة. في حالة عدم وجود فئة فرعية، يقوم الأندرويد بإستخدام مثيل لفئة التطبيق الأساسية.

 

android:networkSecurityConfig

تحدد اسم ملف XML الذي يحتوي على تكوينات شبكة أمان تطبيقك. يجب أن تكون القيمة مرجعاً لمصدر ملف XML الذي يحتوي على التكوين.

تمت إضافتها في المستوى API 24.

android:permission

اسم الأذونه التي يجب أن تكون لدى العميل للتفاعل مع التطبيق.

هذه السمة هي طريقة مناسبة لتعيين أذن يتم تطبيقها على جميع مكونات التطبيق.

يمكن تجاوزها من خلال إعداد سمات أذونات لمكونات فردية.

لمزيد من المعلومات حول الأذونات، راجع قسم الأذونات في المقدمة و مستند آخر، الأمان و الأذونات.

android:persistent

ما إذا كان يجب أن يبقى التطبيق قيد التشغيل طوال الوقت – يأخذ القيمة “true” إذا توجب ذلك، ويأخذ القيمة “false” إذا لم يجب.

القيمة الإفتراضية هي “false”.

يجب ألا تقوم التطبيقات بتعيين هذه العلامة بشكل طبيعي؛ يعد الوضع الثابت فقط لبعض تطبيقات النظام.

android:process

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

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

بعدها جميع المكونات يتم تشغيلها في تلك العملية.

يتطابق اسم العملية الإفتراضية مع اسم الحزمة الذي تم تعيينه بواسطة عنصر الإيضاح <manifest>.

من خلال تعيين هذه السمة لأسم عملية تتشارك مع تطبيق آخر، يمكنك ترتيب مكونات كلا التطبيقين ليتم تشغيلهما في نفس العمليه.

ولكن فقط إذا كان التطبيقان يتشاركان أيضاً نفس معرف المستخدم وموقعان بنفس الشهادة.

إذا بدأ الأسم المعين لهذه السمة بنقطتين رأسيتين (‘:’)، سيتم إنشاء عملية جديدة، خاصة بالتطبيق، عند الحاجة إليها.

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

 

android:restoreAnyVersion

يشير إلى أن التطبيق مستعد لمحاولة إستعادة أي مجموعة بيانات تم نسخها إحتياطياً.

حتى ولو تم تخزين النسخه الإحتياطية بواسطة إصدار أحدث من إصدار التطبيق المثبت حالياً على الجهاز.

تعيين هذه السمة على القيمة “صحيح” سيسمح لمدير النسخ الإحتياطي بمحاولة الإستعادة.

حتى عندما تشير الإصدارات الغير متطابقة إلى أن البيانات غير متوافقة. أستخدم هذه السمة بحذر!

القيمة الإفتراضية لهذه السمة هي خطأ ” false”.

 

android:requiredAccountType

يحدد نوع الحساب المطلوب للتطبيق لكي يعمل. إذا كان تطبيقك يتطلب حساباً، يجب أن تتوافق قيمة هذه السمة مع نوع الحساب الموثق الذي يستخدمه تطبيقك ( كما هو محدد في وصف التوثيق “المصادقه” AuthenticatorDescription)، مثال، “com.google”.

القيمة الإفتراضية هي فارغ “null” وتشير إلى أن التطبيق يمكن أن يعمل بدون أي حسابات.

لأن الملفات الشخصية المقيدة لا يمكنها إضافة حسابات حالياً، فإن تحديد هذه السمة يجعل تطبيقك غير متاح من ملف شخصي مقيد ما لم تعلن أيضاً عن android:restrictedAccountType بنفس القيمة.

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

تمت إضافة هذه السمة في المستوى API 18.

 

resizeableActivity

تحدد ما إذا كان التطبيق يدعم خاصية عرض النوافذ المتعددة. يمكنك تعيين هذه السمة إما في عنصر <activity> أو عنصر <application>.

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

إذا قمت بتعيينها إلى خطأ، فإن النشاط لن يدعم خاصية تعدد النوافذ.

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

إذا كان تطبيقك يستهدف المستوى API 24 أو أعلى، لكنك لم تقم بتحديد قيمة لهذه السمة، فإن قيمة السمة ستكون القيمة الإفتراضية “صحيح”.

تمت إضافة هذه السمة في المستوى API 24.

 

android:restrictedAccountType

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

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

فيجب أن تتوافق قيمة هذه السمة مع نوع توثيق “مصادقة” الحساب الذي يستخدمه تطبيقك (كما هو محدد في السمة AuthenticatorDescription) مثل “com.google”.

القيمة الإفتراضية هي “فارغ” وتشير إلى أن التطبيق يمكن أن يعمل بدون أي حساب.

تنبيه: تحديد هذه السمة يسمح للملفات الشخصية المقيدة بإستخدام تطبيقك بحسابات تخص المستخدم، والذي قد يكشف عن معلومات تعريف شخصية.

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

ويجب عليك بدلاً من ذلك الإعلان عن السمة android:requiredAccountType لجعل تطبيقك غير متاح للملفات الشخصية المقيده.

هذه السمة تمت إضافتها في المستوى API 18.

 

android:supportsRtl

تعلن ما إذا كان تطبيقك مستعد لدعم مخططات “من اليمين إلى اليسار”.

إذا تم تعيينها على صحيح وتم تعيين نسخة targetSdkVersion على الرقم 17 أو أعلى، فإن العديد من واجهات برمجة التطبيقات التي تدعم “من اليمين إلى اليسار” سوف يتم تنشيطها.

 ويستخدمها النظام لكي يتمكن تطبيقك من عرض مخططات “من اليمين إلى اليسار”. إذا تم تعيين السمة على خطأ أو إذا تم تعيين نسخة targetSdkVersion على الرقم 16 أو أقل.

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

وسيعمل تطبيقك كما هو بغض النظر عن إتجاه المخطط المرتبط بلغة المستخدم (ستكون مخططاتك دائماً من اليسار إلى اليمين).

القيمة الإفتراضية لهذه السمة هي خطأ.

تمت إضافة هذه السمة في المستوى API 17.

 

android:taskAffinity

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

راجع هذه السمة لمزيد من المعلومات.

بشكلٍ إفتراضي، جميع الأنشطة بداخل التطبيق تتشارك نفس التقارب. اسم هذا التقارب هو نفس اسم الحزمة التي تم تعيينها بواسطة عنصر <manifest>.

 

android:testOnly

تشير إلى ما إذا كان التطبيق معد فقط لأهداف الإختبار.

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

يمكن تثبيت هذا النوع من ملفات APK فقط من خلال adb – لا يمكنك نشره على سوق قوقل.

يقوم الأندرويد ستوديو بإضافة هذه السمة تلقائياً عندما تضغط على تشغيل.

android:theme

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

لمزيد من المعلومات، راجع دليل مطوري التصاميم والثيمات.

android:uiOptions

خيارات إضافية لواجهة مستخدم النشاط.

يجب أن تكون إحدى هذه القيم:

القيمة الوصف
“none” لا شيء لا توجد خيارات إضافية لواجهة المستخدم. هذه هي القيمة الإفتراضية.
“splitActionBarWhenNarrow” تقسيم شريط الإجراء عند الضيق إضافة شريط في الجزء السفلي من الشاشة لعرض عناصر الإجراء في شريط التطبيق (المعروف أيضاً بأسم شريط الإجراءات).

عند تقييده بالمساحة الأفقيه (مثال، عندما يكون في الوضع الرأسي على الهاتف).

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

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

لا يتم تقسيم عناصر القائمة عبر الشريطين، بل تظهر معاً دائماً.

 

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

تمت إضافة هذه السمة في المستوى API 14.

android:usesCleartextTraffic

تشير إلى ما إذا كان التطبيق يهدف إلى إستخدام شبكة مرور النصوص الغير مشفرة، مثل النصوص الغير مشفرة لـHTTP.

القيمة الإفتراضية هي صحيح.

عند تعيين السمة على “خطأ”، فإن مكونات النظام مثل (حزم HTTP و FTP، مدير التحميل، مشغل الوسائط) سترفض طلب التطبيق لإستخدام مرور النصوص الغير مشفرة.

المكتبات الخارجية أيضاً تشجع بشدة على تقدير هذا الإعداد.

السبب الرئيسي في تجنب مرور النصوص الغير مشفرة هو لنقص الخصوصية، الموثوقيه، والحمايه ضد العبث: يمكن لمخترق الشبكة القيام بالتجسس على البيانات المنقوله و كذلك يقوم بتعديلها دون أن يُكشف.

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

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

مع ذلك، معظم مرور الشبكة من التطبيقات، يتم التعامل معه بواسطة حزم/مكونات الشبكة الأعلى مستوى..

والتي يمكنها تقدير هذه العلامة إما عن طريق قراءتها من “ملف ApplicationInfo.flags” أو من ()NetworkSecurityPolicy.isCleartextTrafficPermitted.

 

ملاحظة: عرض الويب يقدر هذه السمة للتطبيقات التي تستهدف مستوى واجهة التطبيقات API 26 أو أعلى.

أثناء تطوير التطبيق، يمكن إستخدام الوضع الثابت “StrictMode” لتعيين أي مرور للنصوص الغير مشفرة من التطبيق: راجع

()StrictMode.VmPolicy.Builder.detectCleartextNetwork.

تمت إضافة هذه السمة في مستوى واجهة التطبيقات API 23.

هذه العلامة بتم تجاهلها في أندرويد 7.0 (API 24) وأعلى، في حالة وجود تكوينات أمان شبكة أندرويد.

android:vmSafeMode

تشير إلى ما إذا كان التطبيق يرغب في تشغيل الجهاز الإفتراضي (VM virtual machine) في الوضع الآمن. القيمة الإفتراضية هي “خطأ”.

تمت إضافة هذه السمة في المستوى API 8 حيث تقوم القيمة “صحيح” بتعطيل مؤلف Dalvik ust-in-time (JIT).

تم تعديل هذه السمة في المستوى API 22 حيث تقوم القيمة “صحيح” بتعطيل مؤلف ART ahead-of-time (AOT).

مقدمة في:

API 1

راجع أيضاً:
<activity>
<service>
<receiver>
<provider>

 


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

الإعلانات

18 thoughts on “التطبيقات”

اترك رد