آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

تصاویر پر حجم و رم های کم حجم!

Alireza.b  12 سال پیش  10 سال پیش
+1 0

سلام

فرض کنید ما بک برنامه والپیپر داریم و عکس هایی HD به ابعاد 1080*1920 در آن وجود دارد.

خوب طبیعتا نمی توانیم در تک تک پوشه های drawable عکس ها را resize کنیم و بگذاریم، چون حجم برنامه تا 3 برابر بیشتر می شود.

از طرفی اگر این کار را نکنیم، اندروید مجبور می شود عکس ها را resize کند و در رم نگه دارد که دو مشکل به وجود می آید:

  1. افت شدید کیفیت
  2. به عنوان مثال اگر عکس ها را در یک گالری نشان دهیم، برنامه به سرعت کرش می کند.(به دلیل پر شدن رم (Out Of Memory))

خب پس چاره چیست؟

ممنون

 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
Reza AF  12 سال پیش
0 0

شما اگه طبق آموزشهای استاد، از option برای bitmap استفاده کنید این مشکل پیش نمیاد، یعنی تصاویر رو 4 یا 6 برابر یا هر مقداری که شما نیاز دارین کوچکتر لود کنید.

+1 0
بهترین راه حل ! (12 سال پیش)
0 0
ok (10 سال پیش)
پاسخ به سوال 
uncocoder  12 سال پیش
+5 0

کسی می تونه به من پاسخ این سئوال رو بده: یک جور تست هست از بچه هایی که همشون الان حرفی برای گفتن دارن :)

چرا بازی ها حتی تا 300 مگ از Ram رو اشغال می کنن اما باز Out Of Memory ندارن؟

0 0
بازی ها به طور موقت هروقت اجرا میشن حافظه اشغال میکنن و بعده اون فقط بعضی از استیت ها آخرش توی فایل ها ذخیره میشن و بعده اون با فضای حافظه کاری ندارن (12 سال پیش)
0 0
واقعا چرا؟از چه تکنیکی استفاده می کنن؟ میشه استاد جواب سوالتون رو بفرمایید؟ (11 سال پیش)
0 0
دوستان اگر کسی اطلاعی در این زمینه داره توضیحاتی اضافه کنه که استفاده کنیم < (10 سال پیش)
0 0
اونها اصلا از SDK اندروید استفاده نمیکنن و از NDK استفاده میکنن البته یه چیزی توی یه سایت خارجی بود خوندم. (10 سال پیش)
0 0
استاد به چه نکتهجالبی اشاره کردین قبلا سوالم بود! گفته بودین هربرنامه انقدر رم می تونه استفاده کنه و برام عجیب بود که پس اگه بیشتر بخواد چی و اینجوری جوابشو فک کردم که اینا دارن مدیریت می کنن و چیزی که لازمه رئ نگه می دارن و چیزی که نه رو دور می ریزن :D فک کنم درباره پپشته مشته خوندم به اون ربط داشته باشه؟ چقدر زیاد شد همشونم غلطن خخخخخ (10 سال پیش)
0 0
فک کنم جوابشو پیدا کردم The memory usage of native code is not restricted by the Java heap size ----------------------------------------------------------------------------------------------- The only way to have as large a limit as possible is to do memory intensive tasks via the NDK, as the NDK does not impose memory limits like the SDK. (10 سال پیش)
+4 0
با اضافه شدن تصویر در حافظه Bitmap در OpenGL و حذف آن در حافظه متعلق به بازی ( کد جاوا ) در واقع تصاویر از حافظه برنامه خارج شده و در Heap Memory متعلق به GL قرار می گیرند، لذا محدودیتی در حجم وجود نخواهد داشت، فقط باید توجه کنید که عرض و ارتفاع تصاویر استاندارد در OpenGL باید توانی از 2 باشند. (10 سال پیش)
0 0
به به استاد وارد میشود... . میگم اگر بخوایم بدون openGl این مشکل رو حل کنیم تکلیف چیه و این که مگه تابع bitmap.recycle(); همین کارو انجام نمی ده ممنون از شما استاد عزیز (10 سال پیش)
0 0
یا میشه با اضافه کردن کد های کتابخانه openGl توی پروژه فقط تو قسمت های سنگین این مشکل رو حل کرد البته من درک خاصی از openGl ندارم ولی....... . (10 سال پیش)
پاسخ به سوال 
konect  12 سال پیش
+1 0

سلام دوست

به نظر من این بحث مربوط به نحوه نگهداری داده ها در حافظه های heap و stack میشه.


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .