27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main
এর পরিবর্তে android-latest-release
ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
নেটিভ মেমরি ব্যবহার ডিবাগ করুন
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
অ্যাড্রেস স্যানিটাইজার: HWASan/ASan
অ্যান্ড্রয়েড প্ল্যাটফর্ম ডেভেলপাররা C/C++ এ মেমরি বাগ খুঁজে পেতে HWAddress Sanitizer (HWASan) ব্যবহার করে।
আপনি ci.android.com ( বিস্তারিত সেটআপ নির্দেশাবলী ) থেকে সমর্থিত পিক্সেল ডিভাইসগুলিতে পূর্বনির্মাণ করা HWASan ছবিগুলি ফ্ল্যাশ করতে পারেন।
যেহেতু অ্যান্ড্রয়েড 8.0 (ওরিও) নন-রুটেড প্রোডাকশন ডিভাইসে অ্যাপ ডিবাগ করতে ASan ব্যবহার করাও সম্ভব। আপনি
ASan উইকিতে নির্দেশাবলী পেতে পারেন।
Heapprofd
Android 10 heaprofd সমর্থন করে, একটি লো-ওভারহেড, স্যাম্পলিং হিপ প্রোফাইলার। heapprofd আপনাকে আপনার প্রোগ্রামে কলস্ট্যাকগুলিতে নেটিভ মেমরি ব্যবহারকে বৈশিষ্ট্যযুক্ত করতে দেয়। আরও তথ্যের জন্য Perfetto ডকুমেন্টেশন সাইটে heaprofd - Android Heap Profiler দেখুন।
Malloc ডিবাগ
স্থানীয় মেমরি সমস্যাগুলির জন্য উপলব্ধ ডিবাগিং বিকল্পগুলির একটি পুঙ্খানুপুঙ্খ বিবরণের জন্য libc কলব্যাক ব্যবহার করে Malloc ডিবাগ এবং নেটিভ মেমরি ট্র্যাকিং দেখুন।
libmemun নাগালযোগ্য
Android এর libmemunreachable হল একটি শূন্য-ওভারহেড নেটিভ মেমরি লিক ডিটেক্টর। এটি একটি অনির্দিষ্ট মার্ক-এন্ড-সুইপ আবর্জনা সংগ্রাহক ব্যবহার করে সমস্ত নেটিভ মেমরির উপর দিয়ে যায়, যেকোনও অপাগ্য ব্লককে ফাঁস হিসাবে রিপোর্ট করে। ব্যবহারের নির্দেশাবলীর জন্য libmemun পৌঁছানোর যোগ্য ডকুমেন্টেশন দেখুন।
Malloc হুক
আপনি যদি নিজের টুল তৈরি করতে চান, তাহলে অ্যান্ড্রয়েডের libc প্রোগ্রাম এক্সিকিউশনের সময় ঘটে যাওয়া সমস্ত বরাদ্দ/ফ্রি কল বাধা দিতেও সমর্থন করে। ব্যবহারের নির্দেশাবলীর জন্য malloc_hooks ডকুমেন্টেশন দেখুন।
Malloc পরিসংখ্যান
অ্যান্ড্রয়েড <malloc.h>
-এ mallinfo(3)
এবং malloc_info(3)
এক্সটেনশন সমর্থন করে। malloc_info
ফাংশনটি Android 6.0 (Marshmallow) এবং উচ্চতর সংস্করণে উপলব্ধ এবং এর XML স্কিমা Bionic-এর <malloc.h>
এ নথিভুক্ত করা হয়েছে।
ডালভিক ডিবাগ মনিটর সার্ভার
ম্যালোক ডিবাগ আউটপুটের একটি গ্রাফিকাল ভিউ পেতে আপনি ডালভিক ডিবাগ মনিটর সার্ভার (DDMS) ব্যবহার করতে পারেন।
DDMS ব্যবহার করতে, প্রথমে এর নেটিভ মেমরি UI চালু করুন:
-
~/.android/ddms.cfg
খুলুন - লাইন যোগ করুন:
native=true
DDMS পুনরায় চালু করার পরে এবং একটি প্রক্রিয়া নির্বাচন করার পরে, আপনি নতুন স্থানীয় বরাদ্দ ট্যাবে স্যুইচ করতে পারেন এবং এটিকে বরাদ্দের একটি তালিকা দিয়ে তৈরি করতে পারেন। এটি বিশেষত মেমরি লিক ডিবাগ করার জন্য দরকারী।
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।"],[],[],null,["# Debug native memory use\n\nAddress Sanitizer: HWASan/ASan\n------------------------------\n\nAndroid platform developers use [HWAddressSanitizer](/docs/security/test/hwasan)\n(HWASan) to find memory bugs in C/C++.\n\nYou can flash prebuilt HWASan images to supported Pixel devices from\n[ci.android.com](https://ci.android.com/builds/branches/aosp-master-with-phones-throttled/grid?) ([detailed setup instructions](https://developer.android.com/ndk/guides/hwasan)).\n\nSince Android 8.0 (Oreo) it's also possible to use ASan to debug apps on non-rooted production devices. You can find instructions on the [ASan wiki](https://github.com/google/sanitizers/wiki/AddressSanitizerOnAndroidO).\n\n\u003cbr /\u003e\n\nHeapprofd\n---------\n\nAndroid 10 supports heapprofd, a low-overhead, sampling heap profiler.\nheapprofd lets you attribute native memory usage to callstacks in your program.\nSee [heapprofd - Android Heap Profiler](https://docs.perfetto.dev/#/heapprofd) on the\n[Perfetto documentation site](https://docs.perfetto.dev/#/)\nfor more information.\n\nMalloc debug\n------------\n\nSee [Malloc\nDebug](https://android.googlesource.com/platform/bionic/+/android16-release/libc/malloc_debug/README.md) and [Native\nMemory Tracking using libc Callbacks](https://android.googlesource.com/platform/bionic/+/android16-release/libc/malloc_debug/README_api.md) for a thorough description of the\ndebugging options available for native memory issues.\n\nlibmemunreachable\n-----------------\n\nAndroid's libmemunreachable is a zero-overhead native memory leak detector.\nIt uses an imprecise mark-and-sweep garbage collector pass over all native memory,\nreporting any unreachable blocks as leaks. See the\n[libmemunreachable\ndocumentation](https://android.googlesource.com/platform/system/memory/libmemunreachable/+/android16-release/README.md) for usage instructions.\n\nMalloc hooks\n------------\n\nIf you want to build your own tools, Android's libc also supports intercepting all\nallocation/free calls that happen during program execution. See the\n[malloc_hooks\ndocumentation](https://android.googlesource.com/platform/bionic/+/android16-release/libc/malloc_hooks/README.md) for usage instructions.\n\nMalloc statistics\n-----------------\n\n\nAndroid supports the [`mallinfo(3)`](http://man7.org/linux/man-pages/man3/mallinfo.3.html)and [`malloc_info(3)`](http://man7.org/linux/man-pages/man3/malloc_info.3.html) extensions to `\u003cmalloc.h\u003e`.\nThe `malloc_info` function is available in Android 6.0 (Marshmallow) and higher and\nits XML schema is documented in Bionic's\n[`\u003cmalloc.h\u003e`](https://android.googlesource.com/platform/bionic/+/android16-release/libc/include/malloc.h).\n\nDalvik Debug Monitor Server\n---------------------------\n\nYou can also use the [Dalvik Debug\nMonitor Server (DDMS)](https://developer.android.com/studio/profile/ddms.html) to obtain a graphical view of Malloc Debug\noutput.\n\nTo use DDMS, first turn on its native memory UI:\n\n1. Open `~/.android/ddms.cfg`\n2. Add the line: `native=true`\n\nUpon relaunching DDMS and selecting a process, you can switch to the new\nnative allocation tab and populate it with a list of allocations. This is\nespecially useful for debugging memory leaks."]]