Перейти к содержанию
BlackBerrys.ru
Sharky

Программирование для BlackBerry - это просто!

Рекомендуемые сообщения

Сказал и многозначительно надул щеки... Ну-ну...

Специально перефразирую для вас - неправильно написанный код в данной системе может привести к повышенному потреблению ресурсов, в частности - CPU, что скажется на энергопотреблении. Именно поэтому RIM и не дает возможности написания сервисных бэкграунд приложений.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сказал и многозначительно надул щеки... Ну-ну...

Специально перефразирую для вас - неправильно написанный код в данной системе может привести к повышенному потреблению ресурсов, в частности - CPU, что скажется на энергопотреблении. Именно поэтому RIM и не дает возможности написания сервисных бэкграунд приложений.

Опс, уже перефразировано со сменой смысла:

а как же вот это? Кто это писал?

Тормозить будет потому что это RTOS, т.е. процессу будет выдан приоритет, в течении которого он должен исполнить то, о чем попросил. А ресурсы процессора не резиновые."

Сравните фразы и найдите принципиальное отличие :lol:

Фраза "неправильно написанный код в данной системе может привести к повышенному потреблению ресурсов, в частности - CPU, что скажется на энергопотреблении" справедлива практически для любой системы, работащей автономно (и не автономно). То есть это не открытие и не обьяснение.

Обьясние почему такую возможность не дали следующие (с моей точки зрения):

1. Практически полное отсутствие вирусов (не будет как в андройде, что то то внезапно шлет SMS ). Это по моему главное обьяснение. Для новой системы, еще не обкатанной это будет серьезной проблемой.

2. Энергопотребление. Любой работащий процесс, поедает аккумулятор. А поскольку фоновый процесс предполагается будет работать постоянно, то и батарейка сядет быстрее. Сравните с тем, что часто (и BB10 не исключение) приложения просто останавливают. Примеры - плейбук (хотя можно выставить и чтоб все работали), и айфон прошлых моделей (если не ошибаюсь).

Минусы значительны - какие то файрволлы звонков, смс, не напишешь итд. Возможно эта возможность появится в следующих версиях, мало ли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Практически полное отсутствие вирусов (не будет как в андройде, что то то внезапно шлет SMS ). Это по моему главное обьяснение. Для новой системы, еще не обкатанной это будет серьезной проблемой.

Увы, это не спасает. Я наткнулся в AppWorld на приложение для отображения картинок и какой-то другой фигни, которое взяло и запросило мое разрешение на доступ к отправке SMS, причем если я не разрешаю, то оно не запускается (приложение портировано с андроида). Так что, это не факт.

Энергопотребление. Любой работащий процесс, поедает аккумулятор. А поскольку фоновый процесс предполагается будет работать постоянно, то и батарейка сядет быстрее.

Да, это может показаться основным, но... у приложения можно выставить требование на разрешение работать в бэкграунде. Разница между сервисом/демоном в том, что:

а) Нет стартап приложений

б) Приложение всегда имеет карточку, даже если ему не нужен UI

Более того - я писал уже ранее, что RIM рекомендуется делать опрос/обновление активфрейма в бэкграунд режиме не чаще чем раз в 30 секунд, однако это никак не лимитировано. Хоть замкнутый пустой цикл напишите - будет работать.

Минусы значительны - какие то файрволлы звонков, смс, не напишешь итд. Возможно эта возможность появится в следующих версиях, мало ли.

Не только. Скрытые таймеры, напоминалки, оповещения о каких-то локальных событиях, глобальные приложения. Вряд ли - голд сдк уже заявлен. Может быть в 10.1 или в 11 - да, но сейчас, увы - нет.

справедлива практически для любой системы, работащей автономно (и не автономно)

Не совсем. Для систем, подобных PalmOS (с режимом сэндбокса и регистрацией внутренних эвентов), это будет работать более экономно с точки зрения энергопотребления. Т.е. когда бэкграунд процесс поднимается только по событию самой OS. В этом случае мы можем иметь сколь угодно демонов, главное чтобы памяти хватило. Все равно они будут срабатывать только по определенному событию, а не крутиться постоянно в фоне. Вот тут разработчик OS имеет возможность управлять нагрузкой, ибо он будет контролировать ее.

В старой BBOS было как раз именно так, за одним исключением - Listeners были организованны как хуки, а не как обработчики событий. Это позволяло снизить нагрузку на CPU, но порождало проблему быстродействия отклика основной функции, которая вызывала хук.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще проверяется это все крайне просто - пишется два приложения, с требованием работы в бэкграунде. Там творятся циклы бесконечные по выделению/освобождению памяти, небольшое вычисление (тестовая нагрузка). Затем они пускаются оба и сбрасываются в бэкграунд. И становится видно, что аппарат начинает терять в скорости и греться (т.е. идет нагрузка на процессор). UI начинает лагать понемногу.

Это собственно говоря и есть демонстрация того, что будет, если будут болтаться демоны в бэкграунде, у которых будет ошибка допущена или же они будут ресурсоемкие.

Ну это синтетический тест. Так сказать проверка скорости алгоритма.

Это как тестировать перемножение скажем 100.000 матриц просто средствами С++ или через SIMD

это будет просто тест, где будет показана разница в скорости того или иного алгоритма. К реальному приложению это отношение не имеет.

Что до бесконечных циклов, это же понятно что пока цикл не выполниться программа не перейдет дальше к другим вызовам. НО на уровне железа. CPU все равно передает команды GPU скажем для отрисовки интерфейса и вывода на экран чего либо. Для этого и нужен командный буфер на уровне железа. Пока GPU рисует (занят чем то) можем занять CPU. (асинхронная работа). Как только GPU свободен продолжаем в том порядке.

Подведем итог из-за чего весь разговор затеяли.

Утечки памяти мы решили что, это лежит на плечах программистов.

А вот фоновые процессы, почему не дают писать это пока загадка, т.е официальных объяснений нету.

Ясно одно что в самой ОС эти процессы есть и они запущены.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я бы так не сказал. Фоновый процесс потребляет процессорное время. Чем их больше, тем больше его потребляется. Как система разруливает это - это уже вопрос пятый, но суть в том, что нагрузка на CPU растет, а стало быть растет и энергопотребление.

Механизма для управления фоновыми процессами у пользователя нет, соответственно он не сможет отстрелить зависший процесс.

Думаю, что причина только в нем и больше ни в чем. Боюсь, что у новых устройств будут огромные проблемы с энергопотреблением.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я бы так не сказал. Фоновый процесс потребляет процессорное время. Чем их больше, тем больше его потребляется. Как система разруливает это - это уже вопрос пятый, но суть в том, что нагрузка на CPU растет, а стало быть растет и энергопотребление.

Механизма для управления фоновыми процессами у пользователя нет, соответственно он не сможет отстрелить зависший процесс.

Думаю, что причина только в нем и больше ни в чем. Боюсь, что у новых устройств будут огромные проблемы с энергопотреблением.

Спрашивал у них на одном из web cast'ов. Все верно, основная причина - это сложности с производительностью и энергопотреблением. Нужно сделать чтобы процессов было много (при необходимости), а потребляли ресурсов они мало :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Понимаю, что тема умерла, но все же.

На сколько сложно сделать пунто свитчер для блэкбери?

Я бы и $5 не пожалел за загрузку такой утилиты))).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 13.04.2017 в 19:02, Окулист сказал:

На сколько сложно сделать пунто свитчер для блэкбери?

Нет доступа к клавиатуре. Без этого нет возможности управлять вводом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

×