Браузер: свой, портированный или через java vm?
Posted: Thu Jun 09, 2011 11:50 am
Хочу иметь браузер в Колибри. Не просто браузер, а с поддержкой таблиц, div'ов и других вкусностей. Писать код с нуля интересно и полезно, но я хочу потерпеть с этим, и для начала максимально быстро заполучить работающий браузер в Колибри. Самый быстрый вариант, по всей видимости - реализация java-машины и запуск какого-нибудь браузера в ней. Например, знаменитой Opera Mini.
Я смотрел на компилятор и интерпретатор Java проекта GNU, но он просто монструозный по размеру, и тянет за собой кучу зависимостей от GCC. Кто-то когда-то грозился собрать GCC для Kolibri, но пока GCC нет - не будет и GCJ (и слава Богу, админь!). Гораздо более привлекательной мне кажется реализация J2ME через JVM от Sun/Oracle. Сама виртуальная машина в скомпилированном виде занимает менее 128 килобайт, ее расширенная версия, способная запускать Opera Mini - около 400 килобайт. Руководство по портированию прилагается - подробнейшее и увлекательное.
Для компиляции требуется C99-совместимый компилятор и некоторый набор библиотечных функций. Полная реализация потребует следующих оберток:
Аргументы "за" и "против", хорошие идеи, пожелания, помощь - приветствуются.
UPD: собрал из исходников версию для Linux - полет отличный, размер бинарника - около 512 килобайт, используются только библиотеки X-сервера. Opera Mini шустро смотрит форум Колибри, поддерживаются жесты, ввод с клавиатуры, прокрутка и нажатие на ссылки мышью.
Я смотрел на компилятор и интерпретатор Java проекта GNU, но он просто монструозный по размеру, и тянет за собой кучу зависимостей от GCC. Кто-то когда-то грозился собрать GCC для Kolibri, но пока GCC нет - не будет и GCJ (и слава Богу, админь!). Гораздо более привлекательной мне кажется реализация J2ME через JVM от Sun/Oracle. Сама виртуальная машина в скомпилированном виде занимает менее 128 килобайт, ее расширенная версия, способная запускать Opera Mini - около 400 килобайт. Руководство по портированию прилагается - подробнейшее и увлекательное.
Для компиляции требуется C99-совместимый компилятор и некоторый набор библиотечных функций. Полная реализация потребует следующих оберток:
- Файловая система (open close read write stat lseek ftruncate fstat mkdir opendir readdir closedir)
Эмуляция LCDUI, включая рисование примитивов
Сокеты (включая HTTP/1.1 и HTTPS)
Звуковая подсистема (wav и сигналы)
MIDI (учитывая, что сам генератор уже в коде имеется, нужно лишь сделать фронт-энд для вывода сгенерированных wav)
Аргументы "за" и "против", хорошие идеи, пожелания, помощь - приветствуются.
UPD: собрал из исходников версию для Linux - полет отличный, размер бинарника - около 512 килобайт, используются только библиотеки X-сервера. Opera Mini шустро смотрит форум Колибри, поддерживаются жесты, ввод с клавиатуры, прокрутка и нажатие на ссылки мышью.