Astra boy/Bender
يعلم الجميع أن كل إصدار جديد من Android يحصل على اسم رمزي للحلويات ويتم تعيينهم بترتيب أبجدي (Cupcake ، دونات ، Eclair ، إلخ).ومع ذلك ، في البداية ، خطط المطورون لتسمية الإصدارات باستخدام أسماء روبوت وهمية. لذلك ، كانت الإصدارات الأولى من Android تسمى Astra boy و Bender . كانت هذه إصدارات داخلية قبل إصدار الإصدار 1.0 غير المعروف. ومع ذلك ، لأسباب معينة ، تم تغيير المتجه والإصدار 1.1 ، فقد تقرر استدعاء Petit Four . كانت هذه هي النسخة الأولى من Android. وبدءًا من الإصدار التالي (Cupcake 1.5) ، بدأت الأسماء يتم تعيينها بترتيب أبجدي.المصدر
Marshmallow
مع إصدار API 23 (Marshmallow) ، قدم Android المفهوم الجديد لأذونات وقت التشغيل . كان من المفترض أن تضيف هذه الميزة شفافية للمستخدمين إلى الأذونات الممنوحة للتطبيق. قبل إصدار "الخطمي" ، تم إصدار أذونات في وقت تثبيت التطبيق.المصدرملاحظة ، يحتوي Android على أكثر من 100 أذونات فريدة.
measure()
قياس () - دعا لتحديد متطلبات حجم العرض وجميع أبنائه.onMeasure () - تم استدعاؤه من التدبير () للقيام بالعمل الفعلي لتغيير حجم العرض.onLayout () - يسمى لوضع عنصر داخل الحاويةتم استدعاء onDraw () لتقديم عرض المحتوى.يمكن الاطلاع على مزيد من المعلومات حول طريقة العرض "عرض" هنا .
isUserSmell()
لا توجد طريقة isUserSmell () في SDK. ربما في المستقبل ، مع ظهور أجهزة استشعار مناسبة على الأجهزة ...دعونا نرى ما تفعله بقية الأساليب:isUserMonkey () - تم تصميم الطريقة للتحقق مما إذا كان المستخدم اختبارًا في إطار اختبار القرد الآلي.isUserAGoat () - بدءًا من API 21 ، يتحقق من تثبيت تطبيق Goat Simulator GoatZ. في الإصدارات أدناه ، تُرجع الطريقة دائمًا خطأ. يقع في فئة android.os.UserManager .isFinalCountdown () - الطريقة تفتح مقطع فرقة Europa "The Final Countdown". إضافته إلى API 26. يقع في فئة android.widget.Chronometer .
android.os.UserManager
android.widget.Chronometer
private static final int mobius = 2018
هذه المعرفة المختبرة للكلمة الأساسية const ، والتي يتم استخدامها للإعلان عن compile time constants . في عالم Java ، يتوافق هذا مع المعدلات static final .
const
compile time constants
static final
sdpi
بينما سمع المطورون xhdpi و mdpi ، فإن الأمور مختلفة مع tvdpi . لم يكتسب شعبية ، وبالتالي هناك عدد قليل جدا من الأجهزة في فئة tvdpi ، لكنها كانت. أشهرها هو Nexus 7 (2012).المصدرلاحظ أن tvdpi يحتوي على معامل 1.3 نسبة إلى mdpi.
apk
AAPT (Android Asset Packaging Tool) - أداة Android لإنشاء ملفات .APK.يمكن تقسيم عمل هذه الأداة بشكلٍ مشروط إلى مرحلتين:- تجميع. في هذه المرحلة ، يتم إعداد الموارد: يتم إنشاء الفئة R ، وترجمة موارد XML إلى تنسيق ثنائي ، ومعالجة PNG ، إلخ.- التغليف (ربط). يتم تجميع جميع الملفات الوسيطة التي تم إنشاؤها في مرحلة الترجمة في APK.بالنسبة لخيارات الإجابة المتبقية:- غموض الكود يتم عادة بواسطة الحارس.- Java bytecode هو نتيجة برنامج Java Compiler ، الذي يترجم شفرة المصدر إلى Java bytecode.- Dalvik bytecode هو نتيجة لمترجم Dalvik (DX ، D8) ، والذي يترجم .class (Java bytecode) إلى .dex (Dalvik bytecode). شفرة المصدر في Dalvik bytecode لا تبث مباشرة.تم توضيح عملية إنشاء تطبيق Android في الوثائق .
RIGHT OUTER JOIN
مما ذكر أعلاه ، RIGHT OUTER JOIN غير مدعوم.المصدر
2x
الاسمالكثافةldpi0.75mdpi1tvdpi1.3hdpi1.5xhdpi2xxhdpi3 و 2.6xxxhdpi4 و 3.5
ART
ART (وقت تشغيل Android) هو وقت تشغيل DEX bytecode الجديد الذي يحل محل Dalvik. الفرق الأكثر أهمية بين Dalvik و ART هو أن Dalvik يستند إلى تجميع JIT ( فقط في الوقت المناسب ) ، بينما يعتمد ART على AOT ( Ahead-of-Time ). بعبارات عامة ، هذا يعني أن Dalvik يترجم رمز بايت dalvik إلى رمز الجهاز في كل مرة يتم فيها تنفيذ التطبيق ، ويقوم ART بذلك مرة واحدة ، أثناء تثبيت التطبيق ، وتخزين النتيجة في ذاكرة الجهاز. يؤدي هذا إلى تشغيل وتنفيذ التطبيقات على ART بشكل أسرع مقارنة بـ Dalvik ، ولكنه يزيد أيضًا من وقت تثبيت التطبيق. بالإضافة إلى ذلك ، أجرت ART تحسين GC ، وأضفت أيضًا عددًا من الوظائف لتحسين تطوير التطبيق وتصحيح الأخطاء.ART و Dalvik
بالإضافة إلى ذلك ، تجدر الإشارة إلى أن ART تشتمل أيضًا على مترجم JIT يكمل AOT. اقرأ المزيد عنها هنا .
YAGNI
KISS (حافظ على البساطة ، غبي) - لا تعقده!جاف (لا تكرر نفسك) ، يموت (الازدواجية الشر) - لا تكرر!WTF (مقدار "chazan" في الثانية) هي وحدة لقياس جودة الكود للمراجعة.YAGNI (لن تحتاجها) - لن تحتاجها!
Application Not Responding
ANR (التطبيق لا يستجيب) - مشكلة تحدث عندما لا يتمكن مؤشر الترابط الرئيسي للتطبيق من معالجة أحداث المستخدم وإعادة رسم واجهة المستخدم.في Android ، تتم مراقبة استجابة أحد التطبيقات من خلال خدمات نظام ActivityManager و WindowManager . إذا كان أحد الشروط التالية صحيحاً:- لا يوجد رد فعل على أحداث الإدخال (الأحداث التي تم لمسها والضغط على المفاتيح) ،- لا تكتمل خدمة BroadcastReceiver في غضون 10 ثوانٍ ،ثم يقوم النظام بإخطار المستخدم بالمشكلة من خلال إظهار مربع حوار ANR المقابل.
ActivityManager
WindowManager
Size & mode
تم تصميم MeasureSpec لنقل متطلبات الحجم من مكونات العرض إلى الأصل. يتم تجميع هذه المتطلبات في بعدين: العرض والارتفاع. قيم كل من القياسات مركبة: يحتوي الجزء الأول على معلومات حول المساحة المتاحة (بالبكسل) ، بينما يحتوي الجزء الثاني على قيود على استخدام المساحة المتاحة. قد تتضمن هذه القيود ما يلي:MeasureSpec.UNSPECIFIED - لا توجد قيود ، يمكن أن يستغرق العرض أي حجم يحتاجه.MeasureSpec.EXACTLY - يتم تحديد الأحجام الدقيقة ، سيتم عرض هذه الحدود.MeasureSpec.AT_MOST - تحديد الأحجام القصوى. يمكن أن تكون طريقة العرض كبيرة كما تشاء ، ولكن بالحجم المحدد.
Linux Kernel
Linux Kernel (Linux kernel) - توفر هذه الطبقة عمل النظام وهي مسؤولة عن الأمن وإدارة الذاكرة والعمليات ، كما توفر مكدس شبكة ونموذج برنامج تشغيل (برنامج تشغيل العرض وبرنامج تشغيل الكاميرا وبرامج تشغيل أخرى).Libraries (libraries) عبارة عن طبقة متوسطة من البرامج المصممة لتوفير الوظائف الأساسية للتطبيقات مثل دعم تنسيقات الملفات وترميز معلومات فك التشفير (برامج الترميز على سبيل المثال) ، وتقديم الرسومات ، وأكثر من ذلك بكثير (Surface Manager و Media Framework و SQLite و أخرى).وقت تشغيل Android - يقع على نفس مستوى المكتبات. المكونات الرئيسية هنا هي Dalvik VM وعدد من المكتبات الأساسية (المكتبات الأساسية).إطار التطبيق - مستوى إطار التطبيق. من خلال أطر عمل التطبيق ، يمكن للمطورين الوصول إلى واجهات برمجة التطبيقات التي تقع دون المستوى. وتشمل هذه: ActivityManager ، مدير الحزم ، مدير النوافذ ، الخالتطبيقات - مستوى التطبيقات ، سواء الأساسية (المثبتة مسبقًا على نظام التشغيل: المتصفح ، التقويم ، جهات الاتصال ، إلخ) ، وتثبيتها بواسطة المستخدم.ملاحظة ، واضعي هذه المسابقة هي المدرسة القديمة ، لأنه في الوثائق الرسمية ، يتم تمييز الطبقات بطريقة أخرى: source.android.com/devices/architecture .
invokeabstract
غوتو - القفز إلى تعليمات أخرى.invokeinterface - تستخدم لاستدعاء أساليب واجهة.invokestatic - يستخدم لاستدعاء الأساليب الثابتة.وصف التعليمات الأخرى .
Source: https://habr.com/ru/post/ar434210/More articles:اختيار وضع تشغيل خادم الويب بناءً على التجربة الشخصيةهو الصدأ الرهيب للغاية كما هو رسمها4 أسرار حول كيفية عدم فقدان وظيفتك في علم البياناتطائرة الموزع ok.ru/musicكيف تذهب المحفوظة لدينا الجمعة السوداءبرج تسلا. ماذا يحدث في ناطحة سحاب وبالقرب منها عند الصواعق؟وكيل Java الديناميكي: ما هو وكيفية استخدامه؟هجمات القوة الغاشمة باستخدام Kali Linuxبسيطة الفرس جافا بوت على سبيل المثال من لعبة World of Warcraft 3.3.5aدخول Aeronet: إطلاق quadrocopter مستقل في بيئة افتراضيةAll Articles