how fix memory leak android apps using ddms tool
Как да тествате и отстраните изтичане на памет за приложения за Android:
Оптимизирането на паметта е по-голямо предизвикателство за всеки разработчик, преди да избута приложение в магазина за игра.
qa или ba, което е по-добре
Ефективността на приложението е също толкова важна, колкото и неговата функционалност. Тази статия се основава на Анализ на купчината на приложение чрез 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 сървър за отстраняване на грешки)
- Стъпки за стартиране на DDMS чрез ADT
- Стъпки за стартиране на DDMS чрез Android Studio
- Заключение
- Препоръчително четене
Често използвани термини
По-долу са изброени някои от често срещаните термини, които ще използваме в този проект:
- Куп - Това е паметта по време на изпълнение, която е достъпна за разпределение и се разпределя динамично. Зависи от платформата.
- Далвик купчина - Халбата Dalvik е комбинация от класове и данни от зигота.
- Зигота - Zygote помага за стартиране на процеси на приложения, когато системата се зареди.
- PSS - Това е броят на страниците в паметта за даден процес и се измерва в KB.
- Събиране на боклук - Събирането на боклук проследява всички обекти, които все още се използват и маркира останалото като Garbage.
DDMS (Dalvik сървър за отстраняване на грешки)
Това е инструментът, който помага да се анализира мониторинга на изпълнението по време на изпълнение. Той също така помага при профилиране и настройка на приложения.
Основни услуги, предлагани от DDMS
- Обща статистика на разпределението на обекти от купчина
- Статистика на нишките на приложението
- Устройство Заснемане на екрана
- Device File Explorer
- Входящо обаждане и проверка на 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
Стъпка 2: Кликнете върху SDK
Стъпка # 3: Кликнете върху инструменти
Стъпка # 4: Кликнете върху monitor.bat (DDMS)
Забележка: За анализ на купчина е необходим apk за отстраняване на грешки.
След успешна инсталация на пакета ADT, отидете в командния ред (задайте път, ако adb не е разпознат като вътрешна или външна команда).
Проверете за устройство, свързано към система чрез командата adb (устройства adb). След като дадено устройство е свързано, то се свързва към екрана DDMS с името на пакета на приложение.
Стъпки за стартиране на DDMS чрез Android Studio
Студио -> Инструменти -> Android -> Монитор на устройство с Android -> Щракнете върху бутона DDMS от менюто.
Стъпки към анализ на купчина
- Изберете името на пакета на приложение, което се появява на екрана на DDMS.
- Изберете иконата за актуализация на купчината.
- Докоснете причина GC, преди да вземете стойности за всяко действие.
- Сега в командния ред стартирайте команда - adb shell dumpsys meminfo и натиснете enter.
- Стойностите ще се появят в командния ред.
- Общо PSS, роден, dalvik, размер на купчината, без купчина, разпределени в купчина са стойностите, които ще помогнат на разработчиците да отстранят грешките в паметта.
- По-доброто представяне на данните ще улесни работата на разработчика.
- Данните трябва да бъдат като:
- Стойността на обектите след щракване върху причината GC.
- Общо PSS
- Родна купчина - размер на купчината
- Далвик купчина - размер на купчината
- Общ размер на купчината
- Родна купчина - купчина разпределение
- Далвик купчина - купчина разпределение
- Общо разпределение на купчината
- Родна купчина - без купчина
- Далвик купчина - куп безплатно
- Общо без купчина
- Обекти (след щракване върху причина GC от DDMS)
- % използвани% безплатно
Идеално тестване: За по-добър анализ на приложения, опитайте се да изпълнявате различни сценарии, като държите приложение във фонов режим, и като качите на една и съща страница, изпълнете пълен поток от тези често използвани сценарии.
Опитайте се да използвате устройства от по-нисък клас, тъй като най-честият срив се наблюдава поради паметта, която е изключение Out Of Memory (OOM).
DDMS екран
Примери за ценности на Dalvik
Заключение
Тази статия може да се използва за тестване на анализ на купчина с помощта на инструмента DDMS. Правилните стойности на параметрите ще помогнат на разработчиците на Android да оптимизират паметта.
Познаването на инструментите за тестване е добро, но използването на тези инструменти по ефективен начин се счита за изкуство.
Честито обучение !!
Препоръчително четене
- Урок за Appium за тестване на мобилни приложения за Android и iOS
- Топ 20+ инструменти за откриване на изтичане на памет за Java, C ++ в Linux и Windows
- Как да автоматизирате приложенията за Android с помощта на TestComplete Tool
- Първи стъпки с Robotium - най-популярният инструмент за тестване на потребителския интерфейс на приложението за Android
- 10 най-добри приложения за управление на проекти през 2021 г. за устройства с Android и iOS
- Урок за тестване на мобилен потребителски интерфейс (GUI тестване на приложения за iOS и Android)
- Създайте Appium Tests за приложение за Android
- 10 НАЙ-ДОБРИ приложения за проследяване на време за свободни професии (2021 SELECTIVE)