Увидеть Android изнутри и...

6 октябрь, 2010 - 21:15Андрей Зубинский

влюбиться. Причём осознано.

Речь идёт о userspace Android. Это прекрасно. И очень узнаваемо.

Для начала - внезапное. Android - это Inferno (если кто знает такую ОС, кто не знает - тугугль).  С человеческим лицом и человеческим внутренним миром. Без ада Данте Алигьери и соответствующей терминологии.

Это я к тому, что ещё в субботу водрузил на свой компьютер SDK Android, в составе которого есть эмулятор системы (он для разработчиков и потому весьма неспешный, но если к нему добавить Eclipse и соответствующий плагин, всё просто поёт), ещё один эмулятор - пользовательский, шустрый, и залип на документации разработчика и книгах по пррограммированию Android.

Буду краток - браво, Google!

В userspace Android мне нравится всё. Хотел бы придраться к чему-либо, но не могу. И ключевая компонентная идея нравится - в Android надсистемное ПО строится из Java-компонентов, для чего Java-машина обладает способностью запускать не только main-функцию, но и любой класс (компонент). Безоговорочно нравятся механизмы  "пожеланий" (мне так приятнее переводить intents), приёмников широковещательных сигналов (broadcast recievers), провайдеров  контента, в общем - вся архитектура userspace. Файлы заголовка  (manifest file) - тоже прекрасно. И так далее. Я только пока заныриваюсь поглубже в userspace, и получаю удовольствие, какого давно не получал от программ вообще.

И имею кое-что сказать по этому поводу.

Нечто совершенно неожиданное.

А именно: в Google сделали ту самую пользовательскую Unix, о которой так долго и бесполезно болтают все, кому не лень. Да,  Android - это долгожданная user- и programmer- friendly Unix. На уровне userspace - она самая.

Поясню.

Пользовательский уровень Android сделан людьми для людей. Не  надо отдавать 10+ лет жизни на изучение middleware типа Corba. Не надо непрерывно изучать от версии к версии совершенствующиеся тулкиты. Не надо скакать от языка программирования к языку. Надо делать приложения, нужные и полезные людям.

Чёткая архитектура с прозрачным, обозримым и ясным набором ключевых классов компонентов (классов не в Java-смысле), фактически программная шина в основе общесистемного механизма оповещения, облегчённый до разумного предела IDL (Interface Description Language, это из мира middleware) и максимальное упрощение удалённого (в Android - межпроцессного) вызова процедур, надёжная защита от изнемогающих желанием что-нибудь написать начинающих системных программистов (которые плодят примитивы, тулкиты и штампованно одинаковые мелкие приложения, в Android в этом нет нужды, это можно, но система так устроена, что никакого смысла в этом я лично не вижу, а я такой не один). Это очень и очень много по сравнению с тем, что на уровне userspace смогли сделать во всех Unix-подобных проектах за Бог весть какие времена.

Стратегической ошибкой на userspace уровне Android, конечно же, было изначальное жёсткое фиксирование экранного разрешения 320x240. Ну просто недопустимая ошибка. Сейчас она исправляется, конечно. Очень хочется, чтобы впредь таких ошибок не было. Потому что ни KDE, ни Gnome - то, что сегодня формирует userspace Unix-подобных систем, - в подмётки Android не годятся (неврастеникам советую почитать программистскую документацию Android, хорошо подумать, а потом уже в меня плевать, если, конечно, потом захочется).

Берусь утверждать странное - userspace Android открывает второе дыхание... рабочим станциям Unix. Всё, чего не хватает системе - точного позиционирующего устройства (мышь + курсор), причём не фундаментально общесистемного, а инициируемого некоторой активностью (activity - это терминология Android, это компонент с пользовательским интерфейсом) по мере необходимости. Всё. Рабочая станция с тактильным экраном и возможностью точного позиционирования указателя - это очень OK. А тактильные экраны будут очень быстро падать в цене. Они уже очень быстро падают, а дальше всё будет ещё  быстрее.

В общем, Android внутри - это очень красиво и радостно.

Что ничуть не отменяет специфики нашего дивного "рынка" (я бы сказал - базара) при выборе Android-устройства как варианта покупки. В любом случае, андроидным таблетом я обзаведусь - уж больно понравилась система, редчайший случай, когда гиковский подход (а ниже userspace Android - чистый хак Linux) порождает такой красивый артефакт. Но не смартфоном. Потому что во всех прекрасных реалиях именно в смартфоне не вижу смысла, увы.

Отступлений от темы в этот раз не будет, продолжу возиться с эмулятором и книгами, очень уж это красиво. Советую всем программистам (особенно Javaлюбам) - загляните в Android. "Ето кайф, марожено!" ((с) Лесь Подервянский)