
Смартфоны, опыт эксплуатации
#1776
Оффлайн
Опубликовано 16.08.2012 - 11:17
Божественная Сила Святого Шекеля
#1777
Оффлайн
Опубликовано 16.08.2012 - 11:21
Вот поэтому у меня вся музыка собрана по одному пути: X:\Music\ и этот путь я всегда восстанавливаю, даже когда переустанавливаю винду или меняю винт.У меня винт менялся. Расположение музыки на которую ссылаются плейлисты тоже изменилось.
Все, что я тут пишу - это просто шутка и ничего более.
#1778
Оффлайн
Опубликовано 16.08.2012 - 11:24
вот поэтому нормальные системы используют нормальную структуры без идиотизма с именами дисковВот поэтому у меня вся музыка собрана по одному пути: X:\Music\ и этот путь я всегда восстанавливаю, даже когда переустанавливаю винду или меняю винт.

Ну а вантузятникам прямой путь - webdav.
#1779
Оффлайн
Опубликовано 16.08.2012 - 11:28
Я помню, смотрел видео с конференции All things Digital D-8. По-моему 2010 год. Там Уолт Моссберг в числе прочего спросил Джобса, мол, чего это вы не любите флэш. Джобс сказал просто - мы выбираем правильную лошадку в смысле технологий и ставим на нее. Выбираем перспективную технологию. А флэш, говорит, на закате своих дней. Адоби так и не смогло показать, что флэш умеет работать быстро, без глюков и не пожирая потрясающее количество ресурсов. Поэтому флэш в наших устройствах на iOS не предусмотрен. А вот HTML5 - другое дело, это перспективная технология.ну да, у яблофобов выбили один из костылей - флеша таки не будет .
Так, собственно, все и есть, время его слова подтвердило.
Изменено: Яков, 16.08.2012 - 11:29
#1780
Оффлайн
Опубликовано 16.08.2012 - 11:32
Я винты не часто меняю...Вот поэтому у меня вся музыка собрана по одному пути: X:\Music\ и этот путь я всегда восстанавливаю, даже когда переустанавливаю винду или меняю винт.
#1781
Оффлайн
Опубликовано 16.08.2012 - 11:32
как бы тебе объяснить... выбор html 5 во времена, когда его в природе не было, странный выборТак, собственно, все и есть, время его слова подтвердило.

вдвойне странен этот выбор тем, что двигает этот самый html 5 гугол

#1782
Оффлайн
Опубликовано 16.08.2012 - 12:13
У меня когда знакомые в начале 90-х мафон с СД диском купили, на них тоже искося смотрели ))как бы тебе объяснить... выбор html 5 во времена, когда его в природе не было, странный выбор
![]()
#1783
Оффлайн
Опубликовано 16.08.2012 - 12:14
так и смотрят по сей день?У меня когда знакомые в начале 90-х мафон с СД диском купили, на них тоже искося смотрели ))

я с кассет сразу не флехи мигрировал.

#1784
Оффлайн
Опубликовано 16.08.2012 - 12:17
...слушают!так и смотрят по сей день?
![]()
И эпл так же!! Зачем размениваться по мелочам....я с кассет сразу не флехи мигрировал.

#1785
Оффлайн
Опубликовано 16.08.2012 - 12:20
эплу изначально флеш был выгоден и очень даже, но архитектура не позволяетИ эпл так же!! Зачем размениваться по мелочам....

и тогда в дело вступает маркетинг и корчит хорошую мину

Никто не мешает ведь поддерживать сразу обе технологии.
#1786
Оффлайн
Опубликовано 16.08.2012 - 12:21
Это бизнес, крошка. (с)эплу изначально флеш был выгоден и очень даже, но архитектура не позволяет
![]()
и тогда в дело вступает маркетинг и корчит хорошую мину![]()
Никто не мешает ведь поддерживать сразу обе технологии.
Большой бизнес!
#1787
Оффлайн
Опубликовано 16.08.2012 - 12:37
Изначально айфон (iPhone OS v.1.х) не имел возможности установки сторонних приложений, и эпплом в качестве альтернативы предлагалось использовать web-приложения. Думаю отсюда и пошло развитие HTML5 со стороны эппла.как бы тебе объяснить... выбор html 5 во времена, когда его в природе не было, странный выбор
![]()
вдвойне странен этот выбор тем, что двигает этот самый html 5 гугол
Ну а насчет того, кто его больше продвигает, так там 100500 компаний это делает.
А в большом бизнесе компании могут быть одновременно и друзьями и врагами. Посмотри на Samsung и Apple - они погрязли в судах по патентам, тут они враги, но при этом самсунг поставляет эпплу запчасти - тут они друзья.
Все, что я тут пишу - это просто шутка и ничего более.
#1788
Оффлайн
Опубликовано 16.08.2012 - 12:44
отмазка засчитана!Большой бизнес!

Это всё понятно, но маркетинговые уверения не имеют отношения к реальности.А в большом бизнесе компании могут быть одновременно и друзьями и врагами. Посмотри на Samsung и Apple - они погрязли в судах по патентам, тут они враги, но при этом самсунг поставляет эпплу запчасти - тут они друзья.

Вот и получается - кто больше в уши надует, тот и лидирует.

Изменено: olegus, 16.08.2012 - 12:45
#1789
Оффлайн
Опубликовано 16.08.2012 - 12:46
вот поэтому нормальные системы используют нормальную структуры без идиотизма с именами дисков
![]()
Ну а вантузятникам прямой путь - webdav.
#1790
Оффлайн
Опубликовано 16.08.2012 - 14:23
До боли знакомый ответ ябловодовА
нах....зачем мне

#1791
Оффлайн
Опубликовано 16.08.2012 - 14:31
#1792
Оффлайн
Опубликовано 16.08.2012 - 15:07

Все, что я тут пишу - это просто шутка и ничего более.
#1793
Оффлайн
Опубликовано 16.08.2012 - 16:43
то что его в природе небыло не значит что он перестал от этого быть перспективным. и зачем было эплу поддерживать какоето авно которое всего через 2 года прекратил свое существование )как бы тебе объяснить... выбор html 5 во времена, когда его в природе не было, странный выбор
![]()
вдвойне странен этот выбор тем, что двигает этот самый html 5 гугол
Изменено: gr, 16.08.2012 - 16:44
Божественная Сила Святого Шекеля
#1794
Оффлайн
Опубликовано 16.08.2012 - 18:38
До боли знакомый, заезженный аргумент Kostia.... Нового нечего не придумал??До боли знакомый ответ ябловодов
#1795
Оффлайн
Опубликовано 20.08.2012 - 09:50
21. Многозадачность: сравнительный анализ iOS, Android, WP7.
Заранее сделаю несколько оговорок:
1) все три операционных системы являются многозадачными и на уровне системных приложений и библиотек используют так называемую вытесняющую многозадачность, но сразу скажу, что НИ ОДНА из мобильных ОС не обеспечивает пользователю полноценной многозадачности, какой мы ее видим на ПК;
2) в моем сравнении я буду показывать разницу в многозадачности, которую может увидеть пользователь. Т.е. не суть важно, что ОС сама по себе поддерживает одновременное выполнение кода разными системными процессами, важно что в результате получает пользователь и с этой позиции я буду рассматривать два критерия - App Switching (т.е. возможность приложений оставаться в памяти и переключаться между ними) и Background activity (т.е. возможность приложений, находясь в фоновом режиме быть активными - исполнять код);
3) терминологически могу много ошибаться, но будет это заметно только олегусу и еще паре единиц

4) я сейчас буду рассказывать вам такие подробности, какие я не встречал, ни в одном сравнении по этому вопросу.
И так, в бой!
Начнем с iOS, ибо этот подход к многозадачности описать легче всего.
App Switching: когда вы выходите из приложения в iOS, операционная система не убивает это приложение*, оставляет его висеть в памяти. При этом iOS позволяет использовать под такие приложения всю оперативную память, вплоть до остатка в единицы мегабайт (лично доходил до того, что на телефоне было свободно 5 МБ RAM).
Не загруженную, "свободную" память iOS использует под кэш.
В случае нехватки свободной памяти iOS начинает убивать фоновые процессы, некритичные для работы. При этом "смерть" происходит не путем kill %PID%, а очень галантным и аккуратным методом, позволяющим приложению сохранить некие данные и вообще написать завещание перед смертью.
Виртуальную память (или файл подкачки, или swap) iOS поддерживает, но по умолчанию не использует. Любители различных извращений могут включить поддержку swap'а заданного размера либо с динамическим размером с помощью jailbreak.
Переключение задач производится путем нехитрого двукратного нажатия на кнопку HOME. Тогда внизу появляется панелька с перечнем последних приложений, отсортированная в порядке очередности их использования. Не знаю, сколько приложений может быть в этой панельке, но много

Почему я говорю о последних: многие считают, что там в этой панельке отображаются приложения, которые висят в памяти, но это заблуждение. Часть этих приложений может быть давно уже выгружена из памяти.
Возврат в запущенное приложение происходит либо через ту же панельку многозадачности, либо путем вызова приложения с рабочего стола. Если приложение еще в памяти – оно предстанет перед пользователем в том виде, в каком он его оставил.
Убить приложение можно из панельки многозадачности зажав палец и нажав на появившийся красненький «минус». iOS сначала попытается уговорить приложение по хорошему, а если не получается, то быстро убивает по плохому.
Background activity: по умолчанию в iOS когда пользователь сворачивает приложение, то приложение "приостанавливается", т.е. оно остается в оперативной памяти, но ему не выделяется процессорного времени. Но из этого правила есть ряд исключений, когда приложение, находясь в фоне остается активным (т.е. ему выделяется процессорное время):
- завершение текущей работы при сворачивании (например, для сохранения позиции в книге или для завершения отправки сообщения) приложение может оставаться активным некоторое время после того как пользователь его свернул, после чего оно будет приостановлено.
- VoIP - если в приложении есть функционал воип, оно может оставаться активным в фоне сколько пожелает (пример - Skype, QIP, Talkanaut)
- GPS - если в приложении есть навигационный функционал, оно может оставаться активным в фоне сколько пожелает, а вы можете свернуть его, и все равно услушите "через 300 метров поверните направно"
- онлайн-радио - ну вы поняли

По этим правилам приложения с активностью в фоне пропускаются в AppStore, но если вы пишите приложение для себя, то ими вы не ограничены - на самом деле в самом приложении при разработке определяется, оставаться ему активным в фоне или нет. Так что можете хоть тетрис в фон запихнуть.
Ну и с помощью jailbreak вы можете сделать так, что все приложения будут активны в фоне.
Кроме того, активными в фоне являются такие системные службы как часы, телефон, email, push и т.п.
Что касается вопроса как же быть и что делать приложениям, которым нельзя быть в фоне, но очень хочется что-то делать: для этого еще с iOS3 Apple предлагает Push Notifications (в iOS4 было расширено local notifications).
Это специальный системный сервис, который, говоря простым языком, занимается сбором информации для тех или иных приложений и при получении этой информации передает ее приложению.
На примере какого-нибудь IM (ICQ, Gtalk и т.п.) это упрощенно выглядит так: мессенджер, засыпая говорит Push сервису: с сервера такого-то ко мне могут поступать сообщения, я пойду посплю, а ты разбуди если что будет. Приходит сообщение, сервис Push его получает, после чего он докладывает об этом пользователю и пинает этим сообщением мессенджер (сообщением на экране – варианты отображения настраиваются отдельно для каждого приложения).
* касается приложений, скомпилированных с iOS SDK 4 и выше.
Windows Phone 7
Тут мелкомягкие явно хотели и пойти по пути iOS и в то же время сделать «не_как_у_всех».
App Switching: WP7 позволяет хранить в памяти приложения, скомпилированные с использованием SDK версии 7.1 и выше (WP 7.5 mango и выше). Происходит это если вы сворачиваете приложение путем нажатия на кнопку Win (флаг по центру) или путем длительного зажатия кнопки «назад» (тогда отображается встроенный таск-менеджер).
Если же вы попытаетесь свернуть приложение, путем простого нажатия кнопки «назад», вас ждет разочарование – система это приложение убьет.
Возврат в приложение происходит либо через таск-менеджер по долгому нажатию кнопки «НАЗАД», либо через однократные нажатия кнопки назад (но при этом как вы понимаете будут убиты все те приложения, из которых вы пытаетесь переключиться).
Если же вы попытаетесь активировать приложение путем тапа пальцем по иконке на рабочем столе или в общем списке установленного софта, то вас ждет разочарование: даже если приложение находится в памяти, система его убьет (вместо того, чтобы просто активировать) и запустит заново.
К слову все убийства происходят в очень аккуратной манере – приложениям посылается команда на написание завещания (т.е. завершение своих дел, сохранение данных) и после этого приложение либо суицидирует само, либо не укладывается в отпущенное время и система прибивает его уже жестко и жестоко.
Пару слов о местном таск-менеджере (хотя мне каждый раз стыдно, когда я эту хрень так называю): запускается по долгому тапу «назад», отображает скриншоты окон последних 6 приложений. Да-да, ПОСЛЕДНИХ, а не запущенных, ну вы уже знаете что это такое. Позволяет только переключаться. Убивать приложения возможности нет.
Что касается использования объема RAM: WP7 может использовать весь объем ОЗУ, свободную часть под кеш и под tombstoned apps (это убитые, но не до конца приложения), одно приложение не может использовать более 90 мб ОЗУ.
Background activity: в WP7 когда пользователь сворачивает приложение, то приложение "приостанавливается", т.е. оно остается в оперативной памяти, но ему не выделяется процессорного времени (de javu, ага? Вот только слов «по умолчанию» больше нет)
Если приложение хочет иметь некую активность в фоне, то оно должно создать своего агента – фоновый сервис, который является отдельным бинарником. При этом в отношении агента действует ряд ограничений: он не должен занимать более 6 мб RAM, он не должен выполнять код более N секунд (не помню точно сколько там) и может быть активен не чаще, чем раз в N секунд (тоже не помню сколько точно, но немного).
Когда сервис получает некие данные, он может уведомить пользователя всплывающим сообщением в верхнем баре и (или) нарисовать что-нибудь на тайле (иконке) на рабочем столе и передать эту информацию в приложение.
К слову сказать, что происходит при получении информации: вот пользователь увидел всплывающее сообщение «вам написал Вася», он по нему кликает, и что делает система? Правильно! Вы правильно угадали: система сначала убивает находящийся в памяти процесс с мессенджером, потом запускает его заново и только после этого передает ему полученные данные.
Ну и на закуску, Android.
Помню, помню, те срачи, где андройдодрочеры доказывали всем, что у них-то дескать, полноценная и реальная многозадачность… А вот фиг там. Брехня чистой воды. Обвиняя iOS и WP7 в проблемах с мультитаскингом, андрочеры не видели бревна в собственном глазу. При чем основная проблема лежит, не в плоскости исполнения кода (background activity) как у iOS и WP7, а в плоскости нахождения приложений в памяти (App switching). Об этой проблеме вообще не упоминают в обзорах устройств, а ее детальное техническое описание вы можете найти только на специализированных форумах, и в основном на английском языке.
App Switching. Начнем издалека: как андройд использует доступную пользователю часть RAM:
- для запущенных процессов
- для кеша (то, что мы видим как свободная память во всяких таск-менеджерах, на 95% заполнено кешем)
Тут вроде бы все соответствует той же iOS, но главное отличие кроется в том, как и когда система решает убивать приложения, висящие в памяти.
Если в iOS система начинает убивать приложения только тогда, когда свободной (закешированной) памяти реально не хватает для размещения в ней всех требуемых данных, то авто-киллер в андройде работает по особому алгоритму.
Изначально, все запущенные процессы в андройде делятся на 6 категорий, таких как процесс на переднем плане, сервисы, вторичные сервисы, поставщики данных и т.д.
Каждая из категорий имеет свой приоритет. Далее, в андройде есть определенные значения (пороги) объема свободной (читай отведенной под кеш) оперативной памяти.
Пороги соответствуют каждой из шести категорий.
При снижении объема свободной оперативки ниже порога, соответствующего определенной категории система начинает убивать приложения в этой категории. Если свободная оперативка снижается до следующего порога – система убивает и следующую категорию и так далее.
А теперь самое интересное: большинство приложений, которые пользователь сворачивает и которые не выполняют в фоне никакой активности, а просто ожидают (например, браузер, загрузивший страничку, читалка или даже Angry birds на паузе) попадают в шестую категорию – самую последнюю. Соответственно, при снижении объема свободной оперативки ниже установленного уровня, Android убивает фоновые пользовательские приложения.
Какие же это значения? А вот тут кроется главный подвох – они различаются в зависимости от производителя, модели и версии прошивки аппарата. Так что на одних девайсах эта проблема может себя проявлять не так ярко, а на других – просто ппц как.
Если на Android 1.x – 3.x эти параметры были записаны в текстовом файле по адресу /sys/module/lowmemorykiller/parameters/minfree и пользователь, при условии взлома телефона и получения root-доступа мог их подредактировать, то в Android 4.x+ их зашили в services.jar, а его редактировать сложней (все ж скомпилированный явовский бинарник, а не текстовый файл).
Хотите пример? Запустите Angry birds space и начните какой-нибудь уровень, сверните, запустите браузер, откройте в нем хабрахабр или иную тяжелую страничку, сверните, запустите еще что-нибудь, например, зайдите в настройки – приложения, и теперь попытайтесь вернуться в Angry Birds – на большинстве телефонов, кроме самых-самых флагманов, система начнет запускать Angry Birds с нуля, потому что уже успела убить этот процесс. Ведь системе показалось, что свободной памяти осталось мало! К слову iPhone 4 эту проверку выдерживает легко, сохраняя в памяти еще кучу всего (на 3ГС просто Angry Birds Space я не запускал, так что точно сказать не могу, но тоже думаю, что выдержит).
Можете при этом помониторить количество «свободной» памяти – оно будет очень высоким. У меня ниже 100 МБ не опускается никогда. Делаем вывод – у дройда явно зашкаливают приоритеты в распределении памяти под живые приложения и под кеш. Ибо нафига мне кеш, когда система убивает еще живые и нужные мне процессы!
Действительно неприятно. Ибо мой HTC с 768 мб RAM позволяет держать в памяти меньше приложений, чем например уже совсем старый iPhone 3GS с 256 мб RAM, я уже не говорю об iPhone 4/4S.
Я почти два дня убил на то, чтобы частично скорректировать эту проблему и так до конца ее не поборол.
Так, если кому интересно, что пришлось сделать: разлочить бутлоадер через сайт HTC (после этой операции я навсегда потерял гарантию), прошить сторонний recovery (это что-то вроде CMOS-setup на PC), прошить кастомную прошивку, прошить отдельно ядро, удалить идущий вместе с кастомной прошивкой busybox (набор системных утилит от линуха) последней версии и поставить busybox на пару версий назад, поставить sqlite3, поставить еще какую-то хрень (уже не помню), из терминала от имени root запустить один хитрый скрипт, сделанный народными умельцами с xda, пол часа отвечать на разные вопросы этого скрипта.
Это я сразу привел правильный и окончательный путь, а сколько было проб и ошибок в по пути, вам лучше даже и не знать.
В общем на днях планирую вручную пропатчить services.jar, посмотрим что из этого выйдет.
Ладно, допустим я привык ковыряться в этом деле еще с винмобайл, и вообще делаю это из интереса, а вот простой пользователь будет это делать?

Переключение между приложениями реализовано различными путями на разных прошивках разных девайсов разных производителей. Но в целом на андройд 4+ так: зажимаете соответствующую кнопку, появляется список последних приложений (да-да, и тут последних, а не запущенных), переключаетесь.
Хотите список запущенных – вам в таск-менеджер. Есть стандартный, есть 100500 сторонних.
Background activity: тут в целом у дройда все хорошо – приложения, если хотят того, могут выполняться в фоне сколько угодно. Правильные разработчики все равно стараются ставить приложения на паузу в случае потери фокуса (как на iOS).
Многие приложения, чтобы обойти проблему с преждевременной смертью вешают свои отдельные сервисы, которые попадают во вторую или в третью категорию, и соответственно не умирают почти никогда, даже в случае убийства авто-киллером основного приложения.
Пример: WhatsUp имеет как основное приложение, так и сервис. Если умрет основное приложение, вы все равно будете получать сообщения за счет сервиса, находящегося в памяти.
Вот как-то так. Резюмируя могу сказать так:
самая адекватная и удобная для пользователя реализация в данный момент на iOS, на втором месте идет дройд, на третьем WP7.
Если сумею на дройде побороть встроенный авто-киллер, он займет первое место в этом рейтинге.
Все, что я тут пишу - это просто шутка и ничего более.
#1796
Оффлайн
Опубликовано 20.08.2012 - 10:02
несмотря на то что я тоже запускал руки по локоть в винмобайл ничего подобного больше делать совершенно не желаюЛадно, допустим я привык ковыряться в этом деле еще с винмобайл, и вообще делаю это из интереса, а вот простой пользователь будет это делать?
Думаю ответ очевиден.

Божественная Сила Святого Шекеля
#1797
Оффлайн
Опубликовано 21.08.2012 - 08:39
Такс, после многократного сношения мозга телефону (хотя тут как посмотреть, может и телефон мне мозг сношал), штудирования этих ваших интернетов, факов и прочей теоретической фигни готов поделиться сравнением по еще одному очень важному критерию.
спасибо за материал, было интересно почитать. Как пользователь ios и winphone, скажу, что многозадачность в таком виде, как она есть действительно лучше в ios, но особого неудобства в винфоне я не замечал, пока ты мне об этом не сказал. Это еще один факт подтверждающий то, что пользовательский опыт и опыт людей "в теме" он совершенно разный. Именно поэтому типичные задача, которые работали на нокии "отправить по блютучу новый трэк","поставить на звоночек стаса Михайлова", вызывают такой негатив рядового пользователя.
#1798
Оффлайн
Опубликовано 21.08.2012 - 09:40
Все, что я тут пишу - это просто шутка и ничего более.
#1799
Оффлайн
Опубликовано 21.08.2012 - 10:39
Через пару недель, посмотрим на сколько желебим не тормозит

#1800
Оффлайн
Опубликовано 21.08.2012 - 15:19
Хоть одна ос умеет в фоне загружать страницы?
Чтобы ткнуть ссылку или зайти на тяжелый сайт и, пока он загружается по нашему мобильному интернету, открыть асю/скайп и ответить на пришедшее сообщение.