Я разрабатываю приложение для Android, и я думаю, что его функциональность может быть полезна для других (работающих на Java) платформ (например, обычного настольного приложения), хотя я надеюсь, что другая платформа (-ы) задействована являются несущественными для рассматриваемого вопроса).
Маловероятно, что пользовательский интерфейс будет каким-либо образом переносимым (просто слишком большая разница между хорошим сенсорным интерфейсом, 4-дюймовым пользовательским интерфейсом и пользовательским интерфейсом 19-дюймового экрана мыши и клавиатуры), поэтому я счастлив достаточно переопределить это отдельно.
Однако основные понятия "бизнес-логика" (ugh, horrid word) и модель (хранилище данных) теоретически могут быть использованы при управлении основным приложением. Я заметил, что не так много классов, которые я пишу, которые не приводят ссылки на некоторые биты, специфичные для Android (в качестве примеров я имею файлы XML-ресурсов, изображения и базы данных SQLite). В основном все, что я написал до сих пор, имеет по крайней мере один импорт, связанный с Android.
Мой вопрос двоякий:
- Какие инструменты доступны, чтобы помочь мне использовать классы и функции, связанные с Android (например, ресурсы, базы данных) на платформах, отличных от Android; и
- В каких классах, функциях и т.д. платформы Android я должен полностью избегать использования (ради простоты, исключить элементы, связанные с пользовательским интерфейсом) из-за непереносимости, и что я должен использовать вместо этого, чтобы улучшить переносимость.
Ответы, которые состоят из "хахахаха, ты обречен", в порядке, если есть какое-то обоснование.
(P.S. Я бы сделал это сообщество wiki, если это было доступно, это похоже на идеальный CW-вопрос для меня - список советов и инструментов для мобильности Android)