Android ऐप का हीप साइज (मेमोरी लिमिट) पता करने का तरीका
यह उदाहरण ActivityManager.getMemoryClass() का उपयोग करके डिवाइस पर ऐप को आवंटित अधिकतम हीप मेमोरी (MB में) प्राप्त करने का तरीका दिखाता है।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project चुनें।
चरण 2: लेआउट फ़ाइल (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:padding="8dp"
tools:context=".MainActivity">
<Button
android:id="@+id/btnHeapSize"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Detect Heap Size" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:textStyle="bold" />
</LinearLayout>
चरण 3: MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.app.ActivityManager;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import java.util.Objects;
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
}
public void HeapSize(View view) {
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
int memoryClass = Objects.requireNonNull(activityManager).getMemoryClass(); // MB में
textView.setText("हीप साइज: " + memoryClass + " MB");
}
}
चरण 4: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
अधिक विस्तृत मेमोरी जानकारी के लिए
// रनटाइम मेमोरी जानकारी Runtime runtime = Runtime.getRuntime(); long maxMemory = runtime.maxMemory(); // अधिकतम हीप (बाइट्स) long totalMemory = runtime.totalMemory(); // वर्तमान आवंटित हीप long freeMemory = runtime.freeMemory(); // हीप में फ्री स्पेस // ActivityManager से अधिक जानकारी ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo(); activityManager.getMemoryInfo(memoryInfo); long availMem = memoryInfo.availMem; // सिस्टम में उपलब्ध मेमोरी
नोट
getMemoryClass()डिवाइस अनुसार अलग होता है (आमतौर पर 128MB से 512MB+ तक)।- बड़ी इमेज/वीडियो प्रोसेसिंग के लिए
android:largeHeap="true"मैनिफेस्ट में जोड़ सकते हैं (सावधानी से उपयोग करें)। - मेमोरी लीक ढूंढने के लिए Android Profiler या LeakCanary उपयोग करें।