Как профилировать проблему задержки навигации и нехватки памяти в угловых приложениях nativescript? - PullRequest
0 голосов
/ 15 марта 2019

Я создаю нативные угловые приложения для Android с зависимостями, как показано ниже

"nativescript-angular": "^7.2.2",
"nativescript-background-http": "^3.4.0",
"nativescript-bitmap-factory": "^1.7.1",
"nativescript-camera": "^4.2.0",
"nativescript-cardview": "^3.1.1",
"nativescript-directions": "^1.3.0",
"nativescript-drawingpad": "^3.0.4",
"nativescript-fancyalert": "^3.0.6",
"nativescript-filterable-listpicker": "^2.2.3",
"nativescript-fresco": "^5.2.0",
"nativescript-geolocation": "^5.0.0",
"nativescript-imagepicker": "^6.1.2",
"nativescript-modal-datetimepicker": "^1.1.12",
"nativescript-ngx-shadow": "^6.4.0",
"nativescript-photoviewer": "^1.5.0",
"nativescript-plugin-firebase": "^8.0.0",
"nativescript-theme-core": "~1.0.4",
"nativescript-ui-autocomplete": "^4.0.0",
"nativescript-ui-chart": "^4.0.0",
"nativescript-ui-listview": "^6.0.0",
"reflect-metadata": "^0.1.13",
"rxjs": "^6.4.0",
"tns-core-modules": "^5.2.2",
"tns-platform-declarations": "^5.2.2",
"typescript": "~3.1.1",
"zone.js": "^0.8.29"

Приложения содержат 5 вкладок и кнопку для съемки.Существует 2 основных проблемы

  1. Когда пользователь переходит с одной вкладки на другую, приложения случайным образом отображают ошибки "peekState".
  2. Когда пользователь делает 2 или более снимков с помощью камеры,приложения будут аварийно завершать работу с java.OutOfmemory Exception

Ниже приведены некоторые изменения, которые я уже пробовал

  1. Изменение размера изображения с камеры с помощью BmpImageFactory до меньшего размера
  2. Загрузитьизображение с использованием Nativescript Fresco
  3. Очистите переменную, которая использовалась для хранения imageSource
  4. Удалите анимацию с вкладок навигации

Посоветуйте, пожалуйста, как найти причину задержки навигации инехватка памяти?

1 Ответ

0 голосов
/ 15 марта 2019

Вы можете профилировать свое приложение с timeline-view , чтобы иметь представление HTML о том, что занимает много времени в вашем приложении.

Для изображения вы сохраняете его на диске? Вы можете ограничить память одним изображением, изменив его размер перед сохранением, чтобы уменьшить используемый объем дискового пространства, а затем создать отдельный поток для его использования при необходимости.

То, что вы можете сделать, это также профилировать использование памяти с помощью Android Studio, чтобы увидеть, есть ли огромная утечка памяти / ненормальное использование памяти в какой-то момент в вашем приложении.

...