যদি আপনার অবশ্যই প্রচুর পরিমাণে মেমরি ব্যবহার করা (এবং ধরে রাখা) থাকে তবে হ্যাঁ, আপনি ব্যবহার করতে পারেন এবং করা উচিতandroid:largeHeap="true"
। তবে আপনি যদি এটি ব্যবহার করেন তবে অন্য অ্যাপ্লিকেশনগুলি পূর্বগ্রাউন্ডে থাকা অবস্থায় আপনার অ্যাপ্লিকেশনটিকে মেমরি থেকে সরিয়ে দেওয়ার জন্য প্রস্তুত থাকতে হবে।
"প্রস্তুত থাকুন" এর অর্থ হ'ল আপনার সেই সম্ভাবনার জন্য নকশা করা উচিত, যাতে আপনার onStop()
এবংonResume()
হ'ল পদ্ধতিগুলি যথাসম্ভব দক্ষতার সাথে রচিত হয়, যখন নিশ্চিত হয়ে যায় যে সমস্ত প্রাসঙ্গিক রাষ্ট্রটি এমনভাবে সংরক্ষণ করা এবং পুনরুদ্ধার করা হয় যা ব্যবহারকারীর কাছে একটি বিরামবিহীন উপস্থিতি উপস্থাপন করে।
তিনটি পদ্ধতি এই প্যারামিটারটি সঙ্গে সম্পর্কযুক্ত আছেন: maxMemory()
, getMemoryClass()
, এবংgetLargeMemoryClass()
।
বেশিরভাগ ডিভাইসগুলির জন্য, এর maxMemory()
অনুরূপ মান উপস্থাপন করবেgetMemoryClass()
ডিফল্টরূপে করে, যদিও পরবর্তীটি মেগাবাইটে প্রকাশ করা হয়, তবে পূর্ববর্তীটি বাইটে প্রকাশ করা হয়।
আপনি যখন largeHeap
প্যারামিটারটি ব্যবহার করেন , তখন maxMemory()
ডিভাইস-নির্দিষ্ট উচ্চ স্তরে বাড়ানো getMemoryClass()
হবে , যখন একই থাকবে।
getMemoryClass()
আপনার গাদা আকারকে সীমাবদ্ধ করে না, তবে আপনি যদি আপনার অ্যাপটি যে ডিভাইসটি চালাচ্ছেন তার সীমাবদ্ধতার মধ্যে যদি আপনি আপনার অ্যাপটি স্বাচ্ছন্দ্য এবং তুলনামূলকভাবে কাজ করতে চান তবে আপনাকে যে পরিমাণ হিপ ব্যবহার করা উচিত তা তা আপনাকে জানায় ।
maxMemory()
বিপরীতে, আপনার গাদা আকার বাধা দেয় এবং তাই আপনি এর মান বাড়িয়ে অতিরিক্ত গাদা অ্যাক্সেস অর্জন করতে পারেন এবং largeHeap
সেই মানটি বাড়িয়ে তোলে। তবে, স্তূপের বর্ধিত পরিমাণ এখনও সীমিত, এবং এই সীমাটি ডিভাইস-নির্দিষ্ট হবে, যার অর্থ আপনার অ্যাপটিতে যে ডিভাইসটি চলছে তার সংস্থানগুলির উপর নির্ভর করে আপনার অ্যাপ্লিকেশনটিতে যে পরিমাণ স্তূপের উপস্থিত রয়েছে তার পরিমাণের পরিবর্তিত হবে। সুতরাং, largeHeap
আপনার অ্যাপ্লিকেশনটির জন্য সমস্ত সতর্কতা বর্জন করার এবং সমস্ত-খাওয়া-খাওয়া বাফেটের মাধ্যমে তার উপায়টিকে যুক্ত করার জন্য এটি কোনও আমন্ত্রণ নয়।
আপনার অ্যাপ্লিকেশনটি আবিষ্কার করে largeHeap
প্যারামিটারটি ব্যবহার করে কোনও নির্দিষ্ট ডিভাইসে ঠিক কতটা মেমোরি উপলব্ধ করা হবে তা পদ্ধতিটি প্রয়োগ করে আবিষ্কার করতে পারে getLargeMemoryClass()
। প্রত্যাশিত মানটি মেগাবাইটে।
এই আগের পোস্টটিতে largeHeap
প্যারামিটারের আলোচনার পাশাপাশি কয়েকটি নির্দিষ্ট অ্যান্ড্রয়েড ডিভাইসে কী পরিমাণ গাদা তার ব্যবহার এবং ব্যবহার ছাড়াই উপলব্ধ করা হয়েছে তার কয়েকটি উদাহরণ রয়েছে:
অ্যান্ড্রয়েডে অ্যাপ্লিকেশন হ্যাপের আকারটি সনাক্ত করুন
সত্য হিসাবে সেট করা এই প্যারামিটারটি দিয়ে আমি আমার নিজের কোনও অ্যাপ্লিকেশন স্থাপন করি নি। তবে, অপটিমাইজেশন সম্পর্কিত প্যারামিটারগুলির একটি সেট সংকলনের জন্য আমার একটি অ্যাপ্লিকেশনটিতে কিছু মেমরি-নিবিড় কোড রয়েছে, যা কেবলমাত্র বিকাশের সময় চলবে। largeHeap
এই কোডটি চালানোর সময় মেমরির ত্রুটিগুলি এড়াতে আমি কেবল বিকাশের সময় প্যারামিটারটি যুক্ত করি । তবে আমি অ্যাপ স্থাপনের আগে প্যারামিটার (এবং কোড) সরিয়েছি।