Интегрируйте приложение Android (.apk) в существующий проект Android
Здесь используется прецедент:
Друг и я строим приложение для Android, вместе с ним хотим интегрировать игру. Ядро приложения было построено в Eclipse, но мы изучаем создание игры с помощью инструмента для создания приложений, такого как Google AppInventer (http://appinventor.googlelabs.com/about/) или Corona (http://www.anscamobile.com/corona/). Мы хотели бы, чтобы существующее приложение, которое мы построили, имеет кнопку "Play Game", которая запустит игру, которую мы построим, используя одну из этих утилит.
Однако, когда я возился с Google App Inventor, я заметил, что я могу экспортировать проект только как .apk, который является двоичным файлом. В идеале я бы создал приложение в AppInventor, экспортировал исходный код и добавил пакет в наш существующий проект в Eclipse. Ну, это не так просто, поскольку у нас есть только доступ к файлу .apk. Итак, мой вопрос: это можно сделать? Как?
Некоторые предложили использовать apk decompiler, но это даже стоило? Есть ли хорошие декомпиляторы apk, которые предоставят нам доступ к некоторому исходному коду (java файлам, xml файлам, ресурсам) без слишком большой головной боли? Есть ли другой инструмент, который может экспортировать исходный код? Любой другой способ интегрировать 2 отдельных .apks?
Или нам нужно будет создать 2 отдельных приложения?: (
Ответы
Ответ 1
Проект, написанный в App Inventor, не может быть экспортирован в Eclipse.
Созданный файл .apk не является двоичным файлом. Это ZIP-архив нескольких файлов и папок, но ни один из них не является Java-кодом.
Что можно сделать, чтобы объединить приложение App Inventor с приложением, созданным в Android SDK, - это использовать компонент ActivityStarter внутри App Inventor. Подробности здесь:
http://appinventor.googlelabs.com/learn/reference/other/activitystarter.html
Наконец, имейте в виду, что приложения App Inventor нельзя загружать прямо на рынок. Однако некоторые пользователи создали процесс, который позволяет это сделать, он называется Marketizer.
Если вы потратите некоторое время на чтение сообщений с этого форума: programming-with-app-inventor (это форум Google Groups), вы можете получить еще лучшие идеи.
Ответ 2
Вы можете подумать о создании зависимости Project A как JAR и включить этот JAR файл в путь сборки вашего зависимого проекта B.
Для этого в Eclipse вам нужно нажать Экспорт > Java > JAR > {Выбрать проект и отменить AndroidManifest.xml} > Готово
Если вы не исключаете AndroidManifest.xml из своего проекта A, вы получите сообщение о том, что здесь дублируются файлы манифеста, описанные здесь.
Также вы можете получить следующую ошибку:
преобразование в формат dalvik завершилось с ошибкой 1
Исправить это просто очистить и перестроить проект
Я попробовал это для двух проектов, имеющих ссылку на ту же версию Android SDK, и это сработало. Обратите внимание: если вам нужно запустить активность из проекта A, вам также нужно объявить его в манифесте проекта B