Как портировать программу с пк на андроид
Довольно часто пользователи не могут найти любимые приложения в Google Play по причине того, что их удалили. Да, действительно, такое встречается сплошь и рядом. То из Маркета пропадут программы для скачивания музыки из ВК, то пропадёт небезызвестный XModGames, помогающий в онлайн играх, то что-нибудь ещё. В конце концов, у Вас попросту может не хватать трафика для скачивания того или иного приложения, ведь далеко не все они весят по 10 мегабайт. Некоторые игры и вовсе “перешагнули” планку в один гигабайт. Что же делать в таких случаях? Неужто нет обходных путей? Есть! Именно поэтому мы решили рассказать Вам, как установить приложение на Андроид с компьютера! Способов более чем предостаточно, но мы хорошенько подумали и остановились на двух наиболее действенных, простых и популярных. Они подойдут всем!
Как установить приложение на Андроид с компьютера
Как уже было сказано выше, мы подготовили два варианта: первый упирается в установку специализированной программы под названием «InstallAPK», второй – в использование собственной Google-почты. Ну, а самый простой способ, подключить смартфон к компьютеру по USB и закинуть скаченный .apk (приложение или игру) на телефон и далее, запустить, через проводник установочный файл. В некоторых случаях, требуется установка кэша, для этого прочитайте инструкцию: “Как установить игру с кэшем на Android”.Оба предельно просты. При желании их сможет освоить даже самый неопытный пользователь.
Вариант первый – установка приложений через InstallAPK
-
Устанавливаем программу – процесс предельно простой: достаточно несколько раз кликнуть по кнопке “далее”, пока не появится кнопка “установить”;
Gmail как установщик приложений
- Скачиваете на PC игры или приложение в формате .apk;
- Отправляете его себе же на почту;
- Заходите со смартфона или планшета в приложение Gmail (в более новых гаджетах - Inbox);
- Отыскиваете там только что отправленное письмо и прикреплённый файл, кликаете по нему и запускается установка.
Создание игры процесс захватывающий и познавательный. Особенно это заметно, когда ремейк «классики» делаешь сам, руководствуясь идеями оригинала и десятками часов, потраченных на прохождение кампании. У меня не было сколь-нибудь значимого опыта разработки для Android'a, поэтому создание работающего «как надо» приложения для планшета поначалу выглядело довольно туманно, но от этого не менее притягательно. При наличии времени и возможностей, можно стряхнуть пыль со старых игр, подмазать и подклеить, добавив поддержку «больших» разрешений и окажется, что они выглядят не хуже современных продуктов, выложенных на маркете, даже с палитрой RGB565 без альфа-канала. Я предполагал, что будут подводные камни и заботливо спрятанные грабли, которые лежат тихонько во время разработки, но больно лупят по голове, стоит запустить игру на реальном железе. Чего сильно не хватало, так это отладчика, а возникающие проблемы лишь укрепили желание достичь поставленной цели. Под катом будет рассказ о том, как это все заработало.
Стоит сразу предупредить, что это возможно будет рассказ о велосипедах, я не придумал ничего такого, что не гуглится на просторах «интернетов». Также Читатель вряд ли увидит новые решения или мега технологии, но найдет опробованные инструкции по сборке приложения, использующего SDL1/2, для Android.
Здравствуйте!
Ремейк игры Caesar III© начинался совсем не как отдельный проект, а скорее набор фиксов для количества жителей, поддержки «больших» разрешений и исследования декомпилированного кода оригинальной игры в поисках пасхалок и недокументированных режимов работы. А когда количество восстановленного кода перевалило за половину от общего, стало понятно, что можно попытаться восстановить игру. В качестве библиотеки отрисовки была выбрана SDL1.2, которая хорошо зарекомендовала себя в других проектах, а ещё проста в освоении и использовании. Ремейк поначалу был Linux-only, в начале этого года перебрался на другие платформы (Mac, Windows и Haiku), а потом у меня завелся вот такой планшет, а голове периодически возникали мысли «работает на одном линуксе, должно работать и на другом».
Попытка номер раз, удачная
У SDL версии 1.2 «из коробки» нет возможности работы под андроидом, зато есть замечательный проект libsdl-android, который позволяет, используя свое окружение и скрипты собирать код, использующий эту библиотеку в приложении для андроида. Собранное приложение может загрузить ресурсы как из интернета, так и распаковать из установщика. Сам libsdl-android содержит большое количество библиотек, которые могут вам понадобиться, начиная от bzip2 и разных кодеков, до самой SDL и его окружения SDL_image, SDL_mixer, ttf и другие. Если у игры нет платформозависимого кода, то портирование занимает несколько шагов:
;
unzip -o -qq $$ARCHIVE;
echo «Configure paths. »;
echo «export ANDROID_SDK=
/.bashrc;
echo «export ANDROID_NDK=
/.bashrc;
echo «export NDK_ROOT=\$$ANDROID_NDK» >>
/.bashrc;
echo «export PATH=\$$PATH:\$$ANDROID_NDK:\$$ANDROID_SDK/tools:\$$ANDROID_SDK/platform-tools» >>
$rm project/jni/application/src
$ln -s caeasaria project/jni/application/src
$./changeAppSettings.sh -a
$android update project -p project
$./build.sh
6. подписывание и установка приложения на андроид
Если все удачно скомпилилось, то в папке commandergenius/project/bin появится файла MainActivity-[release|debug]-unsigned.apk, который нужно подписать и установить на устройство.
$ keytool -genkey -v -keystore rs.keystore -alias caesaria -keyalg RSA -keysize 2048 -validity 10000
$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore rs.keystore
/projects/commandergenius/project/bin/MainActivity-release-unsigned.apk caesaria
$ mv
/projects/caesaria.apk
$ adb uninstall net.dalerank.caesaria
$ adb install
Подводные камни
0. Определение окружения: для начала надо определиться в каком окружении будет работать Windows, Linux или Linux Android.
Решение: Проверяем наличие дефайнов ANDROID/__ANDROID__.
2. Использование OpenGL: если кому понадобится OpenGL, то на мобильных плафтормах обитает его близкий родственник GLES.
Решение: подключаем вместо стандартных заголовояных файлов <GLES/gl.h> и <GLES/glext.h>, есть небольшие отличия в использовани текстур и отрисовке, но в основном код(простой код, который я использовал) работает практически без изменений.
3. Обработка событий: пропадает событие SDL_MOUSEBUTTONUP при движении пальцем по экрану, это могла быть недоработка в самой библиотеке libsdl-android или я где-то его терял. Проявлялось иногда в отсутствии реакции элементов интерфейса на действия пользоватся, например после движения остановились на кнопкой, которая по идее должна перейти в состояние если над ней находится курсор мыши.
Решение: Специфично для моего приложения — при сборке под андроид было добавлено принудительное обновление состояния элементов под курсором при движении последнего.
4. Мелкий интерфейс: разрешение экрана современных мобильных устройств сопоставимо или превышает разрешение монитора, используемого 10-15 лет назад, но физические размеры заметно меньше, оттого и сам элементы пользовательского интерфейса выглядят мелко и пользоваться ими будет не всегда удобно.
Решение: Переделка интерфейса, что достаточно хлопотное занятие и не всегда удается сохранить первоначальный вид.
Один переезд равен двум пожарам(народная мудрость)
Все началось с того, что один из коммитеров прислал ссылку на ветку разработки, где успешно запустил игру с использованием относительно свежей библиотеки SDL2, а до этого использовалась версия SDL1.2 — 2008 года выпуска. Надо сказать, что я и сам рассматривал возможность перехода на новую версию, особенно после просмотра списка изменений, который сулил нормальную поддержку Mac и Android, что называется «из коробки». А тут еще и миниотпуск на работе получился, взяв кувалду побольше гайд потолще и большую чашку кофе, я начал переводить ремейк на новый «движок».
Не хочу утомлять читателя техническими подбробностями переезда, просто у самой библиотеки с приходом аппаратной поддержки изменилась идеология работы, что поначалу доставляло определенные трудности, пока я к ней не привык. Переезд растянулся на неделю вечеров и под конец представлял собой исправление оставшихся недочетов и графических артефактов. Переделки были закончены и подготовлены сборки для «больших» ОС, и опять появилась необходимость повторного чтения мануалов по сборке приложения под Андроид, потому как libsdl-android нормально адаптирован для работы с SDL1.2, а поддержка SDL2 похоже заброшена (о чем сами авторы и пишут в ридми)
Осознал я правдивость этого текста, когда было потрачено несколько часов в попытке запустить порт в старой конфигурации через libsdl-android. Ну что ж, отрицательный опыт — тоже опыт: буду использовать доступные инструмены.
Попытка номер два, не совсем удачная
SDL2 уже содержит все необходимые конфиги для сборки приложения под андроид, почитав статью, рекомендованную на официальном сайте, можно пробовать собрать чтонибудь. Опять же будут несколько шагов, за исключением установки и настройки adt.
Для чего все эти копирования сделаны. чтобы проще было считать относительные пути для библиотек. В папке android/libs будет лежать SDL и компания, в папке android/data — будет иконка приложения.
В папке android/android-project/jni создаем символьные ссылки на компоненты приложения
$ln -s ../../libs/SDL SDL
$ln -s ../../libs/SDL_mixer SDL_mixer
$ln -s ../../libs/SDL_net SDL_net
$ln -s ../../src/dep/aes aes
$ln -s ../../src/source application
$ln -s ../../src/dep/bzip2 bzip2
$ln -s ../../src/dep/freetype freetype
$ln -s ../../src/dep/libpng libpng
$ln -s ../../src/dep/lzma lzma
$ln -s ../../src/dep/smk smk
$ln -s ../../src/dep/src src
$ln -s ../../src/dep/ttf ttf
$ln -s ../../src/dep/zlib zlib
Немного о том, что же я тут написал:
zlib нужен для сборки freetype, который в свою очередь нужен для SDL_ttf и будет отвечать за рендеринг шрифтов.
Библиотека smk нужна для воспроизведения видео в формате smack, в этом формате выполнены ролики оригинальной игры.
Bzip, lzma и aes нужны для работы с zip-архивами.
libpng требуется для загрузки текстур для игры.
SDL, SDL_mixer, SDL_net отвечают соответсвенно за рисования, работы со звуком и сетью.
application содержит исходники самой игры, которые будут собраны в библиотеку libapplication.so
в папке src располагаются исходники библиотеки libmain.so, а вот для неё уже написано кружево java-вызовов над с-кодом, которое позволит нам успешно стартовать и порадовать пользователя яркой картинкой.
Настройки проекта и конфиги для ndk уже любезно предоставлены авторами SDL2
Чтобы система сборки увидела, какие нам необходимы библиотеки для работы и собрала их, нужно написать для них конфиги, наподобие Makеfile. С большой вероятностью Android.mk уже будет присутствовать в репозитории библиотеки, или их можно найти на просторах интернета. Мне пришлось дописать конфиги сборки для для игры и библиотеки libsmk.
LOCAL_MODULE := smk
LOCAL_SRC_FILES := $(subst $(LOCAL_PATH)/,, \
$(wildcard $(LOCAL_PATH)/*.c))
Конфиг содержит указание скомпилировать все файлы с расширением .с, найденные в текущей папке (для libsmk это будет jni/smk)
Аналогично пишется и конфиг для сборки библиотеки, которая будет представлять саму игру.
SDL_PATH := ../../libs/SDL
SDL_MIXER_PATH := ../../libs/SDL_mixer
SDL_NET_PATH := ../../libs/SDL_net
GAME_PATH := $(LOCAL_PATH)
DEP_PATH := ../dep
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/$(SDL_PATH)/include \
$(LOCAL_PATH)/$(SDL_MIXER_PATH) \
$(LOCAL_PATH)/$(SDL_NET_PATH)/include \
$(LOCAL_PATH)/$(FREETYPE_PATH)/include \
$(LOCAL_PATH)/$(GAME_PATH) \
$(LOCAL_PATH)/$(DEP_PATH) \
$(LOCAL_PATH)/$(DEP_PATH)/libpng
LOCAL_SHARED_LIBRARIES := SDL2 SDL2_mixer SDL2_net sdl_ttf pnggo lzma bzip2 aes smk
LOCAL_CPP_FEATURES += exceptions
LOCAL_CPP_FEATURES += rtti
LOCAL_LDLIBS := -lGLESv1_CM -llog
Тоже должно быть понятно, в LOCAL_C_INCLUDES добавляет пути где нужно искать заголовочные файлы, в LOCAL_SRC_FILES добавляем файлы с исходным кодом,
в LOCAL_SHARED_LIBRARIES прописываем зависимости приложения.
флаги rtti, exceptions отвечают за использование RTTI и исключений.
$cd android-project$android update project -p. -t android-15
$ndk-build V=1
$ant [release|debug]
$ant install[r|d]
Теоретически, после выполнения описанных шагов на подключенном девайсе или эмуляторе вы увидите установленное приложение.
Грабли
1. Где искать ресурсы.
Место размещения ресурсов зависит от конкретной реализации ОС, но в большинстве случаев приложению будет доступна папка /sdcard/Android/data/имя_пакета/files, при использовании непосредственно пути может быть ошибка доступа или ошибка поиска файла.
Получить полный путь к директории приложения можно через функцию SDL_AndroidGetExternalStoragePath(), определенную в файле SDL_system.h
2. Использование флагов создания окна.
Комбинация SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN | SDL_WINDOW_BORDERLESS работает не на всех девайсах, убираем SDL_WINDOW_OPENGL или SDL_WINDOW_BORDERLESS и смотрим какой из флагов крашит программу. Не могу объяснить с чем связано такое поведение. С флагом SDL_WINDOW_SHOWN запукается по логам один в один, как и со всеми флагами, но при этом вероятность вылета намного меньше.
3. Слишком много звуковых каналов.
Наблюдаются вылеты при вызове функции SDL_mixer::Mix_AllocateChannels(N>16) c ошибкой, что невозможно иниализировать звук. Обходится снижением запрошенного числа каналов, насколько корректно решать эту проблему таким способом я не знаю.
4. stlport vs gnustl
Вылет при использовании stlport, нарвался на этот баг при обходе вектора с использованием итераторов на эмуляторе Nexus 7 (Android 4.0.3). Опять же не могу объяснить факт сей ошибки, решилось использованием gnustl при сборке приложения.
5. Мое кунгфу сильнее твоего.
Использование библиотеки с именем, похожим на имя той, что уже есть в системе приводит к загрузке чужой библиотеки, в которой возможно нет необходимых функций. Ошибка появилась из-за того, что я собираю свою версию libpng.so, решение было найдено на stackoverflow, исправилось заменой имени библиотеки libpng.so на libpnggo.so
В заключении.
Работает! Почти не отличается от ББ! Доволен ли я? Не очень!
Дело в том, что толи я криворукий, толи лыжи не едут, но на планшете приложение получилось крайне медленным (10-12 fps для крайне простой картинки результат унылый), думаю, вина тут в руках и незнании матчасти. SDL — отличная библиотека в обеих реинкарнациях, и много действительно хороших игр использует её, а также портировано на андроид.
Потраченного времени на создание порта не жаль точно, получен определенный опыт и много положительных эмоций, когда игра взлетела. Тем, кто ещё раздумывает пробовать или нет, однозначно пробовать, не откладывайте на потом!
Как скопировать приложение с компьютера на смартфон и установить его? Обязательно ли заходить на Google Play (Market)? Ответы на эти вопросы – в нашей статье.
Что делать, если трафика на мобильном интернете совсем мало, но нужно срочно скачать и установить приложение на мобильное устройство с OS Android? Наверное, было бы неплохо загрузить программу или игру на обычный персональный компьютер, а потом просто скопировать на смартфон и уже там произвести запуск.
Мы приведем несколько удобных способов того, как установить приложения на Андроид с компьютера
Мы приведем пару удобных способов того, как установить приложения на Андроид с компьютера.
Способ 1. Валим все на InstallAPK
После того, как вы скачаете эту удобную утилиту на свой ПК, перед вами откроется завидная возможность устанавливать приложения на Андроид-устройства прямо с компьютера. Данный софт прекрасно совмещается с Windows XP, Vista, 7 и 8.
Всё, что нужно – это запустить программу и подключить телефон или планшет по USB. В меню настроек смартфона входим в раздел «Безопасность» («Приложения» для более старых версий ОС), где ставим галочку напротив «Неизвестные источники».
На английском: Settings - Application Settings (Security) - Unknown Sources.
Далее дважды кликаем на предварительно загруженный на компьютер *.apk файл, после чего выполнится установка.
Если и после этого не произошла установка, войдите в настройки смартфона, выберите пункт «Для разработчиков» и поставьте галочку напротив «Отладка по USB».
Для работы программы иногда может понадобится установка специальных драйверов, которые вы можете скачать бесплатно с сайта разработчика.
К слову, скачать приложение для Андроида, которое априори идет с таким расширением, можно не только на Google Market. Популярные игры и программы для смартфонов на базе вышеуказанной операционки вы найдете на нашем сайте.
Единственный недостаток InstallAPK - в том, что эта прога работает не со всеми моделями телефонов. И если ваш девайс оказался в небольшом числе таких смартфонов-несчастливчиков, тогда вам подойдет другой метод, раскрывающий, как установить на Андроид программы с компьютера.
Способ 2. Установка приложения через встроенный браузер
Для того, чтобы функционировал способ номер три, нам понадобится установить файловый менеджер. Мы выбираем ES проводник, но вы можете установить любой другой.
Почему же мы говорим «для работы следующего способа»? Из-за того, что для постоянного использования данный способ черезчур долгий и неудобный, а установив предлагаемое приложение, все будет делаться в несколько кликов.
Итак, подключаем устройство к компьютеру и копируем apk-файл в корень карты памяти. Далее отсоединяем шнур, запускаем браузер и вводим в адресной строке content://com.android.htmlfileprovider/sdcard/ИмяПриложения.apk или
file:///sdcard/ИмяПриложения.apk (в зависимости от версии вашей ОС).
Способ 3. Работенка для ES Проводника
Для этого способа нам понадобится полезная программа ES Проводник. Это файловый менеджер, позволяет просматривать все папки, находящиеся на смартфоне или планшете. Но главное – с его помощью можно копировать или перемещать файлы с памяти коммуникатора на SD-карту и наоборот, а также установить игры и программы на Андроид планшет или смартфон.
Алгоритм действий следующий:
1. устанавливаем на смартфон программу ES проводник;
2. подключаем смартфон к ПК и копируем с компьютера нужный apk-файл в память смартфона;
3. отключаем от компьютера устройство и в самом смартфоне запускаем ES Проводник, находим apk-файл и двойным кликом на нем устанавливаем программу.
Способ 4. Gmail не только получает почту
Это весьма удобный и оригинальный способ как установить программу на Андроид, о котором знают единицы пользователей, но, оценивая его по сложности, можно сказать - до безобразия легкий.
Важно
Отметим, что если вы проводите процедуру установки приложений не с GooglePlay, на экране смартфона появится окно: «Установка заблокирована».
Дело в том, что в целях безопасности на устройстве запрещается инсталляция приложений c неизвестных источников. В этом случае проделываем то же, что и в начале первого способа.
Выбираем: Настройки – Личное (Безопасность) – Неизвестные источники. После этого такая операция как установка игры на Андроид с компьютера либо другие способы станут вполне доступны.
Также не забывайте: чтобы во время подключения смартфона к компьютеру у последнего появился доступ к памяти смартфона, открываем шторку на телефоне, там кликаем по «USB-подключение установлено», где необходимо нажать «Включить USB-накопитель».
Как видите, первый способ будет самым простым, но из-за того, что программа не работает на многих компьютерах и возникают проблемы с совместимостью, он подойдет не многим пользователем.
Второй же способ будет универсальным, но очень неудобным.
Третий способ подойдет для любого устройства, но тут не обойтись без предыдущего. Последний способ вроде и не имеет недостатков, но он будет бесполезным при отсутствии подключения к Интернету.
Возможности современных смартфонов позволяют реализовывать достаточно масштабные игровые проекты, и разработка мобильных приложений-игр сегодня предлагает варианты на самые разные вкусы. Однако многим геймерам хочется больше, а именно играть на своем смартфоне в то же самое, во что они играют и на компьютерах. Поэтому появляется портирование игр с ПК на смартфон.
Суть процесса портирования
Невозможность использования одной и той же программы для разных операционных систем, например, для Windows и Android, объясняется разной архитектурой, использованием разных языков программирования и другими средовыми различиями, делающими невозможным запуск игры с ПК на смартфоне. Впрочем, многое зависит от исходного продукта и особенностей его создания.
Разработка игр для ios и android часто опирается на уже существующие компьютерные игры
Компьютерные игры, которые создавались еще до эпохи смартфонов, не были рассчитаны на другую среду, поэтому имели множество своих особенностей, из-за которых для полноценного портирования на мобильные ОС требовалось практически полностью переписать код. Однако появление и распространение смартфонов привело к тому, что многие разработчики начали задумываться о создании более универсального кода, в том числе на основе GCC. Это дает возможность использовать исходный код игры для портирования с минимальными временными и трудовыми затратами, так что стоимость портирования уже несопоставима с тем, сколько стоит разработка приложения отдельно.
Интерфейс игры, портированной на мобильный, должен изменяться в соответствии с особенностями управления на тачскрине
Простые решения для портирования
В сети есть множество сайтов, которые распространяют приложения для Андроид. Если вы скачали с такого сайта APK файл на свой компьютер и не знаете, как установить это приложение на Андроид смартфон или планшет, то данная статья должна вам помочь. Здесь мы расскажем о том, как установить приложение на Андроид с компьютера.
Шаг № 1. Включите установку приложений из неизвестных источников на своем Android смартфоне.
Первое что нужно сделать, это включить установку приложений из неизвестных источников. Для этого откройте настройки Андроида и перейдите в раздел «Безопасность». Здесь нужно найти функцию «Неизвестные источники» и включить ее.
Эту нужно сделать для того чтобы вы могли устанавливать приложения непосредственно из APK файлов. Пока функция Неизвестные источники отключена, вы можете устанавливать приложения только из магазина Google Play.
Шаг № 2. Скопируйте APK файл с вашего компьютера на Android устройство.
Дальше нужно скопировать APK файл на Андроид устройство. Это можно сделать любым удобным вам способом. Самый простой вариант, это подключить Андроид устройство к компьютеру при помощи USB кабеля и после этого скопировать APK файл в память устройства. Вы можете копировать APK файл в любую папку, главное, чтобы вы знали куда копируете и могли потом найти этот файл на вашем устройстве.
Шаг № 3. Откройте скопированный APK файл на вашем Android устройстве.
Дальше вам нужно найти и открыть скопированный APK файл на вашем Андроид устройстве. Это можно сделать при помощи любого файлового менеджера. После открытия APK файла на экране появится всплывающее окно с предложением установить данное приложение. Для того чтобы начать установку просто нажмите на кнопку «Далее».
После этого приложение будет установлено на ваше Андроид устройство. После завершения установки вы сможете открыть приложение при помощи иконки на рабочем столе или в меню «Все приложения».
Читайте также: