ذاكرة الرسم، هل من الأفضل أن يكون لديك موارد داخل APK، خارج APK أم أنها هي نفسها بالنسبة للذاكرة؟

StackOverflow https://stackoverflow.com/questions/2005916

  •  18-09-2019
  •  | 
  •  

سؤال

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

لكنني بدأت في الحصول على استثناءات OutofMemory.

السؤال هو: هل تعامل Android تعامل مع الذاكرة المختلفة إذا قمت بتحميل رسم من APK أكثر مما لو قمت بتحميله من "القرص"؟

رمز باستخدام APK:

topview.setbackgroundResource (r.drawable.bg)؛

الرمز إذا كانت الصورة خارج APK:

D = DraeMable.createFrompath (اسم المسار)؛ topview.setbackgrounddrawable (D)؛

شكرا

دانيال

هل كانت مفيدة؟

المحلول

لا، داخليا يتم التعامل معها. على الأرجح، أنت تسريب الصور، أو عدم تنظيفها بأسرع ما يمكن. حاول الاتصال Bitmap.recycle(); بمجرد الانتهاء من صورة، لإجبار Android على تنظيفه.

نصائح أخرى

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top