- Как создать android приложение на php (+ html + js + css)
- How to Use PHP for Android App Development
- PHP for Android
- PHP for Android App Back-end
- Login Registration Interface
- XAMPP Server Set-up
- Database Set-Up
- Create DataBase
- Create Table
- Insert values to Tables
- Get & Post method
- Connect PHP to MySQL database
- Android Login & Registration
- Как запустить PHP-сервер на Android
Как создать android приложение на php (+ html + js + css)
Статья адресована людям, занимающимся разработкой на PHP, у которых возникла необходимость по быстрому сделать android-приложение для личного пользования.
Прежде всего хочется обратиться к профессиональным разработчикам android-приложений и к людям не занимающимся вообще никакой разработкой.
Это НЕ статья о том как профессионально разрабатывать android приложения. Если вы не профессионал и ничего не знаете о профессиональной разработке android приложений, но хотите им стать, вам не надо это читать.
Если вы профессиональный разработчик android приложений, вы не найдёте здесь ничего интересного.
Приложение может стать вполне рабочим, например вот это в Google Play опубликовано без проблем. (Скачиваний маловато, но я не задавался целью раскрутить приложение, я создал его для своих нужд, а ссылка на маркете позволяет легко им делиться с друзьями).
Наверное, невозможно найти разработчика на PHP, который категорически не смог бы сверстать в HTML требуемый ему интерфейс, оживить его с помощью javascript и придать нужный ему вид с помощью css.
Не все из нас смогут сделать то же самое работая на заказ, требования к фронтенду современных продакшен сайтов могут оказаться трудновыполнимыми, а порой и вообще непонятными.
С другой стороны, когда нам нужен какой-то web-интерфейс для личного пользования, мы с лёгкостью его реализуем используя весь этот html/js/css так, как будто мы всю жизнь только фронтендом и занимались.
Думаю, ни для кого не секрет, что можно сделать android приложение c webView и поместить в него ваш HTML5 интерфейс, но как взаимодействовать с устройством?
Взаимодействие с устройством осуществляется добавлением программного интерфейса в виде объекта javascript. Вызывая методы этого объекта программист может из webView взаимодействовать например с файловой системой устройства, делать в принципе всё, что позволяют методы этого объекта, реализованные на языке Java.
Мне, как человеку много лет кодившим на php и иногда на javascript показалось очень удобным иметь в своём js коде объект с именем PHP и обеспечивающим как можно большее количество php функций, вызывая которые я мог бы например работать с файлами устройства, оперировать функцией date и другими.
Конечно, реализовать все PHP функции маловероятно, но мне это и не надо, буду добавлять по мере необходимости.
Сейчас реализованы вот такие функции ссылка на исходный код PHPInterface
Репозиторий на гитхаб в котором этот класс будет время от времени обновляться и совершенствоваться.
Как подтверждение, что это вполне жизнеспособная библиотека вот исходный код android приложения опубликованного на маркете.
Ниже описаны особенности реализованых методов (если метод работает полностью совместимо с стандартной функцийе php его нет в этой таблице).
Метод | Особенности |
---|---|
file_get_contents | На данным момент принимает только короткие имена файлов (например «file.txt» ). Созданный файл будет доступен только тому приложению, которое его создало. Планируется в дальнейшем поддержка полных имён файлов, например «/mnt/sdcard/app/data/file.txt» . |
file_exists | См. file_get_contents |
file_put_contents | См. file_get_contents . Также, надо иметь ввиду, что при использовании констант, например FILE_APPEND , нужно использовать PHPInterface.FILE_APPEND ; |
str_replace( String search, String replace, String subject, boolean getCount) | В отличии от оргигнальной php функции, если нам нужно количество замен, мы не передаём переменную по ссылке, а указываем вместо неё true. Тогда PHPInterface.STR_REPLACE_COUNT будет содержать количество замен после вызова метода. |
in_array(needle, haystack) | Пока работает только с массивами строк и целых чисел ( long и int ) |
strval | Пока работает только с аргументами типа long и int |
count | Не работает с простыми типами java (такими как long и int ), только с теми, которые наследуются от Object |
Список методов, реализванных на 2019-05-30
- Методы PHPInterface
- count
- date
- file_get_contents
- file_exists
- file_put_contents
- in_array
- intval
- str_replace
- strlen
- strval
- time
Примеры использования в java коде:
public class MainActivity extends Activity < public PHPInterface PHP; public void foo() < PHP = new PHPInterface(this.getApplicationContext()); long currentTimestamp = PHP.time(); >>
или, если нужен при работе приложения в фоне:
public class ServiceDM extends Service < public PHPInterface PHP; public void foo() < PHP = new PHPInterface(this); long currentTimestamp = PHP.time(); >>
Пример использования в javascript коде:
//Практически в любом месте js загруженного в webView var currentTimestamp = PHP.time(); PHP.file_put_contents('time_of_start.txt', currentTimestamp);
How to Use PHP for Android App Development
You might not hear or not that you can use PHP for your Android App Development. We can use PHP as the back-end for our Android Applications, and trust me they work flawlessly with each other. Any Android app that needs account log-in and registration can efficiently utilize PHP on its back-end.
Almost every Android applications need essential user data, for that they have to integrate log-in and registration options that provide user’s contact and other details to the back-end. So, let’s explore how you can use PHP on your backend of the Android Application.
Essentially we have to make a log-in and register interface for the android application so we will set up a local PHP server and MySQL database to build PHP Web Development.
PHP for Android
PHP is best known for its incredible and versatile use in Web Development but we can utilize it in many more ways. Today, We are going to use PHP in android app development and how will it going to benefit us. PHP’s best use in Android Applications is in the back-end and database. We are going to guide you through setting up a local server and MySQL Database that will help you in managing user registration and other details.
PHP for Android App Back-end
Let’s get into details about how to use PHP on the back-end of your Android Application. Follow our simple step-by-step guide to set PHP local server and MySQL database and connect them to the back-end of your Android application.
Login Registration Interface
Firstly, we are going to create a back-end web server for the android application. You can use any operating system and use XAMPP. It will help you set up a local Apache Web Server and MySQL database.
XAMPP Server Set-up
Installing XAMPP is pretty easy, just make it google, and then you can get a one-click installation file for any operating system from their website.
After successful installation, you can test it by running or calling http://localhost. It will open a new screen and check admin by http://localhost/phpmyadmin.
You can create a folder there like test and copy your files or test files and you can open them via http://localhost/test_android/test.php
Now, our local server is good to go and we need to set up the database and for PHP MySQL is the best.
Database Set-Up
To set up call phpMyAdmin by visiting http://localhost/phpmyadmin and selecting the database tab from the left top header.
Give it a name you like or your project name and create the database. It can be seen and accessed from the left slide bar. Now create a User table for your App.
Use the given codes to create and set the MySQL database.
Create DataBase
First, you have to create the database and it can be done via the above-mentioned method or you can simply run this code and it will create a database in a single click.
Create Table
After creating the database you have to create a user table which can be done by running this code.
Insert values to Tables
Tables are useless until they have some values in them. Use this code to add values to your user tables in your database.
Get & Post method
We can insert values by $_Get and $_Post commends.
$username = $_GET['username']; $password = $_GET['password']; $result = mysqli_query($con,"SELECT Role FROM table1 where Username='$username' and Password='$password'"); $row = mysqli_fetch_array($result); $data = $row[0]; if($data) < echo $data; >mysqli_close($con); ?>
This part is a bit tricky, We suggest you Hire PHP Developer to help you with this. They will make this technical part easier for you can go back to your android app development.
Connect PHP to MySQL database
To connect PHP to the database you will need to input three values which are Hostname, MySQL username, and password.
To check your connection run http://localhost/test_and/test-connect.php . it will give you an output, if not then restart the XAMPP.
Android Login & Registration
Now we successfully connected MySQL and backend; You will need to build a sign-in/login and registration interface.
Test some random users by entering random users to the tables to get the idea of our work and you are good to use this database and back-end made on PHP. All you need is to build the login and registration part on your android application. or you can Hire Mobile App Developers to get that done professionally.
Как запустить PHP-сервер на Android
В статье идет речь о полноценном Web-сервере, который можно очень быстро и гибко настроить под свои нужды. Такие вещи как Composer, .htaccess, php.ini будут работать.
1 Termux
2 Рабочее место
3 Настройка Apache2
Начать разработку PHP- или Web-приложения легко.
Вам понадобится приложение Termux, скачать его можно из Play Store, а обсудить в топике форума
Запустите его и первым делом добавьте виртуальные функциональные кнопки (CTRL, ESC, стрелки) зажав кнопку громкости вверх и букву Q на клавиатуре.
Получится так:
Установите текстовый редактор nano , сервер apache2 , php и модуль Apache php-apache . Для потверждения может потребоваться ввести Y .
Для этого введите команду в Termux:
А так же разрешите приложению работать с памятью телефона.
Это папка в которой будут хранится логи, настройки и папка с сайтом.
Откройте память телефона, в Termux:
Создайте папку web — это будет корень всего, что связано с сервером. В корне создайте папки cfg — для настроек (php.ini например), log — для логов сервера и php, tmp — для временных файлов и root — файлы сайта.
Теперь через любой файлменеджер откройте папку web/root и создайте там index.php со следующим содержимым:
Для проверки достаточно, рабочее окружение создано.
Узнайте полный путь к папке web через ее свойства и запомните его. Везде, где увидите по тексту статьи надпись , заменяйте ее на значение пути. Например, у меня он /storage/emulated/0/web
Откройте папку настроек apache2 в Termux, чтобы настроить сервер: