Android - Создать приложение с чистой Java и без XML? - PullRequest
24 голосов
/ 07 ноября 2011

Мне интересно, возможно ли создать приложение для Android только с Java. Нет XML, нет других вещей.

В Eclipse, когда я создаю новый проект Android, автоматически генерируется xml-файл манифеста и основной xml-файл макета. Могу ли я удалить эти файлы и заменить их Java-файлом?

Ответы [ 5 ]

13 голосов
/ 07 ноября 2011

Для макетов у вас есть два варианта

  1. Объявление элементов пользовательского интерфейса в XML. Android предоставляет простой словарь XML, соответствующий классам и подклассам View, например, для виджетов и макетов.

  2. Создание элементов макета во время выполнения. Ваше приложение может создавать объекты View и ViewGroup (и управлять их свойствами) программным способом.

Так что по первому вопросу - да - вы можете удалить файлы макета XML (если необходимо).

Я думаю, что вы не можете избавиться от manifest.xml .. Цитата:

Каждое приложение должно иметь файл AndroidManifest.xml (именно с этим именем) в своем корневом каталоге.

6 голосов
/ 07 ноября 2011

Можно ли избежать XML? Да, за исключением манифеста и, возможно, некоторых объявлений тем (я не уверен, существуют ли общедоступные эквиваленты Java для всего, что мы можем установить с помощью тем).

Это хорошая идея? Небеса, нет.

Смысл системы ресурсов состоит в том, чтобы позволить Android прозрачно передавать вам необходимые ресурсы, необходимые устройству в настоящий момент, на основе как постоянных характеристик устройства (например, плотности экрана), так и переходных характеристик устройства (например, портрет или . альбомная ориентация).

Чтобы избежать ресурсов, вам придется пройти через кучу операторов if, чтобы определить, какой кусок Java-кода запустить, обнаруживая все эти вещи вручную. Это значительно усложняется, если принять во внимание изменения в самом Android, поскольку новые изменения конфигурации и значения добавляются, что затрудняет вам поддержку всего, что вам необходимо, в обратно совместимой форме.

Попутно вы потеряете всю поддержку инструментов (создание графического интерфейса с помощью перетаскивания, ассистенты строковых ресурсов MOTODEV Studio и т. Д.), За исключением простого редактирования и отладки Java.

Кажется, вы ставите свои собственные технические предпочтения выше всех других соображений. Если это небольшой личный проект, это может быть хорошим подходом. Однако если вы создаете код, который будет разрабатываться и / или поддерживаться другими со временем, вам необходимо учитывать потребности этих других разработчиков, и они могут быть гораздо более открыты для XML, чем вы.

2 голосов
/ 07 ноября 2011

Взгляните на это видео, только что опубликованное командой Android: http://www.parleys.com/#st=5&id=2191&sl=8

Это все о макетах и ​​включает в себя, как макетировать приложения, используя Java, а не XML. Однако вас предупреждают, что команда Android хочет, чтобы вы использовали XML ...

1 голос
/ 07 ноября 2011

Можно создать все файлы макетов из кода.Но рекомендуется использовать файлы макета XML.

AndroidManifest.xml не может быть заменен кодом, поскольку система использует данные, включенные в этот файл.

0 голосов
/ 12 июля 2018

Я полностью согласен с Van Coding. Если у вас есть подходящий язык программирования, вы можете написать гораздо более краткие определения макета, чем с AXML. Пример C # как заменить макеты AXML

ViewGroup Layout(ViewGroup layout, IList<View> contents) {
    if (contents != null)
        foreach (View v in contents)
            layout.AddView(v);

    return layout;
}
...