SurfaceView مقابل عرض مخصص (ممتد من العرض). SurfaceView أبطأ ، لماذا؟
-
30-09-2019 - |
سؤال
كتبت نفس البرنامج بطريقتين.
واحد باستخدام SurfaceView ، والآخر باستخدام طريقة عرض مخصصة. وفقًا لدليل تطوير Android SDK ، يعد استخدام طريقة العرض السطحية أفضل لأنه يمكنك تفرخ مؤشر ترابط منفصل للتعامل مع الرسومات. يدعي دليل تطوير SDK أن استخدام طريقة عرض مخصصة مع المكالمات الإلغاء أمر جيد فقط للرسوم المتحركة الأبطأ ، والرسومات الأقل كثافة.
ومع ذلك ، في تطبيقي البسيط ، يمكنني أن أرى بوضوح أن استخدام طريقة عرض مخصصة مع المكالمات لإبطالها يبدو أنها أسرع.
ماذا تعرفون/فكروا في هذا؟
رمز اللمس الخاص بي هو نفسه تمامًا ، ورمز الرسم الخاص بي هو نفسه تمامًا. الفرق الوحيد هو أن المرء هو كل شيء في مؤشر ترابط واجهة المستخدم ، والآخر يستخدم فقي للتعامل مع الرسم.
المحلول
يتيح SurfaceView العمل على 2 مخزن مؤقت للرسم ، ماذا عن عرضك المخصص؟
شيء آخر: لقد ذكرت أن المستند يقول invalidate
يعمل بسرعة على الرسوم المتحركة الأبطأ/الرسومات الأقل كثافة. ما مدى كثافة "تطبيقك البسيط"؟ يجب أن تحاول إجراء اختبار الإجهاد وأيضًا في الاعتبار ، كيف يتعامل مؤشر الترابط المفرد مع إخراج اللمس.
لدي 3 مواضيع في لعبتي. واحد لمنطق اللعبة ، واحد للرسم ثم موضوع واجهة المستخدم "العادي" ...