Tôi đang chuyển một trò chơi được viết bằng C++ sang Android bằng NDK. Tôi cần phải biết bao nhiêu bộ nhớ nó tiêu thụ trong khi chạy. Tôi đang tìm cách lập trình để tìm cách sử dụng bộ nhớ của ứng dụng Android được viết bằng C++.Cách tìm bộ nhớ sử dụng ứng dụng Android của tôi được viết C++ bằng NDK
Trả lời
Trong Java, bạn có thể kiểm tra bộ nhớ có nguồn gốc phân bổ/sử dụng với:
Debug.getNativeHeapAllocatedSize()
Debug.getNativeHeapSize()
Xem:
http://developer.android.com/reference/android/os/Debug.html#getNativeHeapAllocatedSize%28%29
http://developer.android.com/reference/android/os/Debug.html#getNativeHeapSize%28%29
Hai chức năng dựa trên câu trả lời JonnyBoy của.
static long getNativeHeapAllocatedSize(JNIEnv *env)
{
jclass clazz = (*env)->FindClass(env, "android/os/Debug");
if (clazz)
{
jmethodID mid = (*env)->GetStaticMethodID(env, clazz, "getNativeHeapAllocatedSize", "()J");
if (mid)
{
return (*env)->CallStaticLongMethod(env, clazz, mid);
}
}
return -1L;
}
static long getNativeHeapSize(JNIEnv *env)
{
jclass clazz = (*env)->FindClass(env, "android/os/Debug");
if (clazz)
{
jmethodID mid = (*env)->GetStaticMethodID(env, clazz, "getNativeHeapSize", "()J");
if (mid)
{
return (*env)->CallStaticLongMethod(env, clazz, mid);
}
}
return -1L;
}
Trên thực tế, các phương thức java này là các phương thức gốc. Theo http://androidxref.com/source/xref/frameworks/base/core/jni/android_os_Debug.cpp (cpp-source), bạn có thể sử dụng 'mallinfo()' và sau đó đọc các giá trị cho 'uordblks' (' getNativeHeapAllocatedSize() ') và' usmblks' ('getNativeHeapSize()') –
@ super-qua, Tank Bạn rất nhiều! – CAMOBAP
Debug.getNativeHeapAllocatedSize()
và Debug.getNativeHeapSize()
lại thông tin về cấp phát bộ nhớ được thực hiện bởi malloc()
và có liên quan chức năng chỉ. Bạn có thể dễ dàng phân tích cú pháp /proc/self/statm
từ C++ và nhận số liệu VmRSS.
- 1. Android NDK - chỉ viết bằng C/C++
- 2. Cách sử dụng GLM trong ứng dụng NDK của Android
- 3. Sử dụng C++ với Android ndk/jni
- 4. Làm cách nào để nhận được thông báo "printf" được viết bằng ứng dụng NDK?
- 5. Cách mở camera bằng cách sử dụng Android NDK
- 6. Cách sử dụng bộ nhớ của mỗi ứng dụng Pool
- 7. Tôi cần trợ giúp tìm rò rỉ bộ nhớ của mình bằng cách sử dụng MAT
- 8. Cách sử dụng whatsapp từ ứng dụng Android của tôi?
- 9. Cách sử dụng chuỗi C++ 0x trong Android NDK?
- 10. Tìm mức sử dụng CPU của ứng dụng trên Android
- 11. Android - Tại sao ứng dụng của tôi sử dụng khoảng 40MB quy trình nền được lưu trong bộ nhớ cache?
- 12. Liên kết FFTW với ứng dụng NDK của Android
- 13. Sử dụng bộ nhớ C#
- 14. Mô phỏng bộ nhớ thấp bằng cách sử dụng C++
- 15. Tôi làm cách nào để xóa bộ nhớ cache của ứng dụng Android?
- 16. Cách xác định mức sử dụng bộ nhớ trong ứng dụng .NET của tôi
- 17. Hạn chế sử dụng bộ nhớ của ứng dụng .net
- 18. Android - sử dụng bộ nhớ/CPU
- 19. Bộ nhớ trong của Android khi cập nhật ứng dụng
- 20. Viết ứng dụng Android trong C# (Xamarin)
- 21. hết lỗi bộ nhớ, lỗi ứng dụng của tôi?
- 22. Android: Cách tạo tệp nội dung trò chơi có thể đọc được từ mã C++ bằng cách sử dụng ndk
- 23. Cách tìm rò rỉ bộ nhớ trong ứng dụng Phonegap
- 24. Android: xây dựng ứng dụng GUI gốc với NDK?
- 25. Sử dụng bộ nhớ ứng dụng .NET - bộ nhớ không được sử dụng .NET và bộ nhớ không được quản lý
- 26. Sử dụng bộ nhớ của OSX bằng cách sử dụng Ruby
- 27. Sử dụng C thư viện trong Android trên NDK
- 28. Làm cách nào để ứng dụng của tôi có thể được viết trong C#?
- 29. Cách sử dụng Crypto ++ với Jni hoặc NDK cho ứng dụng Android
- 30. Gỡ lỗi ứng dụng gốc của Android NDK
một cách là để ghi đè lên 'new' và' điều hành DELETE' và làm một số sổ sách kế toán. – user1095108