how fix memory leak android apps using ddms tool
Як протестувати та виправити витік пам’яті для додатків Android:
Оптимізація пам’яті - це більший виклик для будь-якого розробника перед тим, як перенести програму в магазин ігор.
Запитання та відповіді на інтерв’ю для сервера SQL
Продуктивність програми настільки ж важлива, як і її функціональність. Ця стаття заснована на Аналіз купи програми через DDMS (Dalvik Debug Monitor Service).
Більшість програм для Android працюють на JAVA і також мають проблеми з потоками.
Важлива примітка - Інструмент Dalvik Debug Monitor Server (DDMS) доступний лише в Android Studio 3.0 та нижчих версіях. Якщо ви використовуєте Studio 3.0 і новіші версії, переконайтеся, що використовуєте Android Profiler для профілі процесора, пам’яті та використання мережі.
Цей підручник допоможе вам зрозуміти та оптимізувати витік пам’яті для програми Android за допомогою інструмента DDMS. Аналіз пам’яті дасть уявлення про пам’ять, а оптимізація значень пам’яті призведе до меншого витоку пам’яті.
Що ви дізнаєтесь:
- Загальновживані терміни
- DDMS (Dalvik Debug Monitor Server)
- Кроки до запуску DDMS через ADT
- Кроки до запуску DDMS через Android Studio
- Висновок
- Рекомендована література
Загальновживані терміни
Нижче наведено деякі загальні терміни, які ми будемо використовувати в цьому проекті:
- Купи - Це пам'ять середовища виконання, яка доступна для розподілу та динамічно розподіляється. Це залежить від платформи.
- Купи Дальвік - Купа Dalvik - це поєднання класів та даних за допомогою зиготи.
- Зигота - Zygote допомагає запускати процеси додатків при завантаженні системи.
- PSS - Це кількість сторінок у пам’яті для процесу, яка вимірюється в КБ.
- Вивіз сміття - Вивіз сміття відстежує всі об’єкти, які все ще використовуються, і позначає решту як Сміття.
DDMS (Dalvik Debug Monitor Server)
Це інструмент, який допомагає аналізувати моніторинг продуктивності виконання. Це також допомагає у профілюванні та налаштуванні програм.
Основні послуги, пропоновані DDMS
- Загальна статистика розподілу об’єктів купи
- Статистика потоків додатків
- Пристрій Захоплення екрану
- Провідник файлів пристрою
- Вхідний дзвінок та перевірка SMS
- Перевірка даних про місцезнаходження
- Мережева статична консоль
- Logcat (детальний опис, налагодження, підтвердження, помилка)
Витік пам'яті:
Додаток утримує Об’єкт протягом тривалого часу, навіть після того, як служить цілі, і цей об’єкт не збирається GC.
Виявлення витоку пам'яті:
Як правило, програма Android показує діалогове вікно спливаючого вікна для програми, яка не відповідає або, в гіршому випадку, виключається з пам'яті. Кожен пристрій має обмежений розмір купи, і коли програма намагається отримати додаткову пам’ять, спостерігаються винятки.
Для того, щоб перевірити загальний розмір купи Android-пристрою, ми можемо використовувати наведені нижче команди:
- cat / proc / meminfo | grep MemTotal
- adb –d тягнути /system/build.prop
Кроки до запуску DDMS через ADT
Крок 1: Запустіть пакет adt (легко доступний тут ) Або встановіть пакет ADT для конфігурації Windows, використовуючи посилання нижче.
windows 32: https://dl.google.com/android/adt/adt-bundle-windows-x86-20140702.zip
Windows 64: https://dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip
Крок No2: Клацніть на SDK
Крок No3: Клацніть на інструменти
Крок No4: Клацніть на monitor.bat (DDMS)
Примітка: Для аналізу купи потрібен apk для налагодження.
Після успішної інсталяції набору ADT перейдіть до командного рядка (встановіть шлях, якщо adb не розпізнається як внутрішня або зовнішня команда).
Перевірте пристрій, підключений до системи за допомогою команди adb (пристрої adb). Після підключення пристрою його підключають до екрана DDMS із назвою пакета програми.
Кроки до запуску DDMS через Android Studio
Studio -> Інструменти -> Android -> Монітор пристрою Android -> Натисніть кнопку DDMS у меню.
Кроки до аналізу купи
- Виберіть назву пакета програми, яка відображається на екрані DDMS.
- Виберіть піктограму купи оновлення.
- Натисніть на причину GC перед тим, як приймати значення для кожної дії.
- Тепер у командному рядку запустіть команду - оболонка adb dumpsys meminfo та натисніть enter.
- Значення відображатимуться в командному рядку.
- PSS total, native, dalvik, size heap, heap free, heap-allocate - це значення, які допоможуть розробникам налагоджувати збої пам'яті.
- Краще представлення даних полегшить роботу розробнику.
- Дані мають бути такими:
- Значення об'єктів після натискання на причину GC.
- Загальний PSS
- Рідна купа - розмір купи
- Далвікова купа - розмір купи
- Загальний розмір купи
- Рідна куча - купи купи
- Далвік куча- купа алока
- Загальний розмір купи
- Рідна купа - куча безкоштовно
- Далвік купи - купа безкоштовно
- Всього куча вільна
- Об'єкти (після натискання на причину GC від DDMS)
- % використано% безкоштовно
Ідеальне тестування: Для кращого аналізу додатків спробуйте виконати різні сценарії, тримаючи програму у фоновому режимі, і, потрапивши на одну сторінку, виконайте повний потік цих загальновживаних сценаріїв.
Спробуйте використовувати пристрої нижчого класу, оскільки найчастіший збій спостерігається через пам’ять, яка є винятком Out Of Memory (OOM).
Екран DDMS
Зразки цінностей Dalvik
Висновок
Ця стаття може бути використана для перевірки аналізу купи за допомогою інструмента DDMS. Правильні значення параметрів допоможуть розробникам Android оптимізувати пам’ять.
Знання інструментів тестування - це добре, але ефективне використання цих інструментів вважається мистецтвом.
Щасливого навчання !!
Рекомендована література
- Підручник Appium для тестування мобільних додатків для Android та iOS
- Найкращі 20+ інструментів виявлення витоків пам'яті для Java, C ++ в Linux та Windows
- Як автоматизувати програми для Android за допомогою інструмента TestComplete
- Початок роботи з Robotium - найпопулярнішим інструментом тестування інтерфейсу додатка Android
- 10 найкращих програм управління проектами у 2021 році для пристроїв Android та iOS
- Підручник з тестування мобільного інтерфейсу користувача (тестування графічного інтерфейсу користувачів додатків для iOS та Android)
- Створіть тести Appium для програми для Android
- 10 КРАЩИХ програм для відстеження часу для фрілансерів (2021 SELECTIVE)