আপনার অ্যান্ড্রয়েড অ্যাপে বিটম্যাপ লোড করা কঠিন হওয়ার বেশ কিছু কারণ রয়েছে:
- বিটম্যাপ খুব সহজেই একটি অ্যাপের মেমোরি বাজেট শেষ করে দিতে পারে। উদাহরণস্বরূপ, পিক্সেল ফোনের ক্যামেরা 4048x3036 পিক্সেল (12 মেগাপিক্সেল) পর্যন্ত ছবি তোলে। যদি ব্যবহৃত বিটম্যাপ কনফিগারেশনটি
ARGB_8888হয়, যা অ্যান্ড্রয়েড 2.3 (API লেভেল 9) এবং তার উপরের সংস্করণগুলোর জন্য ডিফল্ট, তাহলে মেমোরিতে একটি ছবি লোড করতে প্রায় 48MB মেমোরি (4048*3036*4 বাইট) লাগে। মেমোরির এই বিপুল চাহিদা অ্যাপটির জন্য উপলব্ধ সমস্ত মেমোরি সঙ্গে সঙ্গে ব্যবহার করে ফেলতে পারে। - UI থ্রেডে বিটম্যাপ লোড করলে আপনার অ্যাপের পারফরম্যান্স খারাপ হতে পারে, যার ফলে রেসপন্স ধীর হয়ে যায় বা এমনকি ANR মেসেজও আসতে পারে। তাই বিটম্যাপ নিয়ে কাজ করার সময় থ্রেডিং যথাযথভাবে পরিচালনা করা জরুরি।
- আপনার অ্যাপ যদি মেমরিতে একাধিক বিটম্যাপ লোড করে, তবে আপনাকে দক্ষতার সাথে মেমরি এবং ডিস্ক ক্যাশিং পরিচালনা করতে হবে। অন্যথায়, আপনার অ্যাপের UI-এর রেসপন্সিভনেস এবং সাবলীলতা ক্ষতিগ্রস্ত হতে পারে।
বেশিরভাগ ক্ষেত্রে, আমরা আপনার অ্যাপে বিটম্যাপ ফেচ, ডিকোড এবং ডিসপ্লে করার জন্য গ্লাইড (Glide) লাইব্রেরি ব্যবহার করার পরামর্শ দিই। অ্যান্ড্রয়েডে বিটম্যাপ এবং অন্যান্য ইমেজ নিয়ে কাজ করার ক্ষেত্রে গ্লাইড এই এবং অন্যান্য কাজগুলোর বেশিরভাগ জটিলতা দূর করে। গ্লাইড ব্যবহার এবং ডাউনলোড করার বিষয়ে তথ্যের জন্য, গিটহাবে (GitHub) গ্লাইড রিপোজিটরি দেখুন।
আপনি অ্যান্ড্রয়েড ফ্রেমওয়ার্কে অন্তর্নির্মিত নিম্ন-স্তরের এপিআইগুলির সাথে সরাসরি কাজ করার বিকল্পও বেছে নিতে পারেন। এ বিষয়ে আরও তথ্যের জন্য, ' Loading Large Bitmaps Efficiently' , ' Caching Bitmaps' , এবং 'Managing Bitmap Memory ' দেখুন।
