Есть ли необходимость в реализации JAXB для Android?

Насколько я знаю, в настоящее время нет реализации JAXB, которая работала бы на платформе Android.

Я хотел бы задать простой вопрос: Нужен ли JAXB на Android?

Будучи энтузиастом JAXB, я подумываю написать реализацию JAXB для Android. Я, вероятно, не буду портировать JAXB RI, так как он слишком толст для мобильных приложений, я лучше напишу его с нуля. Я написал JAXB-порт для JavaScript, так что знаю, что с этим можно справиться.

Но нужно ли это вам, ребята? Или вас устраивают другие инструменты, такие как SimpleXML?


person lexicore    schedule 16.03.2012    source источник


Ответы (5)


Как разработчик Android, который много раз анализирует и обрабатывает XML и JSON почти в каждом приложении, которое я разрабатываю, мой ответ будет таким: нет, в Android нет необходимости в JAXB. Остальные инструменты идеально подходят для этого. Либо так, либо мы, разработчики Android, привыкли к отсутствию JAXB, и каждый из нас освоился с одной из альтернатив.

В моем случае я даже добиваюсь повторного использования кода, заменяя JAXB моей любимой библиотекой сериализации Android XML на сервере.

person curioustechizen    schedule 28.03.2012
comment
Что делать, если вы используете библиотеку, для которой требуется JAXB? Должны ли мы переписать и эту библиотеку? И поддерживать наш форк в актуальном состоянии, когда библиотека выпускает исправления ошибок безопасности? У меня есть более полезные проблемы, которые я должен решить с моим временем программирования. - person Geoffrey De Smet; 04.03.2013

lexicore есть потребность в JAXB на Android, SimpleXML великолепен, и я предпочитаю его JAXB в некоторых отношениях, однако JAXB является стандартом и широко используется.

Полезный пример, который был бы действительно замечательным, — это если бы приложение Android могло совместно использовать банку, полную JAXB POJO, с приложением EE и использовать их с вызовами RESTful для приложения EE.

person Justin    schedule 29.03.2012
comment
Я переупаковал JAXB RI. Android не поддерживает аннотации пакетов, поэтому для этого требуется обходной путь: code.google.com/p/android/issues/detail?id=16149 - person JasonPlutext; 14.05.2012

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

Кажется, он пользуется большим спросом, потому что виртуальная машина Dalvik не может поддерживать компоненты JAXB, основанные на отражении. Так что, возможно, в этом все-таки есть польза. :)

person MrGomez    schedule 23.03.2012
comment
Я думаю, что в этой ветке говорится, что JAXB на самом деле не поддерживается на Android, или я ошибаюсь? - person lexicore; 23.03.2012
comment
Он не предустановлен в Android, но в треде указано, что вы можете внедрить его в свой APK. . Сложность: ниже и по всему Google есть множество творческих жалоб на то, что Dalvik VM не может обрабатывать отражающие компоненты. Итак, если подумать: даже если стандартные библиотеки используются в некотором качестве, по крайней мере, учебник и готовая реализация, которая работает в Android, кажется, очень востребованы. :) - person MrGomez; 23.03.2012
comment
См. docx4java.org/ blog/2012/05/jaxb-can-be-made-to-run-on-android, чтобы узнать, что вам нужно сделать, чтобы эталонная реализация работала на Android. - person JasonPlutext; 18.05.2012

Как оказалось, JAXB изначально не поддерживается Android. Альтернативой может быть включение библиотеки и ее использование, но это приведет к потере большого количества ресурсов (библиотека JAXB довольно велика).

В результате быстрого поиска IBM Developerworks обнаружил интересную статью. Я просмотрел документ. Я не думаю, что эта библиотека такая же мощная или универсальная, как JAXB, но она должна соответствовать всем требованиям для большинства намерений и целей. Более того, он изначально поддерживается Android, поэтому должен быть достаточно эффективным.

Ссылка на документ: http://www.ibm.com/developerworks/opensource/library/x-android/

Существует еще одна библиотека, которую многие настоятельно рекомендуют. Ссылка на SF: http://sourceforge.net/projects/simple/ ZIP-пакет весит всего 2,5 м, что означает, что он довольно легкий.

person Binaek Sarkar    schedule 23.03.2012
comment
Я действительно не ищу альтернатив JAXB. Мой вопрос, в частности, заключается в том, нравится ли людям реализация JAXB для Andorid. - person lexicore; 26.03.2012

Эталонная реализация JAXB требует около 3,5 МБ места и использует функции, отсутствующие в Android. Таким образом, реализация, совместимая с Android, будет больше, поскольку ей потребуется дополнительно реализовать эти функции.

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

person Jules    schedule 16.04.2013
comment
Мой порт JAXB для JavaScript был ок. 140кб. Аннотации и отражение, безусловно, являются проблемой, но я думаю, что ее можно обойти с помощью специальных плагинов XJC. В общем, я только что пришел к выводу, что усилия просто не будут стоить того. - person lexicore; 17.04.2013