Использование awt с Android
У меня есть приложение Java Swing, которое рисует диаграммы. Он использует вызовы Graphics2D и объекты awt, такие как Rectangle и т.д.
В какой-то момент я мог бы портировать это на Android. Я понимаю, что я не могу использовать Graphics2D на Android, но могу ли я использовать классы awt Rectangle, Font, Color (и т.д.).
Что я хочу сделать, так это изолировать любые изменения кода между версией swing и версией Android, добавив слой эмуляции, чтобы мои вызовы Graphics2D можно было преобразовать в вызовы на червяк Android.
Возможно ли это?
Просто, чтобы быть ясным, меня не слишком беспокоит сторона Swing UI (пользовательский интерфейс минимален и может быть переписан для Android), меня беспокоит фактический код чертежа, который вызывает Graphics2D из многих мест.
Ответы
Ответ 1
Основная проблема заключается в том, что вы не сможете создавать классы в пакетах с именем java.awt
. Но за исключением этой точки, в основном вы можете переписать библиотеку на основе awt API.
Вы также можете проверить проект awt-android-compat.
Ответ 2
http://www.apogee.com/ содержит коммерческие продукты, которые позволят вам запускать программы Swing на Android.
Обратите внимание: я никогда не использовал этот продукт, поэтому я не могу комментировать, насколько он хорош.
Ответ 3
Кажется, что часть кода AWT является частью базового пакета Android
см. http://google.com/codesearch/p?hl=en#uX1GffpyOZk/awt/java/awt/Graphics2D.java&q=Graphics2D&sa=N&cd=1&ct=rc