Добавьте XML-сериализованный объект в APK, чтобы он был скопирован в каталог личных файлов приложения

#android #xml #apk #xml-serialization #android-resources

Вопрос:

У меня есть настольное приложение, которое создает файлы ресурсов / данных для моего приложения для Android. Это текстовые XML-файлы, в которых хранятся экземпляры моего пользовательского класса данных. Эти объекты сериализуются с помощью простой библиотеки сериализации XML. В моем приложении для Android я хотел бы создавать экземпляры объектов из этого класса сериализации XML.

Мне нравится добавлять эти xml-файлы в Android Studio, чтобы они включались в APK при установке на устройство и помещались, например, в личный каталог приложений «файлы», в который сопоставляется getFilesDir (). Я не могу найти способ сделать это.

Если я добавлю эти XML-файлы в папку XML-ресурсов Android, мне нужно будет использовать анализатор XML-ресурсов Android, и я не смогу использовать простую библиотеку XML.

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

Спасибо, с наилучшими пожеланиями, Хармен

Комментарии:

1. «Я не могу найти способ сделать это» — для этого нет автоматической поддержки. Вы всегда можете скопировать данные из ресурса или ресурса в файл самостоятельно, если файл еще не существует. «Если я добавлю эти xml-файлы в папку XML-ресурсов Android, мне нужно будет использовать анализатор XML-ресурсов Android» — если вы используете необработанные ресурсы или ресурсы, вы можете получить InputStream доступ к своему контенту, который, по-видимому, поддерживается простым XML.

2. Спасибо. Это действительно решает мою проблему! Опубликовал это как ответ на мой вопрос.

Ответ №1:

Согласно комментарию CommonsWare: решение добавляло его в папку необработанных ресурсов, затем вы могли получить к нему доступ с помощью:

 InputStream xmlExerciseInputStream = getResources().openRawResource(R.raw.myresource);
MyClass myClass = serializer.read(MyClass.class, xmlExerciseInputStream);