Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр 2D-аркадный рогалик о подземных раскопках! Разрушайте блоки в погоне за сокровищами, улучшайте свой бур и развивайте навыки. Выполняйте задания, соревнуйтесь с друзьями и докажите, что вы — самый лучший искатель сокровищ!

Бурить-Копать!

Аркады, Мидкорные, 2D

Играть

Топ прошлой недели

  • Oskanov Oskanov 9 постов
  • Animalrescueed Animalrescueed 46 постов
  • AlexKud AlexKud 33 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

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

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
11
DELETED
2 года назад

Дело было вечером⁠⁠

Копалась вечером в спаме, нашла смску от Мегамаркета. Обещали скидку до 95% (промокод на 1000 р.) при заказе от 1050 р. Че то ничего на ум не пришло, по приколу кинула креветок 2 пачки и 2 пачки сливок, люблю с утра кофе со сливками попить) До последнего думала, что какое-то наебалово. 14 рублей за все 😀 *звуки еврейской радости*

Показать полностью 2
[моё] Мегамаркет Халява Ништяки Мат Длиннопост
19
651
monobogdan
monobogdan
2 года назад
TECHNO BROTHER

Микросмартфон за 100 рублей: Покупаем смартфон 11-летней давности и… пишем под него приложения⁠⁠



Размер экрана — краеугольный камень мира современных смартфонов. Кто-то считает, что дисплеи должны становиться только больше, а рамки — меньше, кто-то любит «средние» дисплеи диагональю в 5+", ну а кто-то остаётся ярым поклонником и приверженцем компактных смартфонов с крошечными дисплейчиками. В наше время, купить новый смартфон с относительно небольшим дисплеем за приемлемые деньги почти нереально — самые бюджетные модели будут слишком тормозными для современного пользователя. Некоторое время назад, я купил себе бюджетный крошечный смартфон 2012 года выпуска — Samsung Galaxy Pocket, причём всего за 100 рублей. Конечно же мне захотелось довести его до ума — а доводить пришлось руками и навыками прожженного программера! Какой смартфон можно получить за 100 рублей? Читаем в статье!

Минутка предыстории

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



Однако несмотря на всеобщее засилие больших «лопат», в мире всё ещё оставались поклонники маленьких и компактных телефонов, которыми очень удобно пользоваться одной рукой. Сейчас подобные устройства представляют только небольшие бренды, известные достаточно в узких кругах — в основном, их можно купить на маркетплейсах, в обычных салонах связи их не найти. Мне известно о нескольких подобных устройствах, которые сейчас присутствуют на рынке. Первый из них «закос» под iPhone — Soyes XS11:



Но тут уж, если честно, хочется назвать такой смартфон не просто компактным, а совсем малюсеньким. На нём вполне удобно выполнять задачи звонилки, но совсем неудобно набирать текст — поэтому под наши задачи, он не особо подходит. Кроме того, эти девайсы работают на базе бюджетного смартфонного железа 6-7 летней давности, поэтому их производительность будет достаточно невысокой по меркам современного пользователя. Конечно же есть и более серьёзные варианты — например, компания Unihertz (да, тот самый продолжатель идей BlackBerry) делает смартфоны Jelly 2: дисплей с диагональю 3", Helio P61 под капотом и Android 11 на борту. Вот только цена, мягко говоря, кусачая — 18 тысяч рублей на момент написания статьи. Это слишком дорого!

Но если душа прямо таки лежит к компактным смартфонам, почему бы не обратиться к рынку Б/У устройств и не присмотреть что-то из… прошлого десятилетия? А вариантов ведь реально много — тут и LG Optimus L3 (3.2"), и Samsung Galaxy Pocket Neo (2.8"), Samsung Galaxy Star (3"), Samsung Galaxy Fame (3.5"), Samsung Galaxy Young. Все перечисленные девайсы стоят реально копейки — можно купить живой вариант до 400-500 рублей!



Я решил взять себе целых два смартфона: Samsung Galaxy Mini и Samsung Galaxy Pocket первого поколения. Оба достались мне в одном лоте за 2.000 рублей (с 20 телефонами) и обошлись мне по сто рублей, причём оба смартфона были рабочими! Чуть позже я докупил отдельно Galaxy Star (250 рублей), Galaxy Fame (250 рублей) и Galaxy Pocket Neo (~400 рублей) для полноты коллекции — вышло совсем недорого. Итак, что за характеристики мы получаем в смартфоне за 100 рублей:

  • Android: 2.3 Gingerbread.

  • Чипсет: Broadcom BCM21553 с одним ядром Cortex-A5 на частоте 832мгц. Видеочип: VideoCore IV, он же использовался в Raspberry Pi.

  • ОЗУ: 256 мегабайт (предположительно — DDR1).

  • Встроенная память: 3 гигабайта + слот для SD.

  • Дисплей: 2.8", 240x320, емкостной тачскрин.

  • Сеть: Поддержка 2G/3G. Об LTE и речи не идёт.



Выглядит не особо густо, да? И разрешение весьма низкое — большинство софта не запустится, а о клиентах современных сервисов и мечтать не приходится… или приходится?



Конечно же шаловливым ручкам захотелось вернуть жизнь этому миниатюрному красавцу и я решил использовать его как второй смартфон — при этом с клиентом ВК и музыкой, которые я запилил сам.

Разработка под старые версии Android

На самом деле, разработка под старые версии Android не особо отличается от современных версий системы. Кое-где приходится костылить, велосипедить и юзать AppCompat для реализации современных фишек на старых версий системы, но, будем честным, подобного и в последних версиях Android достаточно.

Даже сейчас нет никакой проблемы скачать последнюю версию Android Studio, подключить смартфон с включенной отладкой и отлаживать приложение прямо на девайсе — logcat тоже есть. Единственный нюанс — поиск драйверов и ручное закрытие приложений в таскменеджере, если вы деплоите под Android 2.x (Android Studio не умеет сам закрывать приложение, чтобы переустановить пакет).


В целом, за всё время разработки под старые устройства, я пришёл к следующим выводам:

  • Поскольку большинство устройств имеет одно ядро, для плавности интерфейса нужно минимизировать любую работу в фоне.

  • Взаимодействие с современными веб-сервисами может быть осложнено из-за отсутствия поддержки TLS1.2 и устаревших сертификатов (проверка сертификатов легко обходится специальным костылем, а вот TLS — нет).

  • У Android до 3.0 вся отрисовка интерфейса программная и она опять же, будет сказываться на скорости работы фоновых служб. Чем менее интерфейс комплексный, тем лучше.

  • Пушей нет — да, вообще. Однако это ничуть не помешает нам сделать уведомления практически в реальном времени с помощью… очередного костыля!



Допиливаем ВК

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

Честно сказать, вся концепция интерфейса требовала полной переработки — боковое меню банально очень неудобно использовать на подобных устройствах из-за малых размеров каждой строчки. Поэтому я решил не изобретать велосипед, а обратился к дизайнерам Apple и первоисточнику: официальному клиенту ВК для iOS 6, родом из 2012 года!



Приложение для Android выглядело +- также в те годы. Видите вкладки с разделами снизу? Они то нам и нужны — это самый удобный способ навигации на таких смартфонах! Накидав макет в layout'е, я приступил к реализации:



Изначально мне хотелось, чтобы всё приложение было плавным и анимированным: для этого я обратился к фреймворку анимаций Android. Суть очень простая — это обычный интерполятор значений от a до b за определенный промежуток времени. При этом мы не можем анимировать произвольное свойство — только те, который уже реализованы в системе (переход, поворот, масштабирование, альфа-канал). Более наглядно это можно представить вот так:



Да, это всё анимация :) Получаем примерно такой результат:

Обратите внимание, что запуск большого количества анимаций будет вызывать перерисовку даже в том случае, если элемент не видно на экране — от чего у нас будут дикие тормоза! Осторожнее с этим.

После этого, я решил доработать раздел с музыкой: я все еще пользуюсь грязными хаками для получения доступа к API музыки, поскольку «левым» клиентам такой возможности не дают. Публично его расписывать не буду, поскольку это скорее всего нелегально, да и сами ребята из ВК об этом знают (но не думаю, что будут применять какие-то санкции по отношению к «маленьким» разработчикам) — но если нужно, пишите в личку, расскажу всю концепцию.

Во первых, мне хотелось добавить возможность скачивать треки на внутреннюю память/флэшку. А во вторых, мне хотелось добавить фоновое воспроизведение — до этого возможность свернуть приложение и послушать музыку уже была, однако Android мог в любой момент прибить окно с музыкой и оставить нас с носом, остаётся только реализация в виде foreground-сервиса:

В Android есть два типа служб: background (фоновые) и foreground (видимые пользователю). Первый тип служб система может прибить когда угодно — например мало памяти или экономия заряда АКБ. А вот второй тип служб система не прибивает практически никогда, поскольку они обозначают выполнение важной операции в фоне — например скачивание файла или обновление системы. Однако у них есть одно ограничение — они должны быть привязаны к собственному уведомлению, которое нельзя закрыть. В процессе реализации возникло еще пару проблем — Wakelock'и (механизм, предотвращающий уход девайса в «сон») и WiFiLock'и (тоже самое, но для WiFi).

Точно таким же способом я реализовал механизм уведомлений — как я уже говорил раньше, пушей на старых смартфонах нет вообще ни в каком виде, поэтому пришлось реализовывать свой механизм «обновления»: каждые 3-5 секунд запрашиваем список последних 5 диалогов с сервера и сравниваем с предыдущим результатом, если есть новые сообщения — создаём нотификацию (листинг слишком длинный - пришлось перезалить на pastebin):

private NotificationCompat.Builder createMessageNotification(String sender, Stri - Pastebin.com

После этого, я начал рутинную работу по реализации интерфейса для данных с сервера — паблики, друзья, профили, лента и.т.п. В некотором смысле, реализация лента весьма занимательна: вообще, для очень больших списков существуют т.н виртуализация ListView — это когда ListView отображает только видимый пользователю кусок датасета (набора данных — например, список записей на стене) и на старых версиях Android она доступна. Однако мне было интересно реализовать вариант, который потреблял бы минимальное количество ОЗУ и где я точно знал бы, когда пользователь видит тот или иной фрагмент приложения. Поэтому я реализовал… пагинацию свайпами! Вот так привет из нулевых!

Для этого я использовал GestureDetector — встроенный в систему класс для обнаружения простых жестов — свайпов и.т.п. ВК при запросе ленты отдаёт специальную метку для получения следующей страницы новостей (поскольку она может динамически меняться и нужно хранить её стейт), мы эти метки просто сохраняем и переключаемся по странницам новостей с помощью обычных свайпов вправо-влево:


Выглядит весьма забавно.

Юзабельно ли всё это на деле?

Давайте смотреть, может ли юзать такой смартфон в наши дни. Берём наш девайс в руки, логинимся и оцениваем его производительность «вхолостую».



Работает весьма шустренько, учитывая что это бюджетник 2012 года. Как насчет нашего самопального клиента ВК? Смотрим:


Работает весьма бодро. Не сказать что также плавно, как последний айфон, но и совсем плохим результат явно не назвать!

Смартфонный функционал у девайса тоже вполне ничего: 1-2 SIM (в зависимости от версии), нормальная синхронизация контактов с ПК (однако Kies вроде-бы не работает на Windows 10, но есть vcf):



Встроенный почтовый клиент продолжает работать без каких либо проблем. Однако настраивать некоторые почтовые сервисы нужно вручную и с помощью «паролей приложений» — напрямую залогинится возможности нет. В случае «покета», придется поставить стоковый клиент из Android 2.3 вручную.
Мультимедийные возможности тоже радуют: встроенный плеер тачвиза мне всегда очень нравился. Есть и настройки эквалайзера.

Единственное, что откровенно подводит — браузер. Последним вариантом осталась Opera Mini 7 — она позволяет смотреть сайты, но не поддерживает динамический контент, только статику. Ну, зайти на википедию или почитать статью на Хабре хватит. Родной браузер уже не в состоянии что либо загрузить :(



Ну а в общем, производителньость смартфона весьма радует, согласитесь? Нельзя сказать, что он уж слишком тормозной — по крайней мере, современные ультрабюджетные смартфоны (до 4-5 тысяч рублей) зачастую показывают себя гораздо хуже чем и флагманы прошлых лет, и даже бюджетники!

Заключение

И всё таки, я считаю что мне удалось в каком-то смысле вдохнуть новую жизнь в старенький девайс. Если использовать подобный девайс как второй — на случай, если сел основной смартфон, то такой миниатюрный красаввчик может неождианно выручить даже в довольно сложной ситуации. Кроме того, эти смартфоны всеядны к аккумуляторам — достаточно подпаять + и — и они будут работать хоть от BL-4C.

Главная ценность Galaxy Pocket — в его компактных размерах. А поскольку по настоящему дешевых, маленьких и шустрых смартфонов становится всё меньше и меньше, то нам остаётся лишь продлять жизнь моделям прошлых лет! Есть ли в этом смысл и получил ли смартфон новую жизнь? Пишите в комментариях!


Клиент ВК можно сказать на 4pda. Там лежит самая последняя версия (для скачивания нужна регистрация на форуме). Если по каким-то причинам не хотите регистрироваться на форуме — я выложил актуальную версию в комментариях.


Эта статья поддерживается командой ITGLOBAL.COM

Мы — первый облачный провайдер в России, а также интегратор, поставщик ИТ-услуг, продуктов, сервисов и разработчик собственного ПО.

• Наш сайт
• Наш блог про виртуализацию и Enterprise IT
• Истории успеха наших клиентов

Показать полностью 13 2
[моё] Гаджеты Android Смартфон Покупка Galaxy Samsung Java Программирование Самопал ВКонтакте Ретро Девайс Ништяки Мобильные телефоны Электроника Телефон Linux Видео Без звука Вертикальное видео YouTube Длиннопост
91
Storm136
Storm136
2 года назад
TECHNO BROTHER

Ответ на пост «Не дадим Windows Phone умереть! Как я написал свои клиенты VK, YouTube для Nokia Lumia? Сам себе экосистема ч.2»⁠⁠1

Это все конечно здорово, энтузиазм дело хорошее.
Может с точки зрения разработчика эта система супер-пупер крутая.
Но с точки зрения пользователя - это редкостное говнище. Хуже только, наверное, виста на пк (в целом под нее и подгонялось).
Судя по интерфейсу и дизайну - система делалась как раз для разработчиков, мол как у нас классно, можно вот это написать, это запрограммировать, это сделать». Но для обычных пользователей это все нахер не надо. Человек хочет достать телефон из кармана, позвонить, отправить пару сообщений, посмотреть видосики и всё. И он хочет, что бы его глазам это было приятно. Виндафон этого не давал даже на 1%. В нем было хреново абсолютно всё от интерфейса до реализации структуры.
Это раз.
Второе:

А вы посмотрите на свой Android-смартфон сейчас. Сколько в нём ОЗУ? 4гб? 8гб? 12гб? Смущает ли вас то, что Android умудряется неприятно подтормаживать даже с такими ресурсами? А теперь вспомните Lumia 520: Snapdragon 200, 512 мегабайт оперативной памяти. Вот так она работает из коробки.

С точки зрения разработчика это полнейшая чушь и ложь. И либо ты не понимаешь как работают системы, либо пытаешься обмануть нас. С каждым годом приложения становятся сложнее и им требуется больше ресурсов. Да может где то это не оптимально. Да, может что то можно было бы лучше. Но общая тенденция это увеличение ресурсопотребления приложений из-за улучшения графики, увеличения вычислительных процессов, усложнения логики приложений.
И это все равно что сравнивать первую денди и PS5. На ПСке сколько оперативки? 32? 64? 128? И все равно некоторые игры тормозят. А вот на денди Марио не тормозил! Ну это же полнейшая чушь.
Это же фактический обман.
Плюс сама по себе система wp это максимально сырое тесто. Хочешь хорошо - бери напильник.
А людям надо что бы ты достал из коробки и сразу стало хорошо.

Вот простое объяснение того, что это система говно и к нее нет и никогда не было будущего.
Друг, это мертвая система которая никогда не будет воскрешена. Она убогая и неприятная (имхо).
И яблоки снискали такую популярность всего лишь по одной причине - они дали людям то, что им нужно - красоту и простоту. К счастью они нашли ровно тот ключик который был нужен.
А все вот эти архаизмы типа wp давно уже умерли и никогда не воскреснут.
А ты сейчас занимаешься некрофилией. Без обид, но по фактам.

Показать полностью
[моё] Гаджеты Смартфон Мобильные телефоны Windows Windows Phone Nokia Lumia Nokia Ретро Девайс Ништяки Windows 10 Arm Программирование ВКонтакте YouTube Ответ на пост Текст
24
1485
monobogdan
monobogdan
2 года назад
TECHNO BROTHER

Не дадим Windows Phone умереть! Как я написал свои клиенты VK, YouTube для Nokia Lumia? Сам себе экосистема ч.2⁠⁠1


Windows Phone… услышав название этой мобильной системы, поневоле начинаешь с теплотой вспоминать своего недавнего, такого необычного мобильного друга, как будто прошло всего пару месяцев с момента смены смартфона на iPhone/Android. А ведь с момента фактической смерти Windows Phone прошло уже почти 10 лет! Увы, время вспять уже не повернуть, а мобильное подразделение Nokia не спасти, однако при наличии навыков разработки мобильных приложений, большом энтузиазме и фанатизме, есть шанс вернуть жизнь своему старому другу! Недавно я снова загорелся диким энтузиазмом и смог вернуть жизнь старенькой «люмии», написав собственные клиенты нужных мне сервисов с нуля — и готов поделиться этим с вами во всех подробностях!

Сегодня вы узнаете о моей мотивации привносить жизнь старым смартфонам, о тонкостях разработки мобильных приложений, чем Windiows Phone был на голову выше Android в техническом плане и о том, почему провал Windows Phone — одна из самых больших потерь мобильного рынка. Интересно? Тогда добро пожаловать в статью!

❯ Предыстория


Пожалуй, довольно большой процент моих читателей и подписчиков когда-либо владел и пользовался смартфонами на Windows Phone. Мнение пользователей этой мобильной платформы во многом разнится — кто-то восхваляет по настоящему продуманный и плавный интерфейс, кто-то ругает Microsoft за «кидалово» с обновлениями, но большинство людей сходится во мнении, что Windows Phone — была действительно необычной и имела собственную изюминку.


Конечно же, Windows Phone была далеко не первым опытом Microsoft на мобильном рынке. До этого, Редмондская компания поддерживала очень крутую платформу для коммуникаторов и КПК под названием Windows Mobile. Фактически, это был полноценный компьютер в кармане — большинство кнопочных телефонов могли максимум запускать простенькие J2ME-приложения, в то время как WM позволял запускать множество самых разных программ — как написанных на C++/Pascal, так и написанных на C#/VB.Net. Мобильная платформа во всём пыталась подражать своему старшему брату — API системы было очень похоже на то, что мы видим в обычной Windows — тут и полноценная оконная система, и waveout для вывода звука, и GDI для вывода графики.


Windows Mobile прочно занимал свою нишу на мобильном рынке: HTC постоянно представляла новые модели коммуникаторов, которые довольно хорошо продавались. Но тут пришёл первый iPhone, который перевернул всё с ног на голову. Оказывается смартфоном можно управлять полностью пальцами, нажимая на красивые, анимированные элементы интерфейса! Это перевернуло всю индустрию — даже Nokia с её Symbian было тяжело конкурировать с продуктом от Apple. Microsoft видела, что пользователи хотят не столько свободы и кастомизации в системе, сколько плавности интерфейса, стабильности и простоты использования.


Плеер Zune HD стал дебютом свежего подхода к созданию интерфейсов — Metro UI. И хотя сам девайс не сыскал особой популярности, став в некоторой степени провальным, Microsoft взяла на вооружение концепцию этого интерфейса, дабы реализовать её уже в полноценной мобильной ОС. В октябре 2010 года выходит первая версия новой мобильной платформы Microsoft — Windows Phone 7, заложившая фундамент той самой системы, которую мы с вами до сих пор вспоминаем с теплотой!


На WP7 вышло весьма много устройств: тут и девайсы от HTC, и смартфоны Lumia от Nokia, и даже продолжение линейки Omnia от Samsung! Но были у этой платформы и серьезные минусы: она базировалась на ядре обычной Windows CE (оно же использовалось в Windows Mobile) и из-за желания повысить безопасность системы, Microsoft отключила возможность использовать код на нативных языках в своих приложениях. Кроме того, во многих аспектах WP7 была достаточно сырая — хотя для неё регулярно выходили обновления.

❯ Почему провал WP — трагедия для мобильного рынка?


Конечно же параллельно с доработкой WP7, Microsoft разрабатывала новую версию ОС, которая должна была объединить мобильные и десктопные приложения в одну общую концепцию. Кроме того, разработчики решили отказаться от лёгкого ядра Windows CE в пользу более тяжелого и продвинутого ядра Windows NT, которое используется в полноценных версиях Windows.


К сожалению, апгрейда с WP7 на WP8 предусмотрено не было, что многие пользователи считают «кидаловом» со стороны Microsoft. Отчасти это так, но проблема была в том, что даже флагманские устройства на WP7 имели 512мб ОЗУ, чего было недостаточно для первой версии WP8. Думаю, в какой-то степени Microsoft просто не хотели портить имидж максимально плавных смартфонов тормозами обновленной системы, хотя примеры шустрой работы на 512мб ОЗУ есть — например, Lumia 520.


Но вот где WP8 была передовой, так это «под капотом». Microsoft смогли сделать что-то невообразимое для мира ARM-устройств: они реализовали нормальный слой абстракции от «железа» и ввели концепцию ACPI, знакомую нам из обычных десктопных ПК. Вкратце, ACPI — это что-то типа списка железа в устройстве, под которое ОС должна найти и загрузить драйверы, не забыв под это всё выделить ресурсы (devicetree в Linux реализует похожую концепцию). Кроме того, Microsoft реализовала полноценный UEFI в своих смартфонах, что позволяло, например, сделать дуалбут в будущем. На практике это всё означает то, что даже неподдерживаемые No-Name смартфоны можно было обновить до Windows 10, банально поменяв пару ключей в реестре: на Android-устройствах такое невообразимо. Фактически, это стандартизация ARM-железа.


На этом технические фишки Windows Phone не заканчиваются. Переходя к пользовательской части, стоит упомянуть фреймворк для построения интерфейса (WPF/Silverlight), который из коробки работает очень шустро, отлично масштабируется под разные размер экрана и предлагает мощные возможности по анимации и кастомизации интерфейса под стиль приложения. Да и само SDK навязывало изначально правильную концепцию программирования, заставляя выделять все задачи в отдельные потоки, не только задействуя дополнительные ядра процессора, но и улучшая пользовательский опыт от приложения (неправильно написанные Android-приложения легко могут подвисать при выполнении какой-то работы).


И третья классная фишка, про которую почему-то все забыли — это поддержка DirectX 11. Конечно в WP7 уже была поддержка Xna (именно на его базе написана Terraria), что позволяло писать игры одновременно для Windows, Xbox 360 и собственно мобилок, но он имел некоторые ограничения и был прослойкой между графическим API (как Direct3D или OpenGL) и самой игрой. Windows Phone 8 же давал настоящий, полноценный DirectX 11 — хотя и поддерживал максимум вторые шейдеры, но при этом умел те фишки, которые не умел Android — инстансинг для оптимальной отрисовки геометрии, установка стейтов «пачками» и эффективное «bindless» управление ресурсами шейдеров. Теоретически, это давало возможность портировать полноценные игры с ПК/Xbox на Windows Phone, хотя на практике не так много кто этим пользовался.


Ну и вспоминая аргумент про кидалово Microsoft с обновлениями, нужно помнить, что обратная совместимость с приложениями для более ранних версий системы была: на Windows Phone 8 можно было играть в годноту с Windows Phone 7 (NFS Undercover, NFS Hot Pursuit, Mirrors Edge и ещё некоторые классные мобильные игры), а на Windows 10 Mobile можно было запускать почти любое приложение для Windows Phone 8.


Так в чём же потеря WP — трагедия для мобильного рынка? А вы посмотрите на свой Android-смартфон сейчас. Сколько в нём ОЗУ? 4гб? 8гб? 12гб? Смущает ли вас то, что Android умудряется неприятно подтормаживать даже с такими ресурсами? А теперь вспомните Lumia 520: Snapdragon 200, 512 мегабайт оперативной памяти. Вот так она работает из коробки:

Думаю, это всё красноречиво объясняет то, что без WP случилась дуополия на рынке — Android продолжает жиреть, впустую жрать ресурсы и при этом практически не получать новых фишек из года в год, а iPhone хоть и остаётся всё такой же плавной и шустрой, ребята из Apple явно не чувствуют конкуренции и их смартфоны стагнируют в плане дизайна и в некоторой степени интерфейса…

❯ Мотивация


Мои давние читатели знают мою любовь к смартфонам прошлых лет. Для меня нет понятия запланированного устаревания: если под устройство есть комплект разработки и документация, то при большом желании я могу дописать нужные мне приложения сам.
Мой проект SelfEco (сам себе экосистема) как раз об этом — почти полгода назад я написал клиент YouTube и ВК для Android 2.2+. Фактически это означает, что мои приложения работали на ВСЕХ Android смартфонах от 2010 года и новее.


Исходным кодом своих приложений я свободно делюсь — как в качестве примера читателям, так и для возможности каких-то фиксов в будущем или даже модов. В 2021-2022 году я ходил с Lumia 640XL с Win10 Mobile на борту, как с основным смартфоном. И в целом, меня все устраивало и всё нравилось: там и годный клиент ВК был (LunaVK), и клиент телеги нормальный, и браузер кое-какие страницы всё ещё нормально переваривал. Но больше всего мне нравится Windows Phone 8 — она работает ещё шустрее и несколько более строгая в плане дизайна. Да и «люмии» сейчас стоят сущие копейки — моя 640XL обошлась мне в100 российских рублей(~1.5$ по тому курсу), я не шучу. А на онлайн-барахолках можно найтиживые, целыеаппараты с нормальными аккумуляторами по 200-500 рублей, иногда даже в родных коробочках!


Lumia 1320 и Lumia 640XL — подарки читателя Kotenilla!
Дак почему бы не применить всю эту круть и мощь во благо, учитывая дешевизну смартфонов? Решено: Качаем SDK и пишем собственный клиент ВК и YouTube — это минимально-необходимые для меня приложения!

❯ Подготовка


Для того, чтобы отлаживать и устанавливать сторонние приложения на смартфоны с Windows Phone, их нужно предварительно разблокировать и сделать «Interop Unlock». Процедура несложная и занимает немного времени на большинстве люмий. Дабы сильно не затягивать статью, я не буду описывать процесс разлочки здесь — его можно найти на 4pda для разных поколений устройств.

❯ YouTube


Начинаем с клиента ютуба. Собственно, концепция отнюдь не поменялась с прошлой статьи — мы всё так же используем API Invidous для получения информации о видео. Нативное API YouTube — полная дичь, да ещё и с ограничениями на один токен, в то время как Invidous сам распоряжается токенами и распределяет их как нужно. Нам лишь остаётся написать «морду», которая будет отображать полученные с сервера данные и передавать ссылку на видео в встроенный плеер.


В отличии от Android, никаких проблем с TLS не возникло: смартфон смог без проблем связаться с инстансом Invidous и получить данные о видео в трендах. Сам по себе, формат ответов очень простой и возвращается в виде JSON, который можно описать такой иерархией:

Практически сразу система нам навязывает распараллелленую парадигму написания кода — часть API банально не имеет синхронных аналогов! Например, из WebRequest убрали GetResponse, дабы неопытные разработчики не делали ошибок и не пытались вызывать долгие I/O операции в главном потоке (что вызывает подвисания приложения). .NET сам по себе имеет крутой механизм тасков (многопоточных задач) и реализацию концепции async/await, которая позволяет подождать выполнение операции, не блокируя остальное приложение.

Я решил придержаться более привычной мне концепции на коллбэках, которая позволяет более четко обрабатывать ошибки в подобных кейсах, да и в целом я не очень люблю подобный синтаксический сахар (а async/await и есть «сахар», поскольку разворачивается в стейт-машину). В качестве десериализатора (механизма парсинга JSON напрямую в экземпляры классов, используя рефлексию) я использовал классический Newtonsoft.Json.

После того, как механизм получения и обработки данных с сервера был готов, я начал реализовывать интерфейс приложения. И вот тут WP показал себя во всей красе. ListView? RecycleView? Нафиг эти костыли, винфон умеет нормально рисовать элементы интерфейса, которые вы выделили в ScrollView. И что забавно: в Android даже реализация с ScrollView при активной подгрузке данных вызывала лаги — на WP такого нет вообще! Тут всё просто работает из коробки!

Механизм анимаций здесь тоже декларативный и реализован в концепции т.н «сторибордов» — наборов действий, которые позволяют создавать достаточно сложные анимации вручную.

Буквально через пару часов после создания проекта, у меня уже была готова загрузка и отображение списка трендов:

А затем и логика воспроизведения видео, которая запускает встроенный плеер и передаёт в него ссылку на видео — которая выбирается относительно кодека (только mp4), разрешения устройства и предпочтений пользователя:

Кроме того, в приложение нужно было добавить настройки — для этого WP8 не предоставляет встроенных средств, нужно реализовывать логику самому. Впрочем, ничего сложного в этом нет — глобальный синглтон с полями настроек и логикой сохранения/загрузки (сюда код не поместился, нет нормальной подсветки кода).

WP предоставляет специальное изолированное хранилище для пользовательских программ — IsolatedStorage, в которое нельзя добраться из остальной системы (без разблокированного загрузчика и режима Mass Storage). Там же можно хранить и конфиги — правда с некоторым API для файлов сильно перемудрили — навязывать распараллеливание чтения обычно маленьких файлов — это совсем уже.

Итак, буквально за сутки разработки у меня получилось реализовать приложение, которое может выводить списки ютуба по региону (тренды/популярное), может искать видео и воспроизводить ролики с различными разрешениями. Кроме того, приложение умеет подгружать превьюшки и имеет собственный раздел истории. Неплохо за 24 часа для программиста, который фактически не имел опыта с платформой UWP/WinRT в прошлом, да? :)

❯ ВК


Теперь пришло время реализовать клиент ВК! Фактически, ничего сложного в реализации клиента с базовым функционалом нет — это всё такая же «морда» к данным с сервера, к которым добавляется необходимость получать уведомления и реализовывать логику обновления данных.
На этот раз, я решил выбрать API WP8.1: оно гораздо более богатое на возможности и ближе к современному UWP, чем Silverlight из WP8. Так уж сложилось, что API обычного WP8 ближе к WP7 и совместимо с WP8.1 только с помощью специальной прослойки.

Я не ставил целью написать полноценную замену ныне не рабочему официальному клиенту, но я хотел чтобы моё приложение поддерживало базовый функционал:

  • Мессенджер: Конечно же, самое важное в нашем клиенте — это мессенджер.

  • Музыка: Куда ж без удобной ВК музыки? Её реализация в кастомных клиентах отнюдь несложная, но достаточно костыльная из-за политики ВК в отношении лицензирования аудио. Снова будем идти на хаки, дабы получить работающее приложение!

  • Новости: Помимо общения и прослушивания музыки, бывает потребность полистать ленту — дабы узнать новости, или посмотреть свежие мемчики.


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

Класс-менеджер для общения с API ВК я решил реализовать по тому же принципу, что и для клиента YouTube: у нас есть два метода на всё-про всё, один сразу десериализовывает ответ в виде объекта Root (для каждого типа ответа — он свой, все они описаны в Data.Packet.Root):

До async/await я не дозрел и здесь :)
Спустя достаточно короткое время, у меня уже была готова подгрузка диалогов:

Реализация обновления во всех разделах одинаковая: есть метод RequestUpdate, который начинает процедуру обновления и получает данные с сервера, а затем ставит в очередь задачу на обновление UI из основного потока с помощью UpdateUI:

И механизма загрузки/отправки сообщений.
В целом, с этим ничего сложного нет, однако теперь самое время разобраться с нотификациями. Пуши я пока-что поднять не смог, вместо них пока что лонгполлинг — достаточно для нотификаций пока приложение находится в фоне, но система со временем «прибивает» неактивные задачи, а сделать «бесконечный» фоновый таск как в Android не выйдет — система очень строго относится к любой фоновой работе.

Пришло время заняться музыкой — вот это действительно важный функционал! Для работы с аудио, я использовал довольно старый, но известный способ, который ВК пока что не пофиксил. Не то чтобы это из вредности, просто сами ВК особо не идут на контакт для интеграции аудио в своё приложение — исключением стали лишь очень крупные клиенты, как Kate Mobile — а значит можно реализовать действительно важные штуки: например, скачивание треков напрямую в музыкальную библиотеку, дабы их можно было послушать оффлайн! Вся работа с музыкой производится через прокси-сервер, поэтому аудио должно быть открыто.

Реализация фонового прослушивания музыки достаточно похожа на другие платформы, но в то же время заметно отличается. Само приложение может воспроизводить звуки с помощью MediaElement или BackgroundMediaPlayer, однако при сворачивании звук будет приостановлен (в отличии от MediaPlayer на Android). Для фонового прослушивания музыки, Microsoft решили сделать отдельный сервис BackgroundMusicPlayer, который запускается при попытке получить доступ к плееру из программы. Общаться с этим сервисом можно через межпроцессные вызовы — RPC и система предоставляет для него API. Вкратце: нам нужно создать фоновую задачу в виде отдельного модуля WinRT, который будет получать RPC-посылки от Foreground приложения и если нужно — отсылать ответы обратно. Ничего сложного!

Отдельного внимания заслуживает механизм скачивания музыки в библиотеку. В WP, программы не могут просто так «вторгнуться» в личное пространство пользователя — им обязательно нужны разрешения. Но это ладно, запросить разрешение — совсем не проблема. Зато настоящая проблема — ПОЛНОСТЬЮ асинхронный API. Захотел найти дескриптор файла в ФС — асинхронно, захотел его открыть — снова асинхронно. Поскольку у меня вся работа по скачиванию ведется в отдельном воркере и я не боюсь за дедлоки, пришлось лепить костыли с Task.Wait() :)

А ещё ВК возвращает mp3 без ID3-тегов, поэтому мне пришлось вручную их дописывать, дабы музыка в плеере удобно сортировалась:

Кроме того, дабы иметь возможность управлять музыкой из других приложений и экрана блокировки, Microsoft предоставляет т.н интерфейс SMTC — общий оверлей окна регулировки громкости, который позволяет управлять воспроизведением музыки. Его реализация простая до жути — просто включаем нужные кнопки (IsPlayEnabled, IsPauseEnabled и.т.п), добавляем обработчик события нажатия кнопки и обновляем информацию и обложку с помощью DisplayUpdater.


❯ Заключение


Вот таким образом, буквально за несколько дней мы реализовали клиенты нужных нам приложений с базовым функционалом. Разработка клиента YT заняла ровно сутки, разработка клиента ВК — двое суток. Но можно ли всем этим добром по настоящему пользоваться и как оно работает на настоящем устройстве? Смотрите ниже:

Весьма достойно, да? Ещё до публикации статьи, я выложил клиент YT на 4pda и в профильный Telegram-чатик — люди благодарны и действительно довольны. Только в англоязычном чате о WP8.1 (не вклюая WM10 и WP7/WP8) более 2х тысяч человек! Так что да, девайсы прошлых лет действительно нужны достаточно большому числу пользователей.


Ну а разработка клиентов для меня была эдаким челленджом — пилить что-то полезное под новым API всегда интересно, дак ещё и сами девайсы очень крутые с точки зрения UX и скорости работы. А вы как считаете? Жду ваше мнение в комментариях!

Статья подготовлена при поддержке TimeWeb Cloud. Подписывайтесь на меня и @Timeweb.Cloud, чтобы не пропустить новые статьи каждую неделю!

Показать полностью 24
[моё] Гаджеты Смартфон Мобильные телефоны Windows Windows Phone Nokia Lumia Nokia Ретро Девайс Ништяки Windows 10 Arm Программирование ВКонтакте YouTube Видео Длиннопост
202
501
monobogdan
monobogdan
2 года назад
TECHNO BROTHER

Коллекционный ноутбук Ferrari… за 600 рублей. Что за ноутбук я купил по цене обеда в столовой?⁠⁠

В нулевых, ноутбуки обычно были слабыми рабочими машинками. Большинство лэптопов были предназначены для работы в офисе, серфинга в интернете, мультимедийных возможностей, однако ни о каких играх или тяжелой работе обычно речь и не шла. Типичный ноутбук тех лет работал на базе слабеньких процессоров VIA/Celeron-M/Pentium-M, обладал встроенной чипсетной графикой и 256-512мб ОЗУ и даже сейчас их можно купить за копейки на вторичке. Но сегодняшний девайс оказался крайне необычным: это флагманский брендовый ноутбук Acer Ferrari 2005 года выпуска, который обошелся он мне всего в 600 рублей и он оказался полностью рабочим! Предлагаю посмотреть подробнее на этот, безусловно, интереснейший коллекционный девайс поближе!




Что за ноутбук?



Ещё в двухтысячных, многие люди так или иначе с уважением относились к известным брендам и пользовались продукцией с их символикой. Вспомнить только все эти куртки с логотипами известных автомобильных брендов, всякие брелки, ботинки — своеобразный неофициальный «мерч» можно было увидеть почти во всех городах СНГ. Чуть позже появились даже телефоны в виде машинок, на которых гордо красовались надписи «Luxury» и логотипы известных премиум-автоконцернов.



Очевидно, что известные автоконцерны так или иначе выпускали официальный мерч со своим брендом, но большинство людей даже не слышали, что среди такого мерча были даже ноутбуки и смартфоны. Ещё в 2003 году, Acer стала спонсором гоночной команды Scuderia Ferrari и подписала контракт, разрешающий производителю ноутбуков использовать фирменную символику и бренды в своих продуктах. Таким образом, Acer сделали отдельную линейку ноутбуков премиум-класса, которые отличались не только флагманскими характеристиками, но и характерным дизайном в стиле Ferrari!



Однако, один из главных конкурентов Acer — компания Asus, тоже не оставались в сторонке и заключили похожее соглашение уже с… Lamborghini! Таким образом, одни из самых крупных производителей ноутбуков выпускали собственные «автомобильные» линейки премиального класса, где каждый лэптоп был крайне необычным и отличалось от остальной линейки устройств. Некоторые модели Asus Lamborghini, например, при включении ревели двигателем! Остается вопрос: почему у iRu не было линейки LADA в дизайне жигулей!?



Конечно за такой классный дизайн, мощное железо и бренд приходилось платить. Например, Ferrari 4000, который мы сегодня рассматриваем, стоил 2.199$ в августе 2005 года. Это действительно большая цена для тех лет, в глубинке РФ люди получали ~200$ в месяц в среднем. Немудрено, что за прошедшие годы, ноутбук получил статус коллекционного. И достался он мне за… 600 рублей (~7$) на вторичке, в неизвестном состоянии!



Как только я получил устройство, я сразу нашёл для него БП и попытался включил. И он оказался живым! Он включился и показал фирменную заставку с Ferrari! Моей радости не было предела и я уже был готов разобрать и обслужить этот ноутбук полностью. Как оказалось чуть позже — причины для этого конечно же были. Во первых, ноутбук через минуту выключился от перегрева, причём никакого воздуха из радиатора не было вообще. Во вторых, у ноутбука «украли» HDD, а в третьих: у него не работала клавиатура. Совсем. Ну что-ж, предлагаю разобрать его и попытаться привести в нормальный вид!



Обслуживаем и ремонтируем

Несмотря на то, что это устройство премиум-класса, никаких сложностей с его разборкой и обслуживанием нет. Переворачиваем ноутбук и видим, что кто-то украл пластиковые заглушки для слотов ОЗУ и Wi-Fi адаптера (куда их вечно теряют?), пластиковую заглушку DVD-привода и потерял аккумулятор. Не страшно, главное что и ОЗУ, и адаптер на месте! Откручиваем задние винтики:



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



Откладываем клавиатуру в сторону и откручиваем топкейс, который снимается вместе с дисплеем (!). После этого мы увидим саму материнскую плату. И да, как я уже говорил, её тоже нужно снимать для обслуживания охлаждения! В те годы, обычно доступ к охладу и практически всей обслуживаемой части ноутбука был очень простым, но Acer немножко страдали оверинжинирингом. Кроме того, меня привлекла остальная конструкция ноутбука: сначала я не понял, где находится LVDS-шлейф для подключения матрицы, но затем глянул внимательнее и обнаружил, что в топкейсе есть небольшая плата, которая имеет свой коннектор и вставляется «бутербродом» в коннектор на основной плате. Там же разведен коннектор матрицы. Ох уж этот Acer!



После этого, мы снова видим бутерброды из плат и кучу коннекторов, но для опытного технаря это проблем не составит: отключаем коннекторы, откручиваем материнскую плату и переворачиваем на другую сторону. И тут мы видим жемчужину ноутбука: довольно здоровая и мощная система охлаждения! Суть вот в чём: сам по себе, Turion — очень мощный и горячий процессор, к которым в пару идет довольно теплый чипсет и дискретный видеочип Radeon X700.



Обратите внимание на съёмный процессор — для современных ремонтников это уже давно артефакт прошлого. А тут хоб — и проц можно поменять на более мощный! Не уверен насчёт конкретно турионов, но ноутбучный PPGA478 для Pentium M был почти идентичен десктопному PGA478 за исключением пары пинов (были переходники).
Чтобы всё это оставалось достаточно хоолдным, нужна нехилая система охлаждения и даже эта не сказать, что справляется очень хорошо (даже после чистки температуры оставались ощутимыми). А вот и причина нерабочего охлада — кто-то отключил кулер. Причём сам коннектор в норме, ничего не выломано — подключаем обратно, подсобираем ноутбук и всё работает!



Термо-прокладки уже успели слегка рассыпаться за это время, поэтому кое-где я их заменил на дипкуловскую термопасту (хотя прокладки толстые и при следующем обслуживании лучше поставить именно их). Теперь собираем ноутбук в обратном порядке, включаем — и всё работает! Но нужно ещё подобрать новый HDD. Ноутбук поддерживает только IDE 2.5" жёсткие диски, которые нынче, можно сказать, редкость. Но в моей коробке с винтами нашлось парочку — я поставил на 20гб!



Ну и конечно же, нужно накатить систему и поставить драйвера. Тут я остаюсь неизменным себе и ставлю ZverCD, который вызывает у меня приятные ностальгические чувства.



Смотрим на девайс подробнее

Самый трушный опыт от использования ноутбука мы получили бы, если бы использовали оригинальный кастомизированый образ Windows, который тут использовался с завода. Обычно в ноутбуки подобного сегмента, производители предустанавливают различный софт в фирменном стиле и с поиском родных образов Windows частенько возникают проблемы.



В статье про нетбук от Nokia, у меня мелькал слабый Atom Z530, который по производительности наверное как… ну может быть топовый P III, или слабый P4. Turion 64 — уже совсем другой разговор, это действительно довольно шустрый чип, который догоняет десктопные Pentium D своих лет. Однако, если Pentium D обычно не требует серьезного охлаждения, то на турионе за производительность приходится платить жестким нагревом. Да, AMD такой AMD. Ниже результат бенчмарка CPU Queen:



Температура процессора в относительном простое достаточно высокая: 60-70 градусов. Для сравнения, Pentium M гораздо менее горячие, а процессоры VIA вообще редко за 50 выходят.



Иногда возникают проблемы с установкой драйвера на видеочип. Суть вот в чем: на некоторых старых ноутбуках, судя по всему, немного отличается ID чипа, который родной драйвер видеть не хочет — а значит, либо модифицировать inf, либо пытаться подсунуть драйвер вручную. И это не прикол ATI: на NVidia, как минимум серии FX, такое тоже было!

По всем остальным характеристикам, ноутбук в целом и сейчас неплох для не особо сложных задач: сервер для ксочки/халвы, веб-сервер, сервер для файлопомойки и конечно же игры. В последнем нам подсобит дискретка Radeon X800, которую в целом можно назвать неплохим видеочипом. Всяко лучше Intel HD Graphics!



Что касается базового серфинга, то на 1гб ОЗУ в хром даже можно не суватся. Это будут жесткие лаги и боль и слезы, вместо серфинга. Но если Вы большой любитель «классического» легкого интернета без JS, т.е вам хватит полистать opennet/LOR или на двачике покапчевать, то хватит и Dillo. В иных же случаях, серфить с таких ноутбуков сейчас не получится.

Другое дело сервер — тут и процессор весьма бодренький и вероятно получится поднять даже не просто личную страницу, а какой-то +- динамичный сайт с достаточной посещаемостью! Что касается файлового сервера, то варианта два: воткнуть «помоечный» HDD в слот для привода, либо обложится внешними HDD-кейсами. Понятное дело, что сервер лучше поднимать под линухом, под WinXP сейчас безопасно разве что SMB поднять в локалку.

Играем

Однако с чем этот ноутбук действительно очень неплохо справляется и сейчас, так это старые игры. Пройти классику уже в 20 раз? Да не вопрос, при том, что здесь без проблем потянет и достаточно свежая индюшатина.

Я не буду приводить в тест 2D игры- Fallout, Stronghold, HoMM этот ноутбук потянет вообще без каких либо проблем. Другое дело 3D игры, да желательно в HD разрешении — не зря же здесь ставили дисплей 1600 x 1200, когда даже на десктопах у многих оставались мониторы 1280x1024, а то и 1280x720!
NFSU2 с полузнком на средних, HD-разрешение, средний FPS 30-40 без просадок:



GTA Vice City, дальность прорисовки выкручена на максимум, HD разрешение: ~30-40 кадров, лагов не ощущается совсем. Экспиренс точно тот же, как был и у меня в свое время! Однако важно понимать, что установка карпаков очень сильно бьет по этой видяшке и FPS может резко просесть.

COD 4 MW уже не тянет. И хотя десктопная X1800 тянула даже MW3 в 30 фпс на минималках, то мобильная X800 даже первую «колду» уже едва тянет. 800x600, минималки, ватные 20-25 кадров:



Чудеса показывает HL2, которая работает вообще везде: там даже FFP фоллбек для старых «жифорсов» есть! На открытых локациях при средне-высоких настройках графики и HD-разрешении, игра выдает 40-50 кадров. Достойно!


Низкие


Средне-высокие

Заключение

Подобные ноутбуки тех лет уже действительно несколько потеряли актуальность в качестве повседневных машинок для современного человека. И ютубчик уже не посмотреть, и Хабр не полистать — современный веб стал слишком тяжелым для подобных машинок. Однако полезные применения у них все равно есть и в первую очередь для тех, кто с годами не потерял возможность наслаждаться старыми играми! Поэтому, если у вас где-то лежит подобный лэптоп, может не стоит его выбрасывать, а попробовать найти применение!? Старых друзей на свалку выкидывать не хорошо :)

Но если говорить касательно Ferrari, то это настоящая коллекционная штука, иметь которую в коллекции — настоящая гордость и которую нужно беречь!

Показать полностью 25
[моё] Ремонт техники Гаджеты Ремонт ноутбуков Ноутбук Девайс Редкость Ништяки Acer Ferrari Интересное Windows AMD Нетбук Ретро Длиннопост
82
83
monobogdan
monobogdan
2 года назад
TECHNO BROTHER

Почти одноплатник за 400 рублей: как применить дешёвый ТВ-стик 10-летней давности?⁠⁠

Официальная цена на последнюю модель Raspberry Pi составляет около 40$ за штучку. Однако купить её за такую цену невозможно, перекупы накручивают огромные ценники за одноплатники, основным преимуществом которых должна быть цена. И даже альтернативы от китайских друзей в виде Orange Pi или Banana Pi стоят как минимум 3-4 тысячи рублей, что по карману может быть не каждому. Но сейчас на барахолках можно найти старые и дешевые ТВ-стики по совершенно смешным ценам: 2-4$ за штучку, иногда даже с пультом и всеми кабелями. Почему бы не попробовать использовать их в качестве доступных одноплатников? Предлагаю попробовать.

Железный вопрос

Дисклеймер: Хотя такой стик вполне можно считать одноплатником, но прямым конкурентом RPi он не является — здесь нет GPIO. Спасибо за понимание.



Ещё в нулевых люди интересующиеся embedded и разработкой собственных устройств осваивали такие микроконтроллеры, как AVR и PIC32. Но область применений микроконтроллеров довольно узкая, если речь заходит о каких-то серьёзных применениях по типу быстрой обработки показаний с датчиков или реализации собственных компьтеров/игровых консолей. Конечно на рынке уже были DSP — цифровые сигнальные процессоры, которые были во много раз быстрее обычных микроконтроллеров и использовали все преимущества концепции VLIW (которая, кстати, применяется в отечественных процессорах Эльбрус), но раздобыть девкит, а тем более распаять его самому было настоящей проблемой для одиночек или даже небольших предприятий.



Поэтому с появлением одноплатных компьютеров всё стало гораздо проще: мы получаем вычислительные мощности среднего планшета/медиаплеера, но при этом, выполнено это всё в форм-факторе одной небольшой платы, где уже есть всё необходимое: подведено питание ко всем необходимым модулям, разведен USB-хаб, есть выходы на дисплей/телевизор и иногда на звук. Другим серьёзным преимуществом является открытость системы: в подобных платформах обычно используется Linux в том или ином виде (Android, десктопных Linux) или другие операционные системы. Производитель обычно предоставляет всё что нужно для разработки своих приложений и устройств на подобных платформах, в том числе исходники загрузчиков, device tree, исходный код ядра, а также полную схему устройства — это называется Open Source Hardware.



Я и сам давно интересовался одноплатниками, но, к сожалению, цены на них мягко скажем кусаются. Если искать какие-то старые и слабые модели по типу Raspberry Pi Zero, то даже на них цены конские (от 2.500 рублей на момент написания статьи). Приятный сюрприз сделали Orange Pi, выпустив в своё время 2G IoT с чипсетом RDA8810 за ~700 рублей, но его производство было прекращено около года назад. В один день, я смотрел объявления на авито/юле и приметил интересный девайс, коим оказался NoName ТВ-стик на чипе Rockchip RK3028A. Цена была указана более чем демократичная, всего 400 рублей. Не раздумывая, я забрал его для дальнейших экспериментов.

Характеристики


Когда я получил устройство, я удивился с его размеров: в небольшой корпус размером со флэшку умудрились засунуть полноценный и довольно мощный ARM-компьютер! Включив его, я практически сразу понял, в чём был недостаток: циклическая перезагрузка на логотипе. Из кнопок на устройстве была только Fn, которая ничего не делала, даже если включить устройство с ней. Кнопки RESET я также не нашёл. Пришло время его разобрать, благо сделать это не сложно: весь корпус держится на клипсах, которые нужно аккуратно расщелкнуть пластиковой картой.

Перед нами открывается вид платы, которую можно легко вытащить.



Из того, что мы видим, мы можем сделать следующие выводы:

  • Процессор: Rockchip RK3028A (RK302A) с двумя ядрами Cortex-A9, работающими на частоте 1.2ггц и графическим ускорителем Mali-400.

  • Память: 512 мегабайт, судя по всему, DDR2, одной банкой.

  • ПЗУ: NAND-чип Hynix H27UBG8T2CTR-BC 4гб. Есть место под eMMC, практически готовое к установке чипа (припаяны BGA шары).

  • Вход на питание: 5в, среднее потребление до 0.5А при пиковой нагрузке. Стик способен питаться даже от порта USB на ПК. Выходы на питание OTG и USB-портов тоже 5 вольт, а не 3.3 как на смартфонах.

  • Один полноценный USB 2.0 порт с питанием 5в + дополнительный порт USB-OTG для подключения к ПК или выведения дополнительного USB-хоста (с него тоже можно питать плату)

  • Слот MicroSD для расширения памяти, до 32гб SDHC

  • Что-то похожее на UART для диагностики платы (предположительно, обведено в синий прямоугольник).

  • Ну, и само собой, HDMI для передачи видео (до 1080p 60FPS) и звука

Прошивка


Прошивку пришлось поискать: название устройства я нашёл, это некий MK805II, родной прошивки на который найти не удалось (в том числе, по номеру платы). Но поскольку ромы TV-боксов практически идентичные и в них нет зависимости от тачскринов/дисплеев/расположений GPIO (обычно они построены на базе референсной платы), я принялся искать другие боксы на этом чипе. Попутно найдя даташит, я узнал, что RK3028A — это полный аналог RK3026 (отличие в корпусах — 3026 в LQFP) и BatchTool они определяется как RK301A (родственник RK3066). После недолгих поисков, я нашёл DEXP LD303, который работал на том же чипе и на той же версии Android. Прошивка в формате img скачана, пора прошивать устройство.



Но сначала в режим прошивки нужно войти. Для этого у процессоров Rockchip есть два режима: LOADER (стандартный прошивочный режим, который можно активировать зажав кнопку RESET) и MaskedROM (для прошивки новых устройств, только-только сошедших к конвейера и где память пока ещё пуста. Активируется, если загрузчик первого уровня не может найти загрузчик второго уровня). Если кнопки/контакта RESET у нас нет даже на плате, то остаётся только MaskedROM, который активировать очень легко, если у вас NAND память: необходимо просто замкнуть I/O линии иглой. При чтении загрузчика, процессор получит бессвязный набор байтов и сам перейдет в режим MaskedROM, тут то мы и сможем его прошить. I/O линии можно найти в даташите к вашему чипу памяти.


Замыкать можно любой из этих 4х пинов между собой.

Замыкаем контакты, подключаем устройство со стороны разъема OTG (на DC IN линии USB не разведены) к компьютеру. Устанавливаем драйвера.



И запускаем RkBatchTool.



Как только устройство будет обнаружено и драйвер правильно установлен, мы сможем прошить устройство. Жмём кнопку Restore (именно её, а не Upgrade) и ждём, пока программа запишет новый загрузчик, перезагрузит устройство в LOADER-режим, отформатирует память и запишет новый образ системы.



Всё, процесс прошивки завершен, бежим втыкать наш одноплатник в HDMI телевизора, подключать питание и ждать загрузки. Заработало! Для первичной настройки понадобится мышь, которую можно подключить в обычный USB-порт.

По итогу мы получили стабильно работающий TV-стик на базе Android 4.2. Не сказать, что система очень свежая, но тоже вполне ничего, на неё всё ещё можно жить. Попробуем найти ему применение. Ниже будут именно фото, а не скриншоты для того, чтобы вы могли увидеть как оно смотрится в действии, ну и потому что нет встроенного скриншоттера.

Тонкий клиент


Применений у такого стика есть масса, и одно из них — тонкий клиент. Помните, были такие машинки раньше? Это небольшие компьютеры, которые обладают минимальными характеристиками (процессоры ARM, Geode, MIPS, небольшой объем ОЗУ, в качестве ОС — Linux/WinCE), предназначенные для подключения к более мощным компьютерам/серверам и работы с них. При этом, тонкий клиент занимается обработкой ввода, выводом картинки, сетью и иногда умеет автономно выполнять часть задач и может комплектоваться жёстким диском.



Такой стик тоже можно использовать в качестве компактного тонкого клиента, подключив его сзади монитора. Выводим хаб, подключаем периферию и ставим клиент RDP. Я смог без проблем подключится к основному ПК и пользоваться им. Кроме того, Android поддерживает некоторую другую USB-периферию: потенциально, даже внешние Ethernet сетевые адаптеры. К слову, Wi-Fi на стике реализован в виде USB-свистка, припаянного к плате. Выводить такой ТК сможет картинку вплоть до 1080p, чего должно хватать всем.

Игровая приставка



2 ядра на частоте 1.2ггц и Malii-400 — весьма неплохие вычислительные ресурсы для игр. О современных Modern Combat и Call Of Duty Mobile можно забыть, но кто сказал, что на таком стике будет не во что играть? Android полностью поддерживает USB-геймпады в любом количестве, так что из устройства выйдет неплохая машинка для игр. А вот для каких?



Не так уж и много Android-игр начала десятых поддерживают геймпад. Из некоторых — почти все части Asphalt и другие игры Gameloft, некоторые игры на Unity, GTA (который, к слову, будет тяжеловат для игры даже в 720p на Mali400). Но те, что поддерживают, обычно работают неплохо. Кое где придется повозиться с настройками графики.
И с эмуляторами дела обстоят вполне ничего: денди/сега/PS1 проявляют себя хорошо. Увы, игры с PSP или Ps2 консоль не потянет: смотрите в сторону устройств с Amlogic S905X.

Компактный сервер


Да, это не шутка. На устройстве можно развернуть сервер, в том числе и файловый. Или разместить на нём персональную страницу — кто на что горазд. У устройства есть поддержка USB-HDD или флэшек.



Серверов различных типов на Android довольно много, поэтому найти применение в таком ключе мы тоже сможем.

Мультимедийная станция



Самый очевидный пункт, ведь даже производитель называет это устройство медиаплеером. Впрочем, не для всех могут быть очевидны большинство возможностей данного гаджета. В список того, что сможет такой стик сейчас входит не только проигрывание музыки или видео в качестве до 1080p, но и DLNA-медиасервер и возможность использовать что-то типа Invidous для просмотра YouTube.


MP4 h263, 1080p30

Сейчас в магазинах техники до сих пор продаются бюджетные телевизоры без поддержки возможностей Smart-TV, так что если бюджет очень сильно ограничен, а получить смарт-устройство хоть в каком-то виде хотелось бы, то чем не вариант? У некоторых ТВ-боксов (именно боксов), есть и аналоговые выходы, что позволяет подключить их даже к старым ЭЛТ-телевизорам. Наверняка тут есть кто-то, кто до сих пор фанатеет по тем здоровым телевизорам, размером с шкаф и весом в пару сотен килограмм?

Подведем итог


Похоже на то, что старенькие ТВ-стики всё ещё могут послужить человеку хорошую службу и остаться полезными даже спустя 9-10 лет после их выпуска. Благодаря копеечной цене, поддержкой вывода изображения в FHD и наличию нескольких USB-хостов, подобные устройства могут оказаться крайне полезными на даче, в гараже или даже в офисе, особенно если есть нужда в тонком клиенте. Теоретически сюда есть возможность установить обычный десктопный linux, даже на отдельную SD-карту, но из-за малого объема ОЗУ и слабого, по меркам десктопного Linux, процессора, работать он будет так себе. Однако на барахолках стремительно дешевеют более мощные устройства на S905X и восьмиядерных, свежих RockChip'ах!

Конечно назвать это устройство полным аналогом RPi нельзя: тут нет гребёнки с GPIO. Но это не значит, что их нельзя реализовать самому: у нас есть потенциальный UART, у нас есть USB-хост, а значит с помощью самодельного GPIO Expander'а, мы сможем рулить пинами условной ардуины так, как нам нужно. Если вас заинтересовало такое устройство — то вперед на барахолки, выбор действительно большой.

Показать полностью 19
[моё] Гаджеты Покупка Техника Электроника Дешево Бомж Ремонт Ништяки Моддинг Android Консоли Игры Своими руками Длиннопост
20
42
dekik
dekik
2 года назад
Лига Велосипедистов

Скрипим, но едем #4⁠⁠

Из обновок к велосезону.

- Дешманская сидушка с Али - чуть пошире, есть отверстие для вентиляции:)

- Переход на систему с одной звездой - шатуны prowheel под квадрат, звезда на 32 зуба.

- Сковородка 11-46 назад с LTWOO AX - переключения отличные, цена отличная. НО ролики на переключателе так же NW и то ли цепь узковата из комплекта, то ли просто размером накосячили. Не сходила цепь нормально пришлось воспользоваться гаждачкой и подточить зубья.

- Защита пера оказалась так себе и клеевой слой стал отходить от самой резинки, но стяжки наше все.

Из занимательного, мне удалось погнуть ось на Novatec 042sb. Барабан начал шорхать об венец втулки. Сточили в мастерской чуток, пока езжу так.

Китай воздушке жива, работает.

Для любителей померяться 15.9 вес на стальной раме.

Показать полностью 2
[моё] Велосипед Ништяки Длиннопост
56
38
monobogdan
monobogdan
2 года назад
TECHNO BROTHER

Мой подписчик Дмитрий Пальчак (тот самый, что подарил Sony VAIO P, о котором недавно была статья), захотел подарить мне PS2 под дриставрацию⁠⁠

Ждём новую итерацию рубрики бомж-гейминга?)

Мой подписчик Дмитрий Пальчак (тот самый, что подарил Sony VAIO P, о котором недавно была статья), захотел подарить мне PS2 под дриставрацию
Показать полностью 1
[моё] Ништяки Гаджеты Консоли Playstation Реставрация
15
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии