অ্যান্ড্রয়েডে বর্তমান মেমরির ব্যবহার কীভাবে পাবেন?


108

আমি / proc / meminfo এবং পার্সড কমান্ড প্রতিক্রিয়া ব্যবহার করেছি ow তবে এটির ফলাফলটি দেখায় যে:

মেমোটোটাল: 94348 কেবি মেমরি ফ্রি: 5784 কেবি

উপায়। এটি দেখায় যে এখানে কেবল 5MB ফ্রি মেমরি রয়েছে। অ্যান্ড্রয়েড মোবাইল দিয়ে এটি কি সম্ভব? আমার মোবাইলে কেবল 5-6 টি অ্যাপ্লিকেশন ইনস্টল করা আছে এবং অন্য কোনও কাজ চলছে না। তবে এখনও এই কমান্ডটি দেখায় যে খুব কম ফ্রি মেমরি রয়েছে।

কেউ কি এই ব্যাখ্যা করতে পারেন? বা অ্যান্ড্রয়েডে মেমরির ব্যবহার পাওয়ার কোনও অন্য উপায় নেই?


2
আপনি কি প্রতি ডিভাইস, বা প্রতি অ্যাপ্লিকেশনটি ফ্রি মেমরি দেখার চেষ্টা করছেন? যদি প্রতি অ্যাপ্লিকেশন হয়, তবে এটি হিপ এ-লাতে গণনা করা দরকার Debug.getNativeHeapFreeSize()
ইগোরগানাপলস্কি

1
বিনামূল্যে মেমরি (RAM) এর নিরূপণ করার জন্য ব্যবহার / proc / meminfo তোমাদের সমষ্টিগত পেতে আছে MemFree , বাফার , সঞ্চিত পাতা এবং SwapCached । অ্যান্ড্রয়েড দ্বারা সরবরাহিত এই উদ্দেশ্যে একটি এপিআই রয়েছে যা এপিআই 16 এবং ওয়ার্ডগুলিতে কাজ করে। আপনি যদি পুরানো API গুলি লক্ষ্য করে থাকেন তবে মেমিনফো সহায়ক।
এবি

উত্তর:


174

সতর্কতা: এই উত্তরটি ডিভাইসের মেমরির ব্যবহার / উপলভ্য পরিমাপ করে। আপনার অ্যাপ্লিকেশনটিতে যা উপলব্ধ তা এটি নয়। আপনার অ্যাপ্লিকেশনটি কী করছে তা পরিমাপ করতে এবং এটি করার জন্য অনুমতি দেওয়া হয়েছে, অ্যান্ড্রয়েড বিকাশকারী এর উত্তর ব্যবহার করুন


অ্যান্ড্রয়েড ডক্স - ক্রিয়াকলাপ ম্যানেজ.মেমরিআইএনফো

  1. parse / proc / meminfo কমান্ড। আপনি এখানে রেফারেন্স কোডটি পেতে পারেন: অ্যান্ড্রয়েডে মেমরির ব্যবহার পান

  2. কোডের নীচে ব্যবহার করুন এবং বর্তমান র্যাম পান:

    MemoryInfo mi = new MemoryInfo();
    ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    activityManager.getMemoryInfo(mi);
    double availableMegs = mi.availMem / 0x100000L;
    
    //Percentage can be calculated for API 16+
    double percentAvail = mi.availMem / (double)mi.totalMem * 100.0;

0x100000L সংখ্যাটির ব্যাখ্যা

1024 bytes      == 1 Kibibyte 
1024 Kibibyte   == 1 Mebibyte

1024 * 1024     == 1048576
1048576         == 0x100000

এটি বেশ স্পষ্ট যে সংখ্যাটি বাইট থেকে মেবিবাইটে রূপান্তর করতে ব্যবহৃত হয়

PS: আমাদের একবারে মোট স্মৃতি গণনা করতে হবে। সুতরাং আপনার কোডে একবার পয়েন্ট 1 কল করুন এবং তারপরে, আপনি পুনরাবৃত্তভাবে 2 পয়েন্টের কোড কল করতে পারেন।


আমি মেমরির আকারটি যাচাই করতে চাই the মেমরিআইএনফো কী?
পাইরাবা

পিরাবা, এর অ্যান্ড্রয়েড এপিআই ক্লাস। এটি এখানে বিকাশকারী.অ্যান্ড্রয়েড . com/ references/android/ app/… দেখুন
বাদল

@ সঞ্জয় জোশি এটি কারণ অ্যাভেলমেম ভেরিয়েবলটিতে বাইটে মেমরি থাকে। 1024 বাইট সমান 1 কিলোবাইট এবং 1024 কিলোবাইট সমান 1 মেগাবাইট। সুতরাং 1024 * 1024 সমান 1048576
রল্ফ ツ

2
উপরে দ্বিগুণ রূপান্তর করুন, অন্যথায় শতাংশ 0
নীলনথ

1
@ রোল্ফ - দুঃখিত তবে 1024 বাইট সমান একটি কিবিবাইট এবং 1024 কিবিবাইট হ'ল একটি মবিবাইট। কিলো এবং মেগা দশমিক উপসর্গ। 1000 বাইট = 1 কিলোবাইট। উত্তরে এটিও ভুল ব্যাখ্যা করা হয়েছে।
জ্যাকসঅনএফ 1

88

আপনি কী মেমরি ক্যোয়ারী পেতে চান তা আপনার সংজ্ঞার উপর নির্ভর করে।


সাধারণত, আপনি হ্যাপ মেমরির স্থিতি জানতে চান, কারণ এটি যদি খুব বেশি মেমরি ব্যবহার করে তবে আপনি ওওএম পান এবং অ্যাপটি ক্র্যাশ করে।

এর জন্য, আপনি পরবর্তী মানগুলি পরীক্ষা করতে পারেন:

final Runtime runtime = Runtime.getRuntime();
final long usedMemInMB=(runtime.totalMemory() - runtime.freeMemory()) / 1048576L;
final long maxHeapSizeInMB=runtime.maxMemory() / 1048576L;
final long availHeapSizeInMB = maxHeapSizeInMB - usedMemInMB;

যত বেশি "ব্যবহৃত মেমআইএনএমবি" ভেরিয়েবল "ম্যাক্সহ্যাপসাইজআইএনএমবি" এর কাছাকাছি আসে ততই availHeapSizeInMBশূন্যের কাছাকাছি যায় , আপনি ওওএমকে আরও কাছাকাছি পাবেন। (মেমরি খণ্ডিত হওয়ার কারণে আপনি এটি শূন্যে পৌঁছানোর আগে OOM পেতে পারেন))

এটি মেমরির ব্যবহারের ডিডিএমএস সরঞ্জামটি দেখায়।


বিকল্পভাবে, আসল র‌্যামের ব্যবহার রয়েছে যা পুরো সিস্টেমটি কতটা ব্যবহার করে - এটি গণনা করার জন্য গৃহীত উত্তর দেখুন ।


আপডেট: যেহেতু অ্যান্ড্রয়েড ও আপনার অ্যাপ্লিকেশনটি দেশীয় র‌্যামও তৈরি করে (কমপক্ষে বিটম্যাপস স্টোরেজের জন্য, যা সাধারণত বিশাল মেমরির ব্যবহারের মূল কারণ), এবং কেবল গাদা নয়, জিনিসগুলি পরিবর্তিত হয়েছে এবং আপনি কম OOM পান (কারণ এটি গাদাতে আর বিটম্যাপ থাকে না, এখানে চেক করুন ) তবে আপনার মেমরি ফুটো হওয়ার সন্দেহ থাকলে আপনার এখনও মেমরির ব্যবহারের দিকে নজর রাখা উচিত। অ্যান্ড্রয়েড ও তে, যদি আপনার মেমরি ফুটো থাকে যা পুরানো সংস্করণগুলিতে OOM এর কারণ হতে পারে তবে মনে হয় আপনি এটি ধরতে সক্ষম না হয়ে এটি ক্র্যাশ হয়ে যাবে। মেমরির ব্যবহারের জন্য কীভাবে চেক করবেন তা এখানে:

val nativeHeapSize = Debug.getNativeHeapSize()
val nativeHeapFreeSize = Debug.getNativeHeapFreeSize()
val usedMemInBytes = nativeHeapSize - nativeHeapFreeSize
val usedMemInPercentage = usedMemInBytes * 100 / nativeHeapSize

তবে আমি বিশ্বাস করি আইডিইর প্রোফাইলার ব্যবহার করা সবচেয়ে ভাল হতে পারে, যা গ্রাফ ব্যবহার করে রিয়েল টাইমে ডেটা দেখায়।

সুতরাং অ্যান্ড্রয়েড ও-তে সুসংবাদটি হ'ল অনেক বড় বিটম্যাপস সংরক্ষণের OOM এর কারণে ক্র্যাশ হওয়া অনেক বেশি শক্ত, তবে খারাপ খবরটি এটি আমি মনে করি না রানটাইম চলাকালীন এই জাতীয় ঘটনাটি ধরা সম্ভব।


সম্পাদনা: Debug.getNativeHeapSize()সময়ের সাথে সাথে পরিবর্তনগুলি মনে হচ্ছে , কারণ এটি আপনাকে আপনার অ্যাপ্লিকেশনটির জন্য মোট সর্বোচ্চ মেমরি দেখায়। সুতরাং সেই অ্যাপ্লিকেশনগুলি কেবলমাত্র প্রোফাইলারের জন্য ব্যবহৃত হয়, আপনার অ্যাপটি কতটা ব্যবহার করছে তা দেখানোর জন্য।

আপনি যদি আসল মোট এবং উপলব্ধ নেটিভ র্যাম পেতে চান তবে এটি ব্যবহার করুন:

val memoryInfo = ActivityManager.MemoryInfo()
(getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager).getMemoryInfo(memoryInfo)
val nativeHeapSize = memoryInfo.totalMem
val nativeHeapFreeSize = memoryInfo.availMem
val usedMemInBytes = nativeHeapSize - nativeHeapFreeSize
val usedMemInPercentage = usedMemInBytes * 100 / nativeHeapSize
Log.d("AppLog", "total:${Formatter.formatFileSize(this, nativeHeapSize)} " +
        "free:${Formatter.formatFileSize(this, nativeHeapFreeSize)} " +
        "used:${Formatter.formatFileSize(this, usedMemInBytes)} ($usedMemInPercentage%)")

কি দারুন. এত সহজ, তবুও সত্য!
Ran

আসল স্মৃতি ব্যবহার কি? সুতরাং ব্যবহৃতMemInMB এই ক্ষেত্রে অ্যাপটির আসল মেমরি ব্যবহার নয়? আমি যখন এই কোডটি ব্যবহার করি তখন এটি আমার ব্যবহারটি 50 এমবি এর মতো দেখায় তবে আমি যখন ফোন সেটিংগুলিতে যাই এবং সেখানে মেমরির ব্যবহার দেখি, তখন আমার অ্যাপ্লিকেশনটি 100 এমবি দেখায়। কেন এই পার্থক্য?
ব্যাটমাসি

1
@ ব্যাটমাসি হিপ মেমরি অ্যাপ্লিকেশনটির মোট মেমরি ব্যবহারের একটি অংশ। নেটিভ মেমরির ব্যবহারও রয়েছে যা সাধারণত ওয়েবপৃষ্ঠা, গেমস এবং কিছু ভারী উদ্দেশ্যে ব্যবহৃত হয়। সাধারণত অ্যাপ্লিকেশনগুলিকে কেবল হিপ মেমরির দিকে নজর দেওয়া প্রয়োজন, কারণ এটি ডিভাইসের র‍্যামের তুলনায় বেশ কম, এবং যদি এটি পৌঁছে যায় তবে অ্যাপটি ক্রাশ হবে (প্রচুর পরিমাণে ফ্রি র‌্যাম থাকলেও)।
অ্যান্ড্রয়েড বিকাশকারী

এটি একটি নিখুঁত কোড স্নিপেট, OOM যাচাইয়ের জন্য খুব দরকারী, অনেক ধন্যবাদ thanks
aolphn

@ আলফাএফ আপনাকে ধন্যবাদ, তবে অ্যান্ড্রয়েড ও-তে জিনিসগুলি পরিবর্তিত হয়েছে there আমি সেখানে অবস্থার সাথে মেলে উত্তরটি আপডেট করেছি।
অ্যান্ড্রয়েড বিকাশকারী

29

বর্তমানে চলমান অ্যাপ্লিকেশনটির মেমরির ব্যবহার গণনা করার একটি উপায় এখানে :

public static long getUsedMemorySize() {

    long freeSize = 0L;
    long totalSize = 0L;
    long usedSize = -1L;
    try {
        Runtime info = Runtime.getRuntime();
        freeSize = info.freeMemory();
        totalSize = info.totalMemory();
        usedSize = totalSize - freeSize;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return usedSize;

}

4
এটি একটি সহজ পদ্ধতি, তবে এটি ডকুমেন্টেশনে যেমন নির্দেশিত হয়েছিল, রানটাইম ক্লাস ফ্রিমেমোরি () পদ্ধতিটি বর্তমান প্রোগ্রাম বা অ্যাপ্লিকেশনটির জন্য উপলভ্য মেমরিটি ফিরিয়ে দেয়। সুতরাং ব্যবহার করার সময় যে সচেতন হতে হবে।
আকসেল ফাতেহ

2
@ পিটার - হ্যাঁ, এটি "ভুল" কারণ এটির চেয়ে অন্যরকম প্রশ্নের উত্তর দেয়। অন্যদিকে, অ্যাপ্লিকেশন বিকাশকারীকে সাধারণত যা জানার প্রয়োজন এটি তার জন্য "সঠিক": এটি খুব কমই ডিভাইসে মেমরির সামগ্রিক অবস্থা কী তা বিবেচনা করে তা বিবেচনা করে - যদি ব্যবহারকারী প্রচুর পরিমাণে অ্যাপ্লিকেশন চালায় তবে ওএসকে বেশিরভাগের ব্যবহার করা উচিত এর স্মৃতিশক্তি - অন্যথায় এটি অকার্যকর হচ্ছে। ওএসকে স্বীকৃত উত্তর কী দেয় তা জানতে হবে, সম্প্রতি ব্যবহার করা হয়নি এমন অ্যাপ্লিকেশনগুলিকে কখন হত্যা করা শুরু করবেন তা জানতে। তবে কোনও অ্যাপ্লিকেশন প্রোগ্রামারকে এই উত্তরটি (অ্যান্ড্রয়েড বিকাশকারীদের অনুরূপ উত্তর) আপনাকে কী বলে, বনাম রানটাইম.ম্যাক্স মেমরি জানতে হবে।
নির্মাতা

এই সমাধানগুলি কেবল রানটাইম দ্বারা অ্যাপ্লিকেশনটিতে প্রকাশিত মেমরির উপরে কাজ করে। এটি ওপি প্রয়োজনীয় হিসাবে পুরো সিস্টেমের মেমরির বিষয়ে অন্তর্দৃষ্টি দেয় না।
এবি

অনেক ডিভাইসে (উদাঃ জিয়াওমি) Runtime.freeMemory()0 দেয় এবং Runtime.totalMemory()বর্তমানে বরাদ্দ মেমরিটি কেবল ফেরত দেয়।
আর্টেমি

17

অন্য উপায় (বর্তমানে আমার জি 1 এ 25 এমবি নিখরচায় দেখানো হচ্ছে):

MemoryInfo mi = new MemoryInfo();
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
activityManager.getMemoryInfo(mi);
long availableMegs = mi.availMem / 1048576L;

আরে অ্যালেক্স, আপনার সহায়তার জন্য অনেক ধন্যবাদ! আরও 1 টি প্রশ্ন। এই কোডটি আমাকে উপলব্ধ র‌্যাম দেয়। আমি টোটাল র‌্যামও প্রদর্শন করতে চাই। কীভাবে পাব?
বাদল

@ বাদল আমি এর জন্য জাভা এপিআই জানি না। পার্সিং / প্রোক / মেমিনফোতে লেগে থাকুন।
yanchenko

12

লিনাক্সের মেমরি পরিচালনার দর্শনটি হ'ল "ফ্রি মেমরি হ'ল মেমরি"।

আমি ধরে নিয়েছি যে পরবর্তী দুটি লাইন "বাফার্স" এ কত স্মৃতি রয়েছে এবং "ক্যাশেড" কত তা দেখিয়ে দেবে। যদিও উভয়ের মধ্যে পার্থক্য রয়েছে (দয়া করে সেই পার্থক্যটি কি তা জিজ্ঞাসা করবেন না :) তারা উভয়ই ফাইল ডেটা এবং মেটাডেটা ক্যাশে ব্যবহৃত মেমরির পরিমাণ প্রায় যোগ করে।

লিনাক্স সিস্টেমে মেমরি মুক্ত করার জন্য আরও কার্যকর গাইড হ'ল free(1)কমান্ড; আমার ডেস্কটপে, এটি এই জাতীয় তথ্যের প্রতিবেদন করে:

$ ফ্রি -মি
             মোট ব্যবহৃত নিখরচায় ভাগ করা বাফার ক্যাশেড
মেমো: 5980 1055 4924 0 91 374
- / + বাফার / ক্যাশে: 589 5391
অদলবদল: 6347 0 6347

+/- বাফার / ক্যাশে: লাইনটি ম্যাজিক লাইন, এটি রিপোর্ট করে যে আমি প্রায় 589 মেগা সক্রিয়ভাবে প্রয়োজনীয় প্রক্রিয়া মেমরি পেয়েছি এবং প্রায় 5391 ম্যাগ 'ফ্রি' মেমরি পেয়েছি, এই অর্থে যে 91 + 374 মেগাবাইট মেমরিটি অন্য কোথাও আরও লাভজনকভাবে ব্যবহার করতে পারলে বাফারস / ক্যাশেড মেমরিটিকে ফেলে দেওয়া যেতে পারে।

(আমার মেশিনটি প্রায় তিন ঘন্টা ধরে দাঁড়িয়ে আছে, স্ট্যাকওভারফ্লো ব্যতীত আর কিছুই করেনি, এ কারণেই আমার এত নিখরচায় স্মৃতি রয়েছে))

অ্যান্ড্রয়েড যদি শিপ free(1)না করে তবে আপনি নিজেই গণিতটি /proc/meminfoফাইলের সাথে করতে পারেন ; আমি ঠিক free(1)আউটপুট ফর্ম্যাট পছন্দ করি । :)


1
@ ইগোর, তারপরে আপনি এটির cat /proc/meminfoবদলে চাইবেন । এটি আরও বিস্তারিত, কিন্তু MemFreeBuffers, এবং Cachedসম্ভবত সবচেয়ে গুরুত্বপূর্ণ লাইন।
sarnold

6

আমি কয়েকটি লেখা উল্লেখ করি।

রেফারেন্স:

এই getMemorySize () পদ্ধতিটি মোট এবং নিখরচায় মেমরির আকারযুক্ত মেমোরি সাইজে ফিরে আসে।
আমি এই কোডটি পুরোপুরি বিশ্বাস করি না।
এই কোডটি LG G3 cat.6 (v5.0.1) এ পরীক্ষা করছে

    private MemorySize getMemorySize() {
        final Pattern PATTERN = Pattern.compile("([a-zA-Z]+):\\s*(\\d+)");

        MemorySize result = new MemorySize();
        String line;
        try {
            RandomAccessFile reader = new RandomAccessFile("/proc/meminfo", "r");
            while ((line = reader.readLine()) != null) {
                Matcher m = PATTERN.matcher(line);
                if (m.find()) {
                    String name = m.group(1);
                    String size = m.group(2);

                    if (name.equalsIgnoreCase("MemTotal")) {
                        result.total = Long.parseLong(size);
                    } else if (name.equalsIgnoreCase("MemFree") || name.equalsIgnoreCase("Buffers") ||
                            name.equalsIgnoreCase("Cached") || name.equalsIgnoreCase("SwapFree")) {
                        result.free += Long.parseLong(size);
                    }
                }
            }
            reader.close();

            result.total *= 1024;
            result.free *= 1024;
        } catch (IOException e) {
            e.printStackTrace();
        }

        return result;
    }

    private static class MemorySize {
        public long total = 0;
        public long free = 0;
    }

আমি জানি যে প্যাটার্ন ডট কম ফাইলটি () ব্যয়বহুল তাই আপনি এটির কোডটি ক্লাস মেম্বারে স্থানান্তর করতে পারেন।


3

আমি অ্যান্ড্রয়েড উত্স গাছের দিকে তাকালাম।

Com.android.server.am এর ভিতরে। ক্রিয়াকলাপব্যবস্থাপনা পরিষেবা। জাভা (অ্যান্ড্রয়েড.অ্যাপ দ্বারা অভ্যন্তরীণ পরিষেবা উন্মুক্ত Ac এক্টিভিটি ম্যানেজার )।

public void getMemoryInfo(ActivityManager.MemoryInfo outInfo) {
    final long homeAppMem = mProcessList.getMemLevel(ProcessList.HOME_APP_ADJ);
    final long hiddenAppMem = mProcessList.getMemLevel(ProcessList.HIDDEN_APP_MIN_ADJ);
    outInfo.availMem = Process.getFreeMemory();
    outInfo.totalMem = Process.getTotalMemory();
    outInfo.threshold = homeAppMem;
    outInfo.lowMemory = outInfo.availMem < (homeAppMem + ((hiddenAppMem-homeAppMem)/2));
    outInfo.hiddenAppThreshold = hiddenAppMem;
    outInfo.secondaryServerThreshold = mProcessList.getMemLevel(
            ProcessList.SERVICE_ADJ);
    outInfo.visibleAppThreshold = mProcessList.getMemLevel(
            ProcessList.VISIBLE_APP_ADJ);
    outInfo.foregroundAppThreshold = mProcessList.getMemLevel(
            ProcessList.FOREGROUND_APP_ADJ);
}

ভিতরে Android.os। Process.java

/** @hide */
public static final native long getFreeMemory();

/** @hide */
public static final native long getTotalMemory();

এটি অ্যান্ড্রয়েড_ইটেল_প্রসেস. cpp থেকে জেএনআই পদ্ধতি কল করে

উপসংহার

মেমোরিআইএনফো.এভেলমেম = মেমফ্রি + ক্যাচড ইন / প্রোক / মেমিনফো।

মন্তব্য

টোটাল মেমরি এপিআই স্তরের 16 এ যুক্ত করা হয়েছে।


1

আপনি ডিডিএমএস সরঞ্জামও ব্যবহার করতে পারেন যা অ্যান্ড্রয়েড এসডিকে এটির একটি অংশ। এটি জাভা কোড এবং স্থানীয় সি / সি ++ কোডের মেমরির বরাদ্দ পেতে সহায়তা করে।


0
public static boolean isAppInLowMemory(Context context) {
    ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
    ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
    activityManager.getMemoryInfo(memoryInfo);

    return memoryInfo.lowMemory;
}

0
final long usedMemInMB=(runtime.totalMemory() - runtime.freeMemory()) / 1048576L;
final long maxHeapSizeInMB=runtime.maxMemory() / 1048576L;
final long availHeapSizeInMB = maxHeapSizeInMB - usedMemInMB;

এটি একটি অদ্ভুত কোড। এটি ম্যাক্সেমোরি - (টোটাল মেমোরি - ফ্রি মেমোরি) প্রদান করে। যদি ফ্রি-মেমোরি 0 সমান হয়, তবে কোডটি ম্যাক্সেমোরি - টোটাল মেমরি ফিরিয়ে দেবে, সুতরাং এটি আরও বেশি বা সমান 0 করতে পারে Why কেন ফ্রিমেমোরি ব্যবহার করা হয়নি?


0

আপনার অ্যাপ্লিকেশনটির মেমরির ব্যবহার দেখার আরও একটি উপায় এখানে রয়েছে:

adb shell dumpsys meminfo <com.package.name> -d

নমুনা আউটপুট:

Applications Memory Usage (kB):
Uptime: 2896577 Realtime: 2896577

** MEMINFO in pid 2094 [com.package.name] **
                   Pss  Private  Private  Swapped     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap     3472     3444        0        0     5348     4605      102
  Dalvik Heap     2349     2188        0        0     4640     4486      154
 Dalvik Other     1560     1392        0        0
        Stack      772      772        0        0
    Other dev        4        0        4        0
     .so mmap     2749     1040     1220        0
    .jar mmap        1        0        0        0
    .apk mmap      218        0       32        0
    .ttf mmap       38        0        4        0
    .dex mmap     3161       80     2564        0
   Other mmap        9        4        0        0
      Unknown       76       76        0        0
        TOTAL    14409     8996     3824        0     9988     9091      256

 Objects
               Views:       30         ViewRootImpl:        2
         AppContexts:        4           Activities:        2
              Assets:        2        AssetManagers:        2
       Local Binders:       17        Proxy Binders:       21
    Death Recipients:        7
     OpenSSL Sockets:        0

 SQL
         MEMORY_USED:        0
  PAGECACHE_OVERFLOW:        0          MALLOC_SIZE:        0

সামগ্রিক মেমরি ব্যবহারের জন্য:

adb shell dumpsys meminfo

https://developer.android.com/studio/command-line/dumpsys#meminfo

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.