повторное использование кода Android (нативная Java) во фрейме внутри веб-приложения или настольного приложения - PullRequest
1 голос
/ 16 октября 2019

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

так как это делается шаг за шагом?

IИнтересно, есть ли специальный инструмент для этого.

Ответы [ 2 ]

2 голосов
/ 16 октября 2019

Я не думаю, что есть полное руководство, потому что это утомительная работа. В приведенном вами примере показано преобразование

Android -> Swing . Поэтому я проиллюстрирую это несколькими примерами:

  • Если у вас есть View в вашем приложении для Android, вы замените его на JPanel для свинга.
  • Если у вас естьButton, вы заменяете его на JButton
  • Иногда элементы могут выглядеть одинаково, но они делают разные вещи, например CardView и CardPane. Это усложняет ситуацию.
  • Возможно, у андроида View s нет подходящей пары в разгаре, поэтому вам придется импровизировать там

Но, конечно, все не так просто. Установка свойств представлений будет совершенно другой. Более того, Android использует XML, в то время как в Swing вам нужно все устанавливать программно.

Единственное, что обычно встречается, это то, что они оба основаны на Java. Поэтому мой лучший совет - не пытайтесь «конвертировать» свой код. Возможно, вы сможете повторно использовать некоторые чистые части Java, но кроме этого я предлагаю вам переписать приложение, используя инструменты других платформ.

1 голос
/ 16 октября 2019

вы не можете использовать код Android в веб-приложении или на рабочем столе,

сначала вы должны отделить бизнес-код от кода пользовательского интерфейса

бизнес-код может быть в чистом Java-модуле(полностью пригодный для повторного использования)

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

...