Форум программистов, компьютерный форум CyberForum.ru

Оптимизация приложения. Слишком часто вызывается GC - Android

Восстановить пароль Регистрация
Другие темы раздела
Android Ошибка http://www.cyberforum.ru/android-dev/thread924060.html
Eclipse выдает такое "Call requires API level 9 (current min is 8): android.content.SharedPreferences.Editor#apply" на строчку: preferencesEditor.apply(); Как мне исправить? Как я понял, просит повысить уровень до 9.
Android Не могу найти ошибку Выдает ошибку (unfortunately,*** has stopped) нз что делать вот логи 07-16 09:37:50.620: W/Resources(925): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f09000e} 07-16 09:37:50.640: W/Resources(925): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f09000e} 07-16 09:37:50.650: W/Resources(925): Converting to string: TypedValue{t=0x12/d=0x0 a=2 r=0x7f09000e} 07-16... http://www.cyberforum.ru/android-dev/thread923989.html
Как сделать общее системное меню для всех активностей? Android
в андроиде пока не сильно ориентируюсь. хочется сделть общее меню на все приложение в таком виде, как на примере не работает. StartActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); menu menu = new menu(); }
Проблемы с вводом текста Android
Как сделать завершение введения текста энтером в эдитбоксе пропись в хмл?
Android Ограничение максимального FPS под Андроид 2.3.3 http://www.cyberforum.ru/android-dev/thread923919.html
Имеется приложение работающее через SurfaceView. Под Андроидом 4.x.x с количеством кадров в секунду все отлично, стабильные 60 FPS. Под 2.3.3 FPS возрастает до 75. Хочется иметь стабильные 60. Просьба помочь с готовым решением, чтобы не пришлось изобретать велосипед самому. Гуглил на эту тему, почему-то не смог найти ничего вменяемого, что странно, проблема вроде как должна быть актуальной..
Android LoginActivity Подскажи небольшие примеры или статьи по LoginActivity... что то не могу найти ничего нормального.... подробнее

Показать сообщение отдельно
MonStar
19 / 19 / 3
Регистрация: 10.04.2011
Сообщений: 225
17.07.2013, 01:13  [ТС]     Оптимизация приложения. Слишком часто вызывается GC
Цитата Сообщение от V0v1k Посмотреть сообщение
а то написали в теме "Оптимизация приложения", а код этого приложения не показываете.
друдно что-то советовать если не видно полной картины.
Сомневаюсь, что поможет лишняя сотня классов, которая затрагивает другие части приложения. По возможности могу показать, что где происходит конечно.

Метод ниже подключается к непрерывному потоку WebSocket'а и постоянно получает строки в виде JsonArray
Java
1
2
3
4
5
6
7
8
9
10
11
public void onMessage(String message) {
        try {
            jsonArray = new JSONArray(message);
            int lenght = jsonArray.length();
            for (int i = 0; i < lenght; i++) {
                model = new TickerInstrumentModel(jsonArray.getJSONObject(i));
                tickerContent.updateContent(model);
            }
        } catch (Exception e) {
        }
    }
Сначала парсится весь Array, а потом каждый объект в отдельности. Как я сказал по задумке встроенного JSON в Android это происходит в момент создания объекта. TickerInstrumentModel - это наследник JsonObject.

Потом модель передается в управление контентом, где метод isNeeded(instrument) решает, нужно нам это или нет. Если нет то он просто отпадает, если да, то сохраняется в Map. В итоге Map хранит 50 различных объектов (ключ всегда одинаковый), но с разными данными.
Java
1
2
3
4
5
6
7
8
9
    
private Map<String, TickerInstrumentModel> models;
 
public void updateContent(TickerInstrumentModel model) {
        String instrument = model.getInstrument();
        if (isNeeded(instrument)) {
            models.put(instrument, model);
        }
    }

Затем в момент, когда потребовалось получить все данные (предыдущие закончились) вызывается такой метод
Java
1
2
3
    public void requestContent(final IContentBuildCallback callback) {
        contentBuilder.build(models, settings, callback);
    }
Он отдает Map наверх в UI и я его отображаю в виде бегущей строки.

Добавлено через 1 минуту
Цитата Сообщение от V0v1k Посмотреть сообщение
ну так храните 10 объектов, вам же не нужно полностью пропарсить объект чтобы узнать его тип?
Нужно полностью парсить обязательно, иначе не узнать что внутри


Пока писал, что-то упустил. JSON парсится в момент создания объекта на сколько я знаю. Это
Java
1
new JSONArray(message);
и
Java
1
new TickerInstrumentModel(jsonArray.getJSONObject(i));
 
Текущее время: 13:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru