четверг, 7 мая 2015 г.

Обновление на Android Lollipop и особенности работы с внешней картой памяти.

Свершилось! На планшет, а именно, на Asus MeMO Pad 7, который я приобрел некоторое время назад на замену своему честному трудяге, прилетело обновление до Android 5.0.1. Теперь у меня есть устройство с Леденцом, или, как пишут в интернете, с Лолипопой.


Обнова прилетела несколько неожиданно. Если честно, я ждал в апреле новую прошивку на телефон (Asus ZenFone 5) - ее, по крайней мере, обещали. Про планшет же никто ничего не говорил и тут - на тебе, получите и распишитесь.

Это, на самом деле, обескуражило меня (в хорошем, конечно, смысле), еще и потому, что планшет я приобрел в декабре, и на нем стояла версия 4.3. То есть, это второй существенный апдейт операционной системы (на самом деле, обнов было больше, но номер версии Android не менялся). Предыдущий производитель моих устройств - Samsung - не мог похвастаться такой скорострельностью, хотя, тоже дважды обновлял операционку: с Android 3.2 до Android 4.1.2 (через 4.0.1). Только вот ждать этих новых версий приходилось значительно дольше.

Что ж, да здравствуют сюрпризы! Получив уведомление о выходе новой версии прошивки, я тут же скачал ее, а это больше 700 метров, и запустил обновление. Так как качал я не через домашнюю сеть, а через мобильную, то времени на все про все потребовалось чуть больше: от начала загрузки до завершения обновления прошло около часа. Само обновление длилось где-то минут двадцать, но, потенциально, может занимать и больше времени - потому, что после установки операционки следует процесс обновления установленных программ. У меня счетчик досчитал до 205. Но вот, процесс завершился и настало время посмотреть, что же изменилось.

Первое, что бросилось в глаза - более утонченная графика при разблокировке устройства. Второе - рука в области уведомлений. Пару дней я ее терпел, надеясь на то, что случайно где-нибудь увижу что-нибудь, связанное с ней. Не увидел. Тогда стал искать целенаправленно и нашел разъяснение по ней на 4pda. Оказывается, оповещения поделили на важные и не очень, и есть возможность указать, какие оповещения вы хотите получать. Если выставить опцию Оповещать всегда, то рука пропадает, если опцию Только важные оповещения, то рука появляется. Если честно, руку я убирал несколько раз, но, почему-то, она стабильно возвращается. Почему? Пока не знаю.

Вот, собственно, сама процедура по "убиранию" этой руки:

Заходим в настройки
Выбираем Звуки и уведомления
Затем выбираем Режимы оповещения
И, наконец, Уведомления
Можем выбрать любой из трех режимов

Метод, приведенный выше, совершенно не сложен. Но можно добиться результата еще быстрее и проще: нажать на какую-то из двух кнопок управления громкостью - на экране появится окошко, позволяющее изменять уровни громкости для различных компонентов системы, а также, внимание, управлять Режимами оповещения. Правда, почему-то, эти самые Режимы оповещения выводятся в таком быстром варианте не всегда. Закономерности я пока не нашел, но, если честно, не больно-то и искал.

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


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

Да, программа, появившаяся в версии 4.4.2 и позволявшая поделить экран между двумя одновременно работающими приложениями, канула в небытие. По правде говоря, ее функционал был довольно слабоват, так как можно было запускать одновременно весьма ограниченный круг приложений. Если мне не изменяет память, я пользовался ею всего один или два раза, просто, чтобы посмотреть, что это такое. Может быть, кому-то будет не хватать возможностей, предоставляемых этой программой, но я, как-то, не особенно расстроился. Хотя, конечно, не очень люблю, когда у меня забирают то, что раньше дали.

Еще парочку замечаний по поводу программ. После того, как я перебрался на новый планшет, я какое-то время устанавливал на нем программы, которыми пользовался на предыдущем своем устройстве. Некоторые из них приходилось ставить несколько экзотическим способом, но речь сейчас не о них. Речь о тех программах, в поведении которых что-то изменилось. Конечно, я успел попробовать еще не все, но вот, что обнаружилось на текущий момент.

На KitKat-е у меня решительно не работал TuniIn Radio Pro, купленный, между прочим. Все шло гладко - до того момента, пока очередь не доходила непосредственно до прослушивания какой-либо радиостанции. То есть, программа запускалась, я выбирал группу радиостанций, например, Локальные радиостанции, выбирал конкретную станцию (например, RockFM, Радио Джаз, да вообще, любую станцию) после чего программа валилась с ошибкой. Иногда даже появлялся звук, но программа все равно падала. Время шло, выходили обновления TuneIn Radio, но ничего не менялось. Однако, после обновления до пятерки, проблемы волшебным образом исчезли, теперь все работает без малейших нареканий.

Еще одно положительное изменение - офисный пакет SoftMaker Office HD, тоже честно приобретенный. Программы, входящие в него, нормально работали на самсунговском планшете. Когда я установил эти программы на новый планшет, они вообще не запускались. Через некоторое время вышло обновление для этого офиса и положение несколько выправилось: программы стали запускаться, правда, в процессе работы, в области меню (верхняя строка программного окна), накапливались какие-то странные графические артефакты. При переключении на рабочий стол (или на другое приложение) и обратно артефакты пропадали, но ненадолго. После обновления Android-а все программы, входящие в пакет, работают, как часы.

Ну и небольшой отрицательный момент. Я пользуюсь, очень активно, программкой под названием Видеорегистратор. За нее тоже я тоже деньги отдал. Программа нормально работала на новом планшете, никаких нареканий, плюс, работали функции, которые были недоступны на предыдущем планшете, например, стабилизация видео. После обновления ОС программа при старте записи стала стабильно падать. Поначалу, я думал, что возникли какие-то проблемы с записью на карту памяти - у меня настроена запись в каталог программы на внешней MicroSD карточке. Но, после того, как я в самой программе смог создать подкаталог в каталоге записи, стало понятно, что использование внешней карточки ни при чем. Тогда я решил отключать по одной функции программы, и первое, чего коснулся палец, был checkbox с галкой стабилизации. После выключения опции программа стала писать видео, но его качество упало. Нет, разрешение и скорость потока - все осталось прежним, но картинка на записи поплыла волнами. В программе есть настройка, которая пытается сгладить этот эффект, и, в принципе, ее включение несколько помогает, но, почему то, при повторном входе в программу, сама отметка, что опция включена, остается, но картинка плывет, как-будто опция выключена. Если тыкнуть в уже включенную опцию, все сразу нормализуется. Скорее всего, это ошибка в программе, я собираюсь сообщить о ней разработчику и, возможно, автор исправит этот глюк. Но вот то, что не работает видеостабилизация, немного напрягает. В первую очередь, потому, что штатная программа камеры имеет в настройках опцию стабилизации и, при ее включении, запись ведется без ошибок.

От частных случаев, связанных с программами, перейду к более общим свойствам системы. Ну, во-первых, возросло количество свободной памяти. Как я уже писал, весь мой софт остался на месте. При этом, должен сказать, что я довольно сильно напрягаю планшет. Не в плане того, что постоянно гоняю в игры, а в плане того, что у меня висит масса сервисов, частью которых я, может, и не пользуюсь, но держу на всякий случай. Речь, прежде всего, идет о всевозможных почтовиках - Outlook, Yandex Mail, GMail, точнее, сейчас уже Inbox. Далее, разнообразные облачные хранилища - Yandex Disk, OneDrive, Google Drive, Dropbox, Box, Asus WebStorage. Парочка социальных сетей - Одноклассники и Google+. Еще всяческие мессенджеры - Viber, ICQ, Skype, Hangouts. Все эти программы, так или иначе, отжирают память устройства, даже когда ими не пользуешься. Но я, в принципе, осознаю, на что иду.

Пользователи асусовских устройств знают, что в шторке Android-а есть приложение, которое позволяет очистить память, хотя бы, на время. Называется оно в пятерке Очистка, а в KitKat звалось более причудливо - Усиление. При открытии шторки иконка этого приложения показывает количество свободной на данный момент памяти. Так вот, когда на планшете была установлена версия Android 4.4.2, цифра эта колебалась в диапазоне 200-300 Мб и иконка, чаще всего, была желтой. Сейчас же  количество свободной памяти изменяется от 400 до 600 Мб и иконка практически все время зеленая. Наверное, это изменение связано со сменой виртуальной машины, используемой в Lollipop, но, возможно, что-то изменилось в самой прошивке, например, Asus, что-нибудь убрал. В общем, надо разбираться.

Смена виртуалки должна была повлиять еще на два параметра - быстродействие и энергопотребление. Что могу сказать про быстродействие. Да ничего, наверное. В игрухи я не гоняю, мерятся попугаями (Antutu и прочее) не очень люблю. Планшет, сам по себе, довольно мощный, поэтому я тормозов не замечал ни на KitKat, ни сейчас, в Lollipop. Все плавно и без нареканий. У меня, когда я за рулем, работает Видеорегистратор, Стрелка, Карты (либо Яндекс, либо Гугл), еще я слушаю музыку с помощью Kodi, и, после всего этого, он еще реагирует на переключения на рабочий стол, запуск каких-нибудь других программ, в общем - зверь.

А про энергопотребление... В принципе, последний update на KitKat-е лишил меня возможности жаловаться на неэффективность устройства. Если после первичной установки KitKat планшет за ночь терял по 20-30 процентов энергозапасов, то после обновления до 31-ой версии прошивки потери стали вполне приемлемыми - от двух до пяти процентов за ночь. Обновление до Lollipop ничего не ухудшило в этом смысле, и на том большое спасибо. Что же касается потребления под нагрузкой, тут опять могу привести опыт эксплуатации в автомобиле: все те же исходные - Видеорегистратор, Стрелка, Яндекс Навигатор, Kodi, яркость экрана где-то процентов 75-80 - яркий, солнечный день, плюс все беспроводные интерфейсы включены, так вот, за время поездки - около двух часов - батарея разрядилась до 57 процентов. На мой взгляд, вполне достойно. Кстати, под KitKat было примерно так же.

Ну и последнее - по очереди перечисления, но не по степени важности - что хотелось бы отметить. Речь пойдет о работе с внешней картой памяти. Я уже рассказывал, как я выходил из положения, обусловленного ограничениями KitKat на запись на внешнюю карту памяти. Видимо, вал негатива был настолько силен, что Google пришлось прислушаться и что-то изменить. А может они просто изменили что-то, ни к кому не прислушиваясь. Но оставим этот важный вопрос в стороне (прислушались / не прислушались), перейдем к самим изменениям.

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

Первое - программа должна использовать новые возможности Storage Access Framework, а именно, использовать интент OPEN_DOCUMENT_TREE и несколько новых, или обновленных, функций SDK.

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

Третье - удача. У меня на планшете все заработало, как надо, у товарища на HTC One M8 - не заработало, хотя в сети есть видео, как именно на этой модели смартфона все замечательно пашет. Есть предположение, правда, что не заработало по причине того, что карточка в его телефоне была отформатирована как-то не так, может, без указания имени тома, а может, не в той файловой системе.

На самом деле, это и радостная и грустная весть одновременно. Радостная - потому, что теперь не надо получать root доступ к устройству и можно не ограничиваться только каталогом приложения. Грустная - потому, что пока разработчики не соизволят воспользоваться новым API и не выпустят новые версии своих программ, ничего работать не будет. Из моего опыта: файловый менеджер ES Проводник уже обзавелся поддержкой нового API, и у меня получилось дать ему права на запись на всю внешнюю SD карту, а файловый менеджер Total Commander - не обзавелся и по прежнему не умеет писать на MicroSD карточку - никуда, кроме своего собственного каталога. Вот так.

На самом деле, во всей этой истории с записью на внешнюю карту памяти, довольно много нюансов. Например, дали вы каким-то программам доступ, а каким - забыли. Где посмотреть? Я так понимаю, что, в настоящее время - нигде. То есть, в принципе, посмотреть можно, но не на самом планшете, а на компьютере, если подключить к нему планшет и воспользоваться программой adb. Вот нужная команда:

adb shell dumpsys activity providers

Но как тоже самое получить на планшете - я не нашел.

Следующий вопрос. Вот дали вы какому-то приложению доступ для записи в какую-то папку, а потом передумали и хотите отобрать. Есть ли такая возможность? К счастью да. Но, с потерями. Первый, очень радикальный способ - можно удалить программу и заново ее установить. Второй способ не столь кардинален, но тоже не идеален - надо в Настройках устройства очистить данные приложения. Естественно, вместе с правами доступа, удалятся и другие данные программы, так что, возникает логичный вопрос о практической применимости данного метода. Других методов обнаружить не удалось, возможно, пока. Применять оба способа можно, если предварительно забэкапить данные программы, а после приведения какого-то из методов в действие - восстановить их. Но тут возникает вопрос о возможностях бэкаперов - будут ли бэкапиться только данные, или же данные вместе с разрешениями? Если с разрешениями, то после восстановления, ну, сами понимаете... Все это сильно зависит от конкретных используемых приложений, так что, следует быть очень внимательными. И это еще один хороший повод подумать, прежде чем увидеть древнюю Москву без санкции соответствующих органов выдать права какому-либо приложению на доступ к файловой системе внешней карточки.

Дальше - больше. Что будет, если вы смените карточку, вставленную в слот вашего планшета? Ответ таков: вам придется отдельно давать доступ к каждой карточке, которую вы вставляете в устройство. В принципе, это, наверное, логично. То есть, дали вы файловому менеджеру доступ к корню карточки, потом вынули ее и вставили другую. Файловый менеджер писать на новую карточку не будет, придется давать доступ заново. Зато когда вы вернете первую карточку в планшет, файловый менеджер будет писать на нее без проблем.

Еще один вопрос. Вот дали вы доступ приложению в какую-то папку, не в корневую. Прошло время и вам понадобилось разрешить доступ на запись этой же программе в другую папку на этой же карточке. Можно это сделать? В принципе, это следствие предыдущего случая, поэтому ответ: да, можно. То есть, система для каждого приложения будет помнить список каталогов, к которым вы дали право доступа на запись.

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

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

А, да, вот так выглядит процесс выдачи прав на запись на microSD карточку для ES Проводнка:

Запускаем ES Проводник и выбираем Локальное хранилище

Нам нужна внешняя карточка

Попробуем создать что-нибудь прямо в корне карты

Например, файл

Задаем имя новому файлу и жмем Ок

Читаем сообщение, смотрим картинки, делаем свой выбор

В панели нет ничего, но это не беда

Выйдя из панели открываем меню

Нам нужно отобразить SD карту

Возвращаемся в боковую панель

Вот она, наша внешняя карта памяти

Выбираем корневой каталог

И файл создан

Ну вот теперь, пожалуй все.

P.S. Так получилось, что с момента, как я написал этот материал, прошло уже довольно много времени. Опубликовать можно было уже много раз, но я все тянул, непонятно почему. Точнее, я знаю, почему - все решал, как лучше представлять серию снимков экрана, описывающую тот или иной процесс: как просто последовательность вставленных изображений, или же в виде слайд шоу. В конечном счете, решение было принято - использовать (по крайней мере, пока) последовательность изображений. Как все это происходило - тема для отдельного поста. Пока же, все остается как есть, жалко только, что времени потрачено много. Утешает лишь, что не напрасно. К тому же, произошло приятное событие. Я писал в этом сообщении, что доступ к внешней карте памяти будет доступен только тогда, когда авторы программ начнут использовать новое API. В качестве примера программы, в котором новое API не используется, я привел Total Commander. Так вот, пока я медлил с публикацией, Total Commander обновился, и теперь он тоже умеет работать с внешней картой памяти в стиле Android Lollipop. Ниже я привожу серию снимков экрана, описывающих процесс создания нового каталога в корне внешней карты памяти с помощью Total Commander:

Выбираем внешнюю карту памяти
Будем создавать подкаталог, поэтому выбираем меню
и в меню выбираем нужный пункт
Вводим имя нового подкаталога
Внимательно читаем предупреждение и соглашаемся
Далее уже по накатанному; выбираем внешнюю карту
Теперь выбираем корневой каталог внешней карты памяти
И вот он, новый подкаталог
Вот теперь, пожалуй, все.







Комментариев нет:

Отправить комментарий