Преон на Android - PullRequest
       33

Преон на Android

3 голосов
/ 10 марта 2011

Я безуспешно пытался запустить пример приложения Preon на Android 2.1. Интересно, возможно ли запустить приложение Preon на Android? Насколько сложно было бы сделать фреймворк Preon Dalvik дружественным?

Preon - это библиотека Java для создания кодеков для сжатых битовых данных декларативным способом. Подумайте, JAXB или Hibernate, но затем для двоичных данных, написанных Уилфредом Спрингером.


Ниже приведены мои выводы при попытке запустить простое приложение, использующее Preon в Android:

Preon зависит от Pecia. Pecia косвенно зависит от stax-api, который не поддерживается в Android. Используется ли stax-api для обработки ядра Preon? Можно ли исключить stax-api из зависимостей Preon?

После исключения pecia из зависимостей (не зная последствий), я обнаружил, что preon приносит несколько копий файла log4j.properties. Я предлагаю переместить файлы log4j.properties в каталог / src / test / resources в проектах preon и pecia, чтобы избежать их переноса с классами.

Из-за дублирования файлов log4j.properties в android-maven-plugin происходит сбой при достижении цели пакета со следующим сообщением:

[INFO] java.util.zip.ZipException: повторяющаяся запись: log4j.properties

[ИНФО] -------------------------------------------- ----------------------------

[INFO] СБОЙ СТРОИТЕЛЬСТВА

[ИНФО] -------------------------------------------- ----------------------------

[INFO] Общее время: 19,717 с

[INFO] Окончание: среда, 23 марта, 14:30:55 PST 2011

[ИНФО] Окончательная память: 7M / 62M

Ответы [ 2 ]

2 голосов
/ 29 марта 2011

Ну, я отвечу на свой вопрос. ВОЗМОЖНО использовать каркас Preon в Android. Однако Preon не работает из коробки. Мне удалось запустить пример приложения после внесения следующих изменений:
1. Я переместил все log4.properties в Preon проекты их соответствующий / src / test / resources каталог.
2. Удалить зависимость от pecia.
3. Вложены следующие интерфейсы от pecia в preon-binding:
DocumentElement.java
Documenter.java
Para.java
ParaContents.java
4. org.codehaus.preon.code.Codecs:
Я прокомментировал следующий импорт и весь связанный с ним код (те, которые не будут компилироваться после этого изменения):
import javax.xml.stream.XMLStreamException;
import nl.flotsam.pecia.builder.ArticleDocument;
import nl.flotsam.pecia.builder.base.DefaultArticleDocument;
import nl.flotsam.pecia.builder.base.DefaultDocumentBuilder;
import nl.flotsam.pecia.builder.html.HtmlDocumentBuilder;
import nl.flotsam.pecia.builder.xml.StreamingXmlWriter;
import nl.flotsam.pecia.builder.xml.XmlWriter;
5. org.codehaus.preon.codec.ObjectCodeFactory
прокомментировал:
/ * target.document (codec.getCodecDescriptor (). Reference (CodecDescriptor.Adjective.THE, false)); * /

Предложения:

Я предлагаю реорганизовать код preon, чтобы отделить код документации от зависимостей времени выполнения.

Уилфред, если хотите, я мог бы внести свой вклад в ваш проект.

Оскар.

0 голосов
/ 31 марта 2015

вы также можете взглянуть на Java Binary Block Parser , библиотека совместима с Android 2.1 +

...