Articles of мусора

В приложении React Native JavaScript, почему поведение Android GC изменится, если я создаю временную переменную вместо прямого значения?

Я чувствую, что может быть ошибка где-то в Android GC, JavaScriptCore или, возможно, в Genymotion. Я тестирую приложение React Native на Android, поэтому весь мой код написан на JavaScript (а не на Java). Я пытаюсь разобраться с крахом, который я воспроизвел на следующих эмуляторах Android: Samsung Galaxy S6 – 6.0.0 – API 23 Google Nexus […]

Причины, по которым мое приложение для Android постоянно разбивается на моем телефоне, но не на моем эмуляторе

У меня есть приложение, в котором используется довольно много графических элементов. Когда я открываю и закрываю свое приложение повторно на эмуляторе (1.5 – 2.2), он работает нормально, и, проверяя кучу, я вижу, что все очищается и gc'd правильно. Однако, когда я запускаю свое приложение на телефоне HTC Aria (2.1), приложение падает каждый раз, когда я […]

Фатальный сигнал 11 (SIGSEGV), когда GC запускается после вызова KeyChain.getPrivateKey

Я получаю фатальный сигнал 11 (SIGSEGV) в своем приложении. Это происходит после нажатия кнопки (выполняется onClick ), получения закрытого ключа для псевдонима KeyChain, а затем, когда сборщик мусора запускается в следующий раз. Дополнительная информация: Я могу воспроизвести это только на Samsung Galaxy S3 (установлен Android 4.1.2) Нет ANR-Dialog, приложение просто закрыто Ошибка возникает в следующий […]

Существует ли бессмертный объект?

В этой статье: Xamarin – используйте слабые ссылки на предотвращение бессмертных объектов. Он говорит, что если два объекта сильно ссылаются друг на друга, они станут imortal, то есть GC не сможет их собрать, даже если объекты больше не используются приложением. Однако в этих двух обсуждениях SO: Сборщик мусора и циркулярная ссылка Циркулярные ссылки Причина утечки […]

OnReceive асинхронные операции и сбор мусора

Является ли поток метода onReceive подходящим для сбора мусора до его завершения? @Override public void onReceive(final Context context, Intent intent) { final int alarmId = intent.getExtras().getInt(EXTRA_ALARM_ID); Log.i(TAG, "/onReceive with an alarmVo.id of " + alarmId); // RUN MY THREAD new Thread(new Runnable() { @Override public void run() { AlarmUtil.setNextAlarm(context, alarmId); } }).start(); } Из того, […]

Получить список запущенных процессов и убить их фоновые службы

Я создаю приложение для Android для оптимизации ОЗУ. Я могу успешно получить список запущенных процессов (и их PID), используя этот ответ . Тем не менее, я не вижу способа убить их или их фоновые сервисы с помощью PID.

Монодроид: выполнение полного GC

Я пытаюсь создать свою маленькую систему частиц. У меня есть ParticleManager со списком частиц и нарисовать мои частицы на холсте. Я создаю любые новые объекты, такие как Paint и т. Д., Только как раз в функции init ()! Если размер частиц <0, я удаляю его: for (int particle = 0; particle < particles.Count; particle++) { […]

Почему потоки протекают на Android?

Я заметил в нашем приложении Android, что каждый раз, когда мы выходим на главный экран, мы увеличиваем размер кучи (утечки) на количество ByteArrayOutputStream. Лучшим, с чем я смог справиться, является добавление this.mByteArrayOutputStream = null; В конце run (), чтобы предотвратить увеличение размера кучи. Если бы кто-нибудь мог просветить меня, я был бы очень благодарен. Я […]

OnCreate и OnNewIntent оба вызываются, когда действие Destroy проверяется в опции разработчика

Существует опция разработчика в android-Destroy Activity, как только пользователь ее покинет. Поэтому, когда я проверяю эту активность и запускаю свою активность с одним верхним флагом. Я видел, что оба мои onCreate и OnNewIntent вызывались при запуске приложения после нажатия кнопки «Главная». Может ли кто-нибудь объяснить, почему обе функции были вызваны, а также она была вызвана […]

Распределение памяти в Java – Android

Если бы у меня был: Bitmap bitmap = Bitmap.create(..); // instance a bitmap = Bitmap.create(…); // instance b bitmap = null; bitmap = Bitmap.create(…); // instance c bitmap.recycle(); bitmap = Bitmap.create(…); // instance d bitmap.recycle(); bitmap = null; Как только этот код будет выполнен, какой из четырех экземпляров все еще находится в памяти? Я знаю […]