- Android — PHP/MYSQL
- PHP — MYSQL
- Creating Database
- Creating Tables
- Inserting Values in tables
- PHP — GET and POST methods
- Android — Connecting MYSQL
- Connecting Via Get Method
- Connecting Via Post Method
- Example
- PHP — MYSQL part
- Android Part
- Android-приложения на JPHP
- О языке JPHP
- Как всё началось
- Как это работает
- Небольшой пример
- Заключение
- Build Your First PHP for Android Application
Android — PHP/MYSQL
In this chapter , we are going to explain, how you can integrate PHP and MYSQL with your android application. This is very useful in case you have a webserver, and you want to access its data on your android application.
MYSQL is used as a database at the webserver and PHP is used to fetch data from the database. Our application will communicate with the PHP page with necessary parameters and PHP will contact MYSQL database and will fetch the result and return the results to us.
PHP — MYSQL
Creating Database
MYSQL database can be created easily using this simple script. The CREATE DATABASE statement creates the database.
Creating Tables
Once database is created, its time to create some tables in the database. The CREATE TABLE statement creates the database.
Inserting Values in tables
When the database and tables are created. Now its time to insert some data into the tables. The Insert Into statement creates the database.
PHP — GET and POST methods
PHP is also used to fetch the record from the mysql database once it is created. In order to fetch record some information must be passed to PHP page regarding what record to be fetched.
The first method to pass information is through GET method in which $_GET command is used. The variables are passed in the url and the record is fetched. Its syntax is given below −
The second method is to use POST method. The only change in the above script is to replace $_GET with $_POST. In Post method, the variables are not passed through URL.
Android — Connecting MYSQL
Connecting Via Get Method
There are two ways to connect to MYSQL via PHP page. The first one is called Get method. We will use HttpGet and HttpClient class to connect. Their syntax is given below −
After that you need to call execute method of HttpClient class and receive it in a HttpResponse object. After that you need to open streams to receive the data.
Connecting Via Post Method
In the Post method, the URLEncoder,URLConnection class will be used. The urlencoder will encode the information of the passing variables. It’s syntax is given below −
The last thing you need to do is to write this data to the link. After writing, you need to open stream to receive the responded data.
Example
The below example is a complete example of connecting your android application with MYSQL database via PHP page. It creates a basic application that allows you to login using GET and POST method.
PHP — MYSQL part
In this example a database with the name of temp has been created at 000webhost.com. In that database, a table has been created with the name of table1. This table has three fields. (Username, Password, Role). The table has only one record which is («admin»,»admin»,»administrator»).
The php page has been given below which takes parameters by post method.
Android Part
To experiment with this example , you need to run this on an actual device on which wifi internet is connected.
Steps | Description |
---|---|
1 | You will use Android studio IDE to create an Android application and name it as PHPMYSQL under a package com.example.phpmysql. |
2 | Modify src/MainActivity.java file to add Activity code. |
3 | Create src/SiginActivity.java file to add PHPMYSQL code. |
4 | Modify layout XML file res/layout/activity_main.xml add any GUI component if required. |
5 | Modify res/values/string.xml file and add necessary string components. |
6 | Modify AndroidManifest.xml to add necessary permissions. |
7 | Run the application and choose a running android device and install the application on it and verify the results. |
Here is the content of src/com.example.phpmysql/MainActivity.java.
Here is the content of src/com.example.phpmysql/SigninActivity.java.
Add the following content to build.gradle and rebuild the whole project.
Here is the content of activity_main.xml.
Here is the content of Strings.xml.
Here is the content of AndroidManifest.xml.
Let’s try to run your PHPMYSQL application. I assume you have connected your actual Android Mobile device with your computer. To run the app from Android studio, open one of your project’s activity files and click Run icon from the tool bar. Before starting your application, Android studio will display following window to select an option where you want to run your Android application.
Select your mobile device as an option and then check your mobile device which will display following screen −
Now just type in your username and password. In my case i am typing admin as username and password. It is shown in the figure −
Now press the Get button and wait a few seconds and response will be downloaded and will be shown to you. In this case, the response is the ROLE that is fetched in case of admin as username and password.It is shown in the figure below −
Now again press the POST button and same result would appear. It is shown in the figure below −
Источник
Android-приложения на JPHP
Люди которые пишут код на PHP сделают всё чтобы не переходить на другие языки. Да, я в курсе что раньше на Хабре уже был способ писать Android-приложения на PHP, но было принято решение адаптировать его под более быстрый и совместимый с Java JPHP.
О языке JPHP
Я предполагаю, что у вас может возникнуть вопрос. А что за JPHP? Ответ есть тут-же, на Хабре:
Ну, а мы продолжим. За те 4 года которые прошли с момента написания этих постов о JPHP этот язык поменялся в лучшую сторону. К примеру появился собственный пакетный менеджер jppm про который нам тоже сегодня придётся поговорить.
Как всё началось
Всё началось с того, что моему другу пришла идея создавать приложения для Android на JPHP. Я дал почитать ему тот пост, про который мы говорили в начале, но ему этот способ не понравился так как там используется обычный PHP. Ну, а мы разработчики, которые пишут на никому не известном языке JPHP решили сделать всё сами.
Полистав интернет, мы тогда не нашли другого выхода, кроме как использовать JavaFXPorts. Да и сам создатель этого языка хотел использовать именно его в качестве GUI движка для JPHP за 2 года, так ничего и не сделав.
Как говорится — «Кто кроме тебя». Я бросился глобально изучать работу языка JPHP.
Первые несколько недель были неудачными. Я уже написал автоматическую генерацию build скрипта для gradle и всё бы хорошо, apk собирался, но при запуске выдавалась неизвестная мне на то время ошибка. Я сразу понял что она из-за JPHP но не видел я прежде такую. Сейчас я могу сказать точно что эта ошибка была из за сгенерированного байт-кода. DalvikVM банально не мог запустить байт-код сгенерированный для JVM. Именно это стало огромным препятствием. Так как PHP файлы в JPHP приложениях не компилируются вовсе. Был вариант с файлами phb, но это не решало нашу задачу вовсе. Единственным способом стало написание собственного компилятора, что действительно сработало, но принесло ряд ограничений связанных с include и eval, спасибо, Dalvik.
После многих проб и ошибок я всё же сумел сделать самую первую версию. Её исходники находятся тут. Эта версия была не очень быстрая. Да и использовать JavaFX на Android это мазахизм.
По этому я принял решение переписать всё с чистого листа. Принял я это решение относительно недавно. По этому библиотека для JPHP немного сыровата. Но работает.
Как это работает
Всё начинается с того что jppm собирает все ваши исходники и зависимости в один jar файл. После чего компилируя в них все файлы php в class файлы. После чего полученный jar файл добавляется в зависимости к gradle. А он уже в свою очередь компилирует эти class файлы в dex. В этом весь секрет.
С запуском приложения всё сложней. В AndroidManifest.xml изначально всего один BootstrapActivity который загружает весь JPHP. После загрузки этот BootstrapActivity можно будет изменять из JPHP. Для Activity я создал одноимённые классы.
С помощью этого кода можно получить тот самый BootstrapActivity из которого был загружен JPHP.
Я думаю вам уже стало понятно о работе загрузчика JPHP.
Небольшой пример
К примеру для того чтобы создать самый примитивный кликер нужно использовать вот этот код :
В итоге мы получили простое приложение с кнопкой:
Заключение
Я не думаю что мой проект кому либо будет интересен. Так как он не описывает пока что и 10% Android API. Да и написание приложений для Android на PHP не канон. Но думаю проект найдёт свою аудиторию.
Источник
Build Your First PHP for Android Application
Операционная система Android повергла рынок сматрфонов в шок :). В отличии от компании Apple, которая предъявляет достаточно строгие требования к разработчикам, которые хотят выставлять свои приложения в iPhone App Store, Google создал платформу Android открытой (в оригинале wide open). В настоящее время вы можете писать приложения PHP. Парни из Irontech создали необходимое, и используя Scripting Layer для Android (SL4A), вы можете создавать на PHP приложения для Android.
Нет!
В этой статье я расскажу как установить, настроить и использовать PHP для Android и SL4A, также мы увидим демо приложения и вы получите первый опыт разработки приложений для Android на PHP.
Установка PHP для Android
Для установки PHP для Android, у вас должен быть телефон или эмулятор поддерживающий Android версии 1.5 или больше, также в настройках установки приложений, должна стоять галочка на установке приложений из неизвестных источников. После всего этого, просто установите два пакета SL4A environment и PHP for Android APK.
Установка SL4A достаточно проста, однако после установки пакета PHP for Android application, необходимо запустить его и нажать «install» для полной установки(В процессе установки программа скачивает где-то около 2 МБ). Если у вас появились проблемы с установкой, то есть видео-демонстрация на Vimeo((или здесь)).
Настройка среды разработки PHP для Android
Если вы установили PHP для Android, теоретически, вы можете писать приложения на своем телефоне. Но с практической точки зрения, это не будет хорошей идеей. То что вы должны сделать это скачать Android SDK, установить эмулятор и начать писать код, используя ваш любимый редактор.
После скачивания SDK, разархивируйте содержимое, запустите приложение Android, находящееся в каталоге tools, и установите эмулятор. В меню Android SDK and AVD Manager, выберите Virtual Devices и нажмите на кнопку New. Назовите ваш эмулятор (например «Droid2») и выберите Android 2.2. Введите 10 МБ в качестве размера SD Card и нажмите Create AVD.
Теперь у вас есть настроенный эмулятор, нажмите кнопочку Start. Здесь возникает некоторая сложность, вы не можете просто скопировать файлы на виртуальное устройство, которое только что создали. Вам необходимо настроить форвардинг портов (port forwarding) и поместить ваш PHP-скрипт на виртуальное устройство, используя программу под названием adb, которая является частью Android SDK. Она также находится в каталоге tools.
Далее вы запустите сервер на вашем виртуальном устройстве, соединитесь с сервером для передачи вашего скрипта. Следующие шаги помогут вам запустить все на столько быстро на сколько это возможно. (Вы можете прочитать полную документацию по этому процессу здесь).
На вашем запущенном виртуальном устройстве перейдите на экран Applications и нажмите SL4A.
# на экране SL4A, нажмите кнопочку Menu, выберите View и выберите Interpreters.
# Нажмите Menu снова, выберите Start Server и выберите Private.
# Опустите область уведомлений (Android notification bar) вниз и вы увидите Службу SL4A. (Нажмите на службу и запишите номер порта, который прослушивает ваш сервер, например 47000.)
# Откройте командную строку и установите форвардинг портов, используя команду adb. Например, введите команду «adb forward tcp:9999 tcp:47000» (замените 47000 на номер вашего порта).
# Установите переменную окружения AP_PORT. На UNIX или Mac, запустите «export AP_PORT=9999». На Windows «set AP_PORT=9999».
# Для теста работы эмулятора запустите «run adb push my_script.php /sdcard/sl4a/scripts» (замените my_script.php на название вашего скрипта).
Вы также можете работать с реальным телефоном. Следуйте теми же шагами, что и с эмулятором. Чтобы облегчить процесс установите переменную окружения ANDROID_HOME, которая будет указывать на расположение вашего Android SDK и добавьте путь к каталогу tools в список путей (что-то я не особо понял как это сделать на телефоне, если читатели знают, то пусть напишут в комментариях)
Создание Android приложений на PHP
Написание приложений на PHP очень легкий процесс после того как вы настроили все что описано выше. Единственно что стоит отметить, что версия PHP для Android очень урезана. В вашем распоряжении будут основные функции PHP и поддержка JSON. А если же вы являетесь разработчиком Android, который хорошо знаком с Java фреймворком для Android, вы заметите что Scripting Layer для Android не обеспечивает доступ ко всем компонентам, которые бы вы получили, используя для разработки Java (будем надеятся что это только пока).
То что обеспечивает SL4A — это только фасад к подмножеству Android API. (Полный список методов, обеспечиваемых SL4A, доступен тут ) В чем же прикол PHP для Android — вы можете легко разрабатывать приложени е и видеть его работу, написав всего лишь несколько строк кода. Давайте рассмотрим приложение, которое работает с котировками, которое занимает меньше 60 строк кода.
- ‘QUOTE_SERVER’ , ‘http://quoter.take88.com/?ticker=%s’ );
- require_once( «Android.php» );
- $droid = new Android();
- $action = ‘get_tickers’ ;
- $tickers = » ;
- while (TRUE) <
- switch ($action) <
- case ‘quote’ :
- $droid->dialogCreateSpinnerProgress( «Querying stock information server . » , «Please wait» );
- $droid->dialogShow();
- $quotes = @array_slice(json_decode(file_get_contents(sprintf(QUOTE_SERVER, $tickers))), 0, 3);
- $droid->vibrate();
- $droid->dialogDismiss();
- // Possible data points.
- // «SYMBOL»,»NAME»,»LAST_TRADE»,»MORE_INFO»,»LAST_TRADE_DATE»,»LAST_TRADE_TIME»,»OPEN»,»DAYS_HIGH»,»DAYS_LOW»,»DIVIDEND_SHARE»,»PE_RATIO»,»52_WEEK_LOW»,»52_WEEK_HIGH»,»VOLUME»
- $output = » ;
- for ($i = 0, $cnt = count($quotes); $i «Company: » . $quotes[$i]->NAME . «\n» ;
- $output .= «Ticker: » . $quotes[$i]->SYMBOL . «\n» ;
- $output .= «Last trade: $» . $quotes[$i]->LAST_TRADE . «\n» ;
- $output .= «\n» ;
- >
- $output = html_entity_decode($output, ENT_QUOTES, «UTF-8» );
- // Something is wrong with ‘
- $output = str_replace( «‘» , «‘» , $output);
- $droid->dialogCreateAlert( «Your stock quotes» , $output);
- $droid->dialogSetPositiveButtonText( «Get new quote» );
- $droid->dialogSetNegativeButtonText( «Exit» );
- $droid->dialogShow();
- $response = $droid->dialogGetResponse();
- if ($response[ ‘result’ ]->which == ‘negative’ ) <
- $action = «exit» ;
- > else <
- $action = ‘get_tickers’ ;
- >
- break ;
- case ‘get_tickers’ :
- $response = $droid->getInput( «Stock Tickers (max. 3)» , «Enter Tickers.\nSeparate with spaces.» );
- $tickers = str_replace( ‘ ‘ , ‘+’ , $response[ ‘result’ ]);
- $droid->vibrate();
- $action = ‘quote’ ;
- break ;
- case ‘exit’ :
- $droid->exit();
- exit();
- break ;
- >
- >
- ?>
* This source code was highlighted with Source Code Highlighter .
Скопируйте и поместите этот код в редактор, сохраните под именем quoter4android.php и загрузите его в эмуляторе. Если эмулятор не запущен, запустите его, настройте форвардинг портови загрузите quoter4android.php, используя adb.
Для запуска приложения в вашем эмуляторе, перейдите на экран приложения, нажмите иконку SL4A и нажмите quoter4android.php.
Для установки quoter4android.php на ваш телефон, вы можете настроить форвардинг портов, но легче соединить телефон с компьютером через USB и скопировать скрипт в каталог sl4a/scripts. Однако для запуска скрипта, необходимо отсоединить его от компьютера, иначе вы не увидите установленные скрипты, а зщатем кликните иконку SL4A.
Заключение
С SL4A и PHP for Android можно сделать много интересных вещей; эта статья всего лишь маленькая демонстрация возможностей. Все эти приложения очень молоды — новая версия SL4A вышла когда я писал эту статью — и в будущем мы будем получать все новые и новые возможности.
Источник