Ето кратък преглед на това, което трябва да знаете, за да постигнете целта си. Няма да навлизам толкова далеч в подробности, особено след като лично никога не съм използвал RoR. Имайте предвид, че някои от тези части може да не се отнасят точно до RoR, но общата идея зад него все още е в сила. Ще оставя на вас да проучите и да разберете как да приложите всеки отделен компонент.
Общият ход на всичко е както следва:
Приложение за Android <==> Мрежа <==> Уеб услуга <==> MySQL
Обърнете внимание на стрелките с две остриета, тъй като данните ще се движат и в двете посоки.
Android App
е клиентът, а Web Service
и MySQL
база данни се намират на вашия Web Server
. Включих само частта за мрежа за пълнота, но не трябва да правите нищо, след като данните са изпратени в мрежата.
Кратък преглед на всеки раздел:
Приложение за Android:
Приложението за Android е клиентът, който изпраща и извлича данни от уеб сървъра. Предполагам, че във вашето приложение ще позволите на потребителя да изпълнява някои задачи, които по същество се превръщат в данните, които искате да изпратите на сървъра в даден момент.
Вземете за пример, потребителят трябва да може да въведе своето име и любимо животно. Да кажем, че има действителен бутон „Изпращане“, върху който потребителят може да щракне. Когато се щракне върху този бутон „Изпращане“, той трябва да обвие данните в подходящ формат, за да бъдат изпратени в мрежата. Две от най-често срещаните са JSON
и XML
. След като данните са форматирани правилно, ще искате да изпратите данните до сървъра, като използвате някакъв тип мрежов протокол, като HTTP
. За да изпратите данните, разбира се, трябва да имате някакъв URL
като цел. Да кажем, че целта е www.example.com/webservice.php
. Тази цел е нашата уеб услуга, разположена на уеб сървъра.
След като изпратите данните, сървърът ще отговори с някои данни, в който момент можете да правите каквото искате с него. Може би го покажете на потребителя или го залепете в SQLite
база данни или дори и двете.
Основното нещо, което трябва да запомните, е, че няма магия. Всичко, което току-що описах, ще бъде внедрено в Java код, който ще напишете в приложението си за Android в даден момент.
Основни идеи, които трябва да проучите повече и да разберете как да внедрите в Java код:
- JSON и XML
- HTTP в Java
- REST и SOAP
- Тук е отлично видео за възможните начини за настройка на структурата на вашето приложение за Android.
- Уверете се, че извършвате всички мрежови операции в приложението си за Android в различна нишка. Лесен за използване метод е Intent Service .
Уеб услуга:
Това често е най-объркващата част. Web Service
е просто някаква входна точка за клиенти, които се опитват да осъществят достъп до Web Server
. Моето обяснение тук може леко да се различава, когато използвам RoR
, но важи същата идея. Забележете по-горе, че целевият URL
беше www.example.com/webservice.php
. Уеб услугата е буквално PHP
код, който съществува на уеб сървъра, наречен webservice.php
. Във вашето приложение за Android, когато изпращате данни до целевия URL
използвайки HTTP
, кодът на уеб услугата ще бъде изпълнен на сървъра (и също така ще има достъп до данните, които сте му изпратили). Вътре в кода на вашата уеб услуга вие основно ще извличате данните (които са в някакъв формат като JSON), грабвате необходимите части и след това правите нещо с тях. В този случай най-вероятно ще правите заявки към базата данни. В PHP е лесно да се пише код, който свързва и отправя заявки към MySQL база данни, която също се изпълнява на сървъра. Когато отговорът на базата данни бъде извлечен от уеб сървъра, можете да го изпратите обратно в приложението за Android. Както преди, не забравяйте, че няма магия. Всички тези идеи се реализират чрез писане на някакъв код.
Основни идеи за проучване:
- Уеб услуга Ruby on Rails
- Как да получите достъп до MySQL база данни с помощта на Ruby on Rails
База данни MySQL:
Тук ще съхранявате данните на уеб сървъра. Няма да навлизам в дълбочина тук, защото това просто ще изисква от вас да четете много за това как да настроите MySQL база данни на уеб сървър. Също така е важно да научите как да създавате подходящите заявки като SELECT
, INSERT
и така нататък.
Основни идеи за проучване:
Как да настроите MySQL база данни на уеб сървър
Ако имате нужда от разяснения, уведомете ме!