Веб-сервер для Android
Можно ли разместить веб-сервер внутри самого телефона Android? Похоже на Apache. Я хочу получить доступ к веб-серверу из самого мобильного браузера.
Не удалось найти ссылку в Интернете. Это возможно?
заранее спасибо
7 ответов
Коротко: да. Если вы смотрите на код, проверьте org.apache.http
пакет. Если вы смотрите на готовое приложение, проверьте iJetty и kWS.
KSWEB - пакет для веб-разработки на платформе Android. Он состоит из: веб-сервера, языка программирования PHP и базы данных MySQL. KSWEB позволяет вам организовать платформу для запуска и отладки веб-приложений (сайтов) на вашем Android-устройстве. Работать с приложением очень просто. Для запуска сервера достаточно запустить наше приложение, выберите, если необходимо, порт и корневой каталог.
По умолчанию KSWEB содержит полнофункциональный файл конфигурации сервера PHP и MySQL. Однако, если вы хотите что-то изменить, перейдите в настройки сервера и нажмите на пункт "INI Files". Файлы конфигурации будут перенесены на SD-карту вашего устройства по адресу "/mnt/sdcard/ksweb/ini/", если она доступна. При повторном нажатии на пункт настроек "INI Files" KSWEB будет использовать внутренние файлы конфигурации.
Что в планах?
- Ознакомьтесь с требованиями к операционной системе Android, в частности снизьте требования к версии Android для запуска приложения до 2.0;
- Добавлена возможность отслеживать поток ошибок, возникающих при работе с php и mysql;
- Переместите файлы журнала на сервер и mysql на sdcard;
- Расширьте дополнительные библиотеки PHP. Например, pdo_mysql;
- Переместите файлы базы данных в MySQL на SDCard.
https://play.google.com/store/apps/details?id=ru.kslabs.ksweb http://www.kswebserver.ru/
Сервер приложений для Android от Atjeews, небольшой размер, самым большим преимуществом для меня была поддержка jsp.
Я недавно установил BitWeb, который я очень рекомендую. У меня есть рутированный телефон с несколькими дополнительными опциями (и я также рекомендую рутирование, если у вас его нет, и вы планируете делать какие-либо операции с сервером вообще)
BitWeb хорош тем, что включает в себя сервер lighttpd, урезанный PHP-движок и урезанный MySQL-движок, дающий вам быструю и грязную систему LAMP с одним приложением. Я использую мой вместе с приложением sshd для получения оболочки busybox, я установил nano и использую соединение ssh, чтобы сделать общий ресурс sshfs для редактирования контента с моего компьютера. Bitweb включает в себя возможность настройки параметров конфигурации для всех трех сервисов, и мне даже удалось настроить несколько серверов Zend, работающих только на одном маленьком сервере, с небольшой настройкой правил перезаписи и настроек application.ini.
https://play.google.com/store/apps/details?id=com.andi.serverweb&hl=en
Если вы хотите увидеть некоторые параметры конфигурации, которые мне пришлось настроить, я могу либо опубликовать их, либо ответить по электронной почте с тем, что я настроил, а также с некоторыми комментариями по поводу подводных камней, с которыми я столкнулся на этом пути. (Кстати, я недавно разместил эту ветку как тему с автоответчиком, хотя она оказалась не специфичной для платформы Android, а для lighttpd/Zend)
Я просто обескуражен тем, что t-mobile/HTC, похоже, не планирует обновлять свой телефон за пределами Gingerbread, так как я понимаю, что в некоторых новых ОС Android есть способы доступа к некоторым аппаратным средствам (таким как камеры) из сценариев или скомпилированных код без суеты. Если я хочу сделать это сейчас, мне нужно либо жестко запрограммировать свой собственный интерфейс к ним, либо получить приложение, способное выполнить предварительную проверку, которое действительно выполняет задачи на моем телефоне при одновременной работе со службами web / mysql / php,
Я мог бы быть последним, кто ответит на этот вопрос, но поверьте мне, это самый простой и последний ответ в 2020 году для тех, кому нужно запустить веб-сервер на Android и обслуживать несколько клиентов без реализации каких-либо сторонних библиотек.
Скопируйте свой HTML-файл в папку с ресурсами Android как server.html
и объявить serverSocket
как глобальный в вашем классе.
Запустите приведенный ниже код в новом потоке.
try {
serverSocket = new ServerSocket(8080);
while (true) {
final Socket socket = serverSocket.accept();
new Thread(new Runnable() {
@Override
public void run() {
try {
BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter os = new PrintWriter(socket.getOutputStream(), true);
String request = is.readLine();
Scanner scanner = new Scanner(getAssets().open("server.html"));
String response = scanner.useDelimiter("\\Z").next();
os.print("HTTP/1.0 200" + "\r\n");
os.print("Content type: text/html" + "\r\n");
os.print("Content length: " + response.length() + "\r\n");
os.print("\r\n");
os.print(response + "\r\n");
os.flush();
socket.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}).start();
}
} catch (Exception ex) {
ex.printStackTrace();
}
Это все, что ваш собственный Java-сервер Android (без сторонних библиотек) работает на порту 8080.
Если вы хотите использовать запросы DB и POST, попробуйте реализовать соединения SQLite и WebSocket для двусторонней связи.
https://developer.android.com/reference/java/net/ServerSocket
Проверьте KSWEB и Bit Web Server, оба с использованием Lighttpd als server, php и поддержкой mysql.
Я попробовал KSWEB, он работает замечательно, но я пока не знаю, как использовать modrewrite. но это должно быть работа. Вы можете попробовать пробную версию KSWEB перед покупкой.
KSWEB стоит чуть больше, чем Bit Web Server, всего 0,XX $. если вы решили купить его, опубликуйте свой опыт здесь... я тоже хочу знать...:)
До сих пор я видел все эти заявки платными. А у других нет phpmyadmin. И я нашел, наконец, один. Вы можете взглянуть на сервер kickweb.
Веб-сервер Android PHP/MySQL/PHPMyAdmin
Требования
- Внутренняя память должна быть не менее 50 МБ!
- Минимальный Android API 9 (GINGERBREAD)!
Характеристики
- Lighttpd 1.4.34
- PHP 5.5.9
- MySQL 5.1.62
- MSMTP 1.4.31
- phpMyAdmin 4.1.10
- Nginx 1.5.11
Корень документа по умолчанию (htdocs)
- Путь: / sdcard / htdocs /
URL по умолчанию
- Адрес: localhost:8080
Информация phpMyAdmin
- Адрес: localhost: 10000
- Имя пользователя: root
- Пароль:
Информация MySQL
- Host: localhost
- Порт: 3306
- Имя пользователя: root
- Пароль:
Если вам не удается заставить его работать, вы можете посмотреть это видео: https://youtu.be/3_m3vNGTp74
Да, это возможно. Может быть не так сложно, как Apache, но возможно.
Взгляните на Moto Phone Portal, например, в его базе есть веб-сервер. И было несколько приложений для этого в Маркете.
Серверы Ultimate Pro, всего 8 фунтов. Включите PHPAdmin, MySQL и множество других серверов. В настоящее время я использую его как прокси.