Создайте собственную библиотеку Android с Adobe Air

В настоящее время я работаю над Android-приложением, созданным с помощью Adobe Air sdk, в AS3. Мне было интересно, можно ли скомпилировать некоторую библиотеку пользовательского интерфейса, которую я могу импортировать в собственное приложение Android (Java). В принципе, я хотел бы создать свой интерфейс с Adobe Air, но основная часть моего приложения с Java - это родной путь.

То, что я имею в виду, - это преобразовать APK с воздушным потоком в файл Jar, который я бы импортировал в собственный проект приложения, и вызвать некоторые функции, которые отображают что-то на экране.

Возможно ли это? Я думаю, что это возможно, потому что, когда я не импортирую Adobe Air SDK в приложение, я должен установить приложение Adobe Air в Play Маркет, чтобы заставить мое приложение работать. Я не нахожу много вещей в Google об этом: s.

Благодарим вас за помощь.

Ответ 1

Да, это может быть сделано (теоретически), но держитесь за свою шляпу, это ухабистая поездка!

Я вижу, что это очень старый вопрос, с новой щедростью (вопросник не вошел в систему уже 3 года!), Но здесь мы идем...
Этот метод лежит в основе того, как создаются и запускаются приложения java для Android (т.е. DEX, поэтому он будет работать с adobe-air или НИЧЕГО, это фундаментальный [общий метод]). (кстати, вы используете слово native в запутанном виде, как правило, обычно понимается элемент библиотеки JNI (С++) приложения).
Вы говорите:

"То, что я имею в виду, состоит в том, чтобы преобразовать APOB с воздушным потоком в Jar файл, который я бы импортировал в собственный проект приложения, и позвонил некоторые функции, отображающие что-то на экране."

Программы Android скомпилированы в .dex(Dalvik Executable) [теперь называемые ART, но бинарные совместимые] файлы, которые, в свою очередь, zipped в один файл .apk на устройстве (с другими вещами, такими как манифест и ресурсы). (разархивируйте aapk и загляните внутрь).

Файл .jar содержит файлы DEX (zipped). (разархивируйте скомпилированный .jar и загляните внутрь).

Я уже проделал некоторую работу , например, здесь ссылка на учебник и примеры кодирования [проверенные мной] (в android studio + gradle) [обычно требуются элементы пользовательской сборки ( Я также даю пример ant)].

См. мой ответ Динамическая загрузка файлов DEX

Это теоретически отвечает на ваш вопрос, но это фундаментальный материал, сложный и имеет ограничения, которые затрудняют кодирование и поддержку (ресурсы - настоящая боль в ** e).

Вопрос: Все это кажется очень сложным и трудным!

Да, это так! Это невероятно глупая трудная вещь! Вот почему мы изобрели кроссплатформенные рамки (и для веб-кода javascript/css/html5...). В противном случае PORT-код.

Ответ 2

Я больше кодер Flash/AS3, чем Java, поэтому не могу дать вам полный ответ, но...

Лучшим подходом может быть просто рендеринг самого User Interface на основе SWF через Java-код (в отличие от компиляции SWF в формат APK, а затем попытки встроить Flash APK в Android APK).

Таким образом, ваш SWF может также взаимодействовать с функциями Java (через класс AS3 external Interface). Упрощение запуска функций Java при нажатии кнопки на SWF U.I и т.д.

Вам просто нужно найти библиотеку рендеринга SWF для Java.

Возможно, зайдите SWFTools. В частности, выглядит SWF Class. Я не тестировал эту библиотеку, но это могло бы помочь вам.

Ответ 4

Я вообще не разработчик Adobe AIR, но разработал несколько приложений для Android с родной средой и с какой-то структурой (в частности, PhoneGap). Итак, может это вам поможет.

Я не думаю, что был бы какой-нибудь инструмент, который мог бы напрямую конвертировать сборку мобильных приложений с использованием фреймворков, таких как Adobe AIR, PhoneGap или любой другой фреймворк на основе HTML5, в родное приложение для Android, потому что технически очень сложно и неосуществимо сделать правильное отображение между каждым элементом HTML5 (или элементом Flex в вашем случае) в соответствующий собственный элемент управления или логику. Лучшее, что вы можете сделать, это использовать механизм плагинов, предоставляемый вашей инфраструктурой для взаимодействия с Java и наоборот, и в основном именно поэтому существует инфраструктура. Для большинства основанных на HTML5 фреймворков существует механизм плагинов, который позволяет разработчику взаимодействовать с собственными функциями (такими как Фоновые службы, Активность или любой другой собственный ресурс). Даже эти фреймворки создаются с использованием того же модульного или плагинового подхода, и основные функции (доступ к собственным ресурсам Camera, Audio, SD Card и др.) Работают так. Мы должны включить эту функцию, прежде чем использовать ее в нашем приложении.

Итак, обратите внимание на тип механизма плагина в Adobe AIR.

Надеюсь, что это поможет.

Ответ 5

Возможно, это грязный способ помочь вам, но вы можете:

  • Установите программу подачи adobe на одном компьютере.
  • Скопируйте файлы установочной папки программы adobe air
  • Вставить все эти файлы в java-приложение
  • Установить java-приложение
  • Сохраните файлы adobe air в одной папке
  • Запустите adobe air с помощью java (например, вы сделаете это с помощью консоли, простое обращение к YourAirApp.exe)