ActivityManager.setWatchHeapLimit() ব্যবহার করে হিপ সাইজ মনিটরিং সেট করা
এই উদাহরণটি দেখাবে কিভাবে ডেভেলপমেন্ট টাইমে অ্যাপ্লিকেশনের হিপ মেমরি ইউজেজ মনিটর করতে একটি থ্রেশহোল্ড (লিমিট) সেট করা যায়। হিপ সাইজ এই লিমিট přek্রম করলে সিস্টেম লগক্যাটে একটি ওয়ার্নিং মেসেজ প্রিন্ট করে, যা মেমরি লিক বা অতিরিক্ত মেমরি ইউজেজ ডিটেক্ট করতে সাহায্য করে।
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
Android Studio-তে File → New Project দিয়ে প্রজেক্ট তৈরি করুন।
ধাপ ২: লেয়াউট ফাইল (res/layout/activity_main.xml)
<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android"
xmlns:app = "https://schemas.android.com/apk/res-auto"
xmlns:tools = "https://schemas.android.com/tools"
android:layout_width = "match_parent"
android:gravity = "center"
android:layout_height = "match_parent"
tools:context = ".MainActivity">
<TextView
android:id = "@+id/text"
android:textSize = "30sp"
android:layout_width = "match_parent"
android:layout_height = "match_parent" />
</LinearLayout>
ধাপ ৩: জাভা কোড (src/MainActivity.java)
ActivityManager.setWatchHeapLimit(limitInBytes) কল করে ৪০৯৬ বাইট (৪ KB) লিমিট সেট করা হয়েছে। এটি খুব কম মান, শুধু ডেমোর জন্য। বাস্তবে মেগাবাইট স্কেলে সেট করা হয়।
package com.example.myapplication;
import android.app.ActivityManager;
import android.app.admin.DevicePolicyManager;
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView textView;
DevicePolicyManager deviceManger;
ActivityManager activityManager;
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.text);
deviceManger = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
// হিপ ওয়াচ লিমিট সেট করুন (বাইটে) - 4096 bytes = 4 KB
activityManager.setWatchHeapLimit(4096);
textView.setText("Set watch heap limit to 4096");
}
}
অ্যাপ্লিকেশনটি রান করুন
ডিভাইস সংযুক্ত করে Run করুন। টেক্সটভিউতে কনফারমেশন মেসেজ দেখাবে। লগক্যাট (Logcat) দেখুন হিপ সাইজ ৪KB অতিক্রম করলে ওয়ার্নিং পাবেন।

ব্যবহার নির্দেশনা
- শুধু ডিবাগিংয়ের জন্য: এই API প্রোডাকশন কোডে থাকা উচিত নয়।
- মান বেছে নেওয়া: অ্যাপের নরমাল হিপ ইউজেজ দেখে (Profiler-এ) একটি যুক্তিসঙ্গত থ্রেশহোল্ড (যেমন ৫০MB, ১০০MB) সেট করুন।
- ক্লিয়ার করা:
clearWatchHeapLimit()কল করে লিমিট সরানো যায় (পূর্বের আর্টিকেল ID 1006061191)। - অ্যাল্টারনেটিভ: Android Studio Memory Profiler (View → Tool Windows → Profiler) ব্যবহার করুন — এটি রিয়েল-টাইম হিপ ডাম্প, অ্যালোকেশন ট্র্যাকিং, লিক ডিটেকশন দেয়।