Открыть главное меню

Изменения

ElfPack2

5899 байт убрано, 18:28, 18 июня 2011
Отличия и нововведения
CkX4WD <a href== Отличия и нововведения == ElfPack2 является улучшенной и полностью переработанной версией своего предшественника"http://qxjdkscqxyls. Достаточно упомянуть, что объём кода увеличился почти в 4 раза, и при этом они не имеют общего кода. *Для сборки эльфов используется компилятор GCC вместо ADScom/">qxjdkscqxyls<br/a>Переход на GCC позволил реализовать полноценную систему импортов и динамических библиотек. *Основная библиотека функций имеет более сложный формат, при этом в ней хранится её версия и версия прошивки, для которой библиотека предназначена[url=http://jkyglrwcvizx. При этом библиотека может быть перезагружена в любой момент - для этого более не требуется перезагружать телефон. *Исправлена недоработка, связанная с передачей параметров в эльф в виде char вместо WCHAR. *Более совершенный обработчик auto.run *Добавлена полноценная система импортов функций по их именам. Если ранее для этой цели использовались механизмы сомнительной надёжности, что не раз приводило к различным проблемам, то теперь процедура загрузки эльфа стала гораздо более надёжной. Это в том числе означает, что для каждого загружаемого эльфа проверяется наличие в библиотеках всех требуемых им функций, и выводится сообщение об ошибке, если обнаружены несоответствия. *Добавлена "Консоль" - встроенное в ElfPack средство для вывода текстовой информации на дисплей. В основном используется для вывода информации самим ElfPack-ом, но ещё позволяет выводить информацию и эльфам. Консоль будет полезна для фоновых эльфов. *Система callback-ов для вывода на дисплей средствами [[AHI]com/] ''параллельно'' с jkyglrwcvizx[[UIS]/url]. Таким, например, образом работает и Консоль[link=http://zriheztlzfzv*Shared libraries - так называют аналог DLL в com/]zriheztlzfzv[[Linux|линуксе/link]]. Это такие модули, содержащие функции, которые будучи однажды загружены в память, могут быть подлинкованы к различным эльфам. И также, как и с DLL, есть два варианта их подгрузки - статический и динамический. Первый подразумевает, что библиотека будет найдена и загружена в память в момент запуска эльфа. Второй означает, что эльф может загрузить любую библиотеку "на лету". Это позволяет вынести общий код, используемый сразу во множестве эльфов в отдельный модуль, который будет подгружен лишь единожды - получаем экономию памяти. Второе применение библиотек - возможность реализации полноценной системы плагинов. Shared libraries имеют расширение .so *Для предоставления своей функциональности эльфам, в ElfPack2 предусмотрен API - набор интерфейсных функций. Их описание можно посмотреть в файле loader2.h SDK. *Для настройки возможностей ElfPack2 есть конфигурационный файл, который находится в стандартном билде в http:/b/Elf2gfcmzbuhowfx.com/elfpack.cfg *В версии для E398 предусмотрена кнопка для пропуска обработки auto.run (настраивается при сборке эльфпакак, по умолчанию - "0") - полезно в случае добавления нерабочего эльфа в авторан. Просто зажмите нужную кнопку во время запуска телефона - и автозапуск обрабатываться не будет. Для других моделей - возможность ещё в разработке. Но, в любом случае, необходимо проверять эльфы на работоспособность запуском вручную, прежде чем добавлять их в автозапуск. *В процесс сборки эльфа добавилось ещё одно звено - postlinker. Основная функция этой программы - подготовить эльф для загрузки в ElfPack2. Эльфы, не прошедшие такую обработку, запускаться не будут. Также postlinker создаёт стандартные библиотеки функий из sym-файлов. *Важная особенность для русскоязычных разработчиков - теперь можно хранить исходники в кодировке UTF-8. За подробностями - ниже. 
== Библиотека функций ==
Анонимный участник