Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

एंड्रॉइड में हीप वॉच लिमिट कैसे सेट करें?

एंड्रॉइड में ActivityManager से हीप वॉच लिमिट सेट करना

यह ट्यूटोरियल दिखाता है कि ActivityManager.setWatchHeapLimit() का उपयोग करके ऐप की हीप उपयोग सीमा कैसे सेट करें - जब हीप इस सीमा को पार करता है तो सिस्टम नोटिफाई कर सकता है।

चरण 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: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="20sp"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:padding="16dp" />
</LinearLayout>

चरण 3: MainActivity कोड (java/MainActivity.java)

package com.example.myapplication;

import android.app.ActivityManager;
import android.content.Context;
import android.os.Build;
import android.os.Bundle;
import android.widget.TextView;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    TextView textView;

    @RequiresApi(api = Build.VERSION_CODES.N) // API 24+
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.text);
        
        ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        
        // 4MB हीप वॉच लिमिट सेट करें
        long limitBytes = 4 * 1024 * 1024; // 4MB
        activityManager.setWatchHeapLimit(limitBytes);
        
        String info = String.format(
            "हीप वॉच लिमिट सेट: %s\n" +
            "लिमिट बाइट्स: %,d\n" +
            "नोट: यह केवल डिबगिंग/प्रोफाइलिंग के लिए है",
            formatBytes(limitBytes), limitBytes
        );
        
        textView.setText(info);
    }
    
    private String formatBytes(long bytes) {
        if (bytes < 1024) return bytes + " B";
        int exp = (int) (Math.log(bytes) / Math.log(1024));
        String unit = "KMGTPE".charAt(exp-1) + "B";
        return String.format("%.2f %s", bytes / Math.pow(1024, exp), unit);
    }
}

कब उपयोग करें

  • मेमोरी लीक डिबगिंग के दौरान
  • हीप उपयोग पैटर्न समझने के लिए
  • OOM (OutOfMemoryError) से पहले चेतावनी
  • प्रोफाइलिंग सत्र में

महत्वपूर्ण सीमाएं

  • केवल डिबगिंग के लिए - प्रोडक्शन कोड में उपयोग न करें
  • सिस्टम-वाइड सेटिंग - सभी प्रोसेस प्रभावित हो सकते हैं
  • एंड्रॉइड 7.0 (API 24)+ आवश्यक
  • आधुनिक विकल्प: Android Studio Profiler, LeakCanary, Perfetto

संबंधित API

// लिमिट क्लियर करें (पिछला आर्टिकल)
activityManager.clearWatchHeapLimit();

// वर्तमान हीप उपयोग
Debug.MemoryInfo info = new Debug.MemoryInfo();
Debug.getMemoryInfo(info);

// मेमोरी क्लास (अधिकतम हीप प्रति ऐप)
int memClass = activityManager.getMemoryClass(); // MB में

// लार्ज हीप (manifest में android:largeHeap="true")
int largeMemClass = activityManager.getLargeMemoryClass();

बेहतर विकल्प: लाइफसाइकिल-अवेयर मॉनिटरिंग

// Jetpack Lifecycle के साथ
lifecycle.addObserver(new DefaultLifecycleObserver() {
    @Override
    public void onStart(@NonNull LifecycleOwner owner) {
        if (BuildConfig.DEBUG) {
            startHeapMonitoring();
        }
    }
    @Override
    public void onStop(@NonNull LifecycleOwner owner) {
        stopHeapMonitoring();
    }
});

ऐप टेस्ट करें

चलाएं - "हीप वॉच लिमिट सेट: 4.00 MB" दिखेगा। कोई विजुअल परिवर्तन नहीं, यह डिबगिंग API है।

  1. Android पर VPN कैसे सेट अप करें Android पर VPN कैसे सेट अप करें

    क्या आप अपने मोबाइल डिवाइस पर ब्राउज़ करते समय अधिक सुरक्षित रहना चाहते हैं? या सिर्फ Netflix पर क्षेत्र प्रतिबंधों को बायपास करना चाहते हैं? एक VPN (वर्चुअल प्राइवेट नेटवर्क) एक बढ़िया विकल्प है। लेकिन क्या आप Android पर VPN सेट अप कर सकते हैं? यहां बताया गया है कि अपने Android डिवाइस पर मोबाइल VPN

  1. एंड्रॉयड पर कॉल फॉरवर्डिंग कैसे सेट करें एंड्रॉयड पर कॉल फॉरवर्डिंग कैसे सेट करें

    कॉल फॉरवर्डिंग व्यस्त पेशेवर प्रकार की पसंदीदा फोन सुविधा है। प्रो टिप: जब आप फॉरवर्ड कर रहे हों तो सुनिश्चित करें कि फॉरवर्ड किए गए छोर पर जो कोई भी है वह जवाब देता है और जानता है कि आपने ऐसा किया है - यह बहुत सी असहज स्थितियों से बचाता है। इन दिनों बेस्ट कॉल फॉरवर्डिंग ऐप्स ढूंढना पहले से कहीं अध

  1. Android पर डेटा उपयोग सीमा कैसे सेट करें Android पर डेटा उपयोग सीमा कैसे सेट करें

    क्या आप अपने Android डिवाइस पर डेटा उपयोग सीमा सेट करना चाहते हैं? यदि आपके पास अनलिमिटेड डेटा प्लान नहीं है, तो अपने हैंडसेट पर ऐप्स और सेवाओं को प्रतिबंधित किए बिना अपने डेटा को प्रबंधित करना मुश्किल हो सकता है। यदि आपको काम के लिए इंटरनेट की आवश्यकता है, तो यह मोबाइल डेटा के बिना रहना और भी कठिन