Hyperloop на Android - утечка памяти

У меня есть классическое приложение Appcelerator Titanium (без Alloy) для Android, и я использую Hyperloop для использования сторонней библиотеки для обработки изображений. Проблема, с которой я столкнулся, заключается в том, что мое приложение пропускает объекты Activity каждый раз, когда я использую текущую активность Android из Titanium API, и преобразую ее в объект Hyperloop. Мне это нужно, поскольку сторонней библиотеке требуется объект Activity для конструктора объекта. Однако мне кажется, что есть более фундаментальная проблема либо с реализацией Hyperloop Android, либо с ее неправильным использованием.

Я собрал самое простое приложение, которое, кажется, воспроизводит проблему.

Содержимое app.js:

var Activity = require('android.app.Activity');

var mainWin = Ti.UI.createWindow({
    title: 'Main window'
});

var button = Ti.UI.createButton({
    title: 'Open new window'
});

button.addEventListener("click", function(e) {
   var win = createSecondWindow();
   win.open();
});

mainWin.add(button);

mainWin.open();

createSecondWindow = function() {
   var secondWin = Ti.UI.createWindow({
        title: 'Second window'
    });

   secondWin.addEventListener("open", function (e) {
        var activity = new Activity(Ti.Android.currentActivity);
        activity = null;
    });

    return secondWin;
};

Теперь, если я несколько раз открываю и закрываю второе окно, а затем выполняю дамп памяти (используя Android-профилировщик в Android-студии) после принудительного сбора мусора, я вижу несколько экземпляров org.appcelerator.titanium.TiActivity, которые сохраняются в памяти hyperloop.InstanceProxy объекты. Насколько я понимаю, они должны были быть удалены после сборки мусора.

введите описание изображения здесь

Я использую последние версии TI SDK (7.1.1.GA) и hyperloop 3.0.5. Тестовое устройство работает под управлением Nexus 5 с Android 6.0.1.

Мой вопрос заключается в том, делаю ли я что-то не так с Hyperloop и Activity, или это, вероятно, проблема с самой Hyperloop.

0 ответов

Другие вопросы по тегам