Прежде всего, я считаю, это не дублирующий вопрос. Я не хочу писать родное приложение с NDK, я просто хочу использовать Android-устройство в качестве дешевого Linux-сервера. Сервер в этом контексте означает программу, которая не имеет интерфейса. Кроме того, сервер написан на голом С++, но вообще не использует библиотеки, поэтому почему этот вопрос должен отличаться от других.
История
Мы написали небольшой сервер для Linux, он имеет интерфейс веб-сервера, поэтому вы подключаетесь к нему с помощью браузера с поддержкой браузера, и вы можете играть с ним. Мы собрали его в Linux/x86, Linux/ARM (GuruPlug), Linux/PPC (какой-то NAS) и платформы Mac OS X Darwin.
Версия Linux/ARM также хорошо работает на моем смартфоне Palm Pré. Я только что скопировал исполняемый файл на свой телефон (на сцене webOS, нет такой вещи, как джейлбрейк, есть официальный "режим разработчика", который, если вы активируете, набрав секретную комбинацию клавиш, вы можете войти в свой телефон с помощью ssh или использовать локальное приложение ssh). Таким образом, наша небольшая серверная программа (может сказать, демон) работает даже на самых маленьких устройствах Linux. (Это смешно, когда вы подключаетесь к вашему браузеру на рабочем столе с помощью giga на сервер смартфонов.)
Серверная программа предназначена для работы даже с самой маленькой Linux (как я уже сказал, она работает на NAS, маршрутизаторе, смартфоне), для этого требуются только STDLIB и PTHREADS.
Вопрос
Какой прямой способ запустить эту простую серверную программу на устройстве Android?
- У нас пока нет Android-устройства. Но я предполагаю, что любой ARM-based будет делать. Объем памяти сервера настолько мал, что это не проблема.
- Я предполагаю, что устройство должно быть внедрено для копирования исполняемого файла и запуска.
- Я не хочу устанавливать на устройство совершенно новую Linux. Он должен работать под управлением Android, а наш сервер работает в фоновом режиме. Linux-дистрибутив, достаточный для Dalvik, достаточно для нашего сервера, я уверен.
- Сервер не должен использовать внешние вещи (USB, сенсорный экран, аудио, камера, микрофон - спасибо, а не) только порт для веб-сервера (например, 8080), который не выделяется Android.
- У меня есть toolchain ARM GCC, установка его не является частью вопроса (кроме случаев, когда есть трюки).
- Установка программы должна быть ручной (scp, что угодно). Кроме того, я не хочу создавать пакет или любое автоматическое развертывание.
- Проблема запуска серверной программы - это еще один вопрос, который мы бы сейчас проигнорировали.
Итак, я хочу просто сделать то же самое с устройством Andrid (телефон, планшет), как и на моем устройстве webOS: скопируйте серверную программу и запустите ее. Компьютеры для этого, запущенные программы, не так ли?;)