Dưới đây là tổng quan ngắn gọn về những gì bạn nên biết để hoàn thành mục tiêu của mình. Tôi sẽ không đi sâu vào chi tiết đó, đặc biệt là vì bản thân tôi chưa bao giờ sử dụng RoR. Lưu ý rằng một số phần này có thể không liên quan chính xác đến RoR, nhưng ý tưởng chung đằng sau nó vẫn được áp dụng. Tôi sẽ giao nó cho bạn để nghiên cứu và tìm ra cách triển khai từng thành phần riêng lẻ.
Quy trình chung của mọi thứ như sau:
Ứng dụng Android <==> Mạng <==> Dịch vụ web <==> MySQL
Lưu ý các mũi tên hai lưỡi vì dữ liệu sẽ chảy theo cả hai hướng.
Android App
là máy khách và Web Service
và MySQL
cơ sở dữ liệu được đặt trên Web Server
của bạn . Tôi chỉ bao gồm phần Mạng cho đầy đủ, nhưng bạn không cần phải làm bất cứ điều gì khi dữ liệu đã được gửi vào mạng.
Tổng quan ngắn gọn về từng phần:
Ứng dụng Android:
Ứng dụng Android là ứng dụng khách gửi và truy xuất dữ liệu từ Máy chủ web. Tôi giả định rằng trong ứng dụng của bạn, bạn sẽ cho phép người dùng thực hiện một số tác vụ mà về bản chất, nó sẽ trở thành dữ liệu mà bạn muốn gửi đến máy chủ vào một thời điểm nào đó.
Lấy ví dụ, người dùng có thể nhập tên và con vật yêu thích của mình. Giả sử rằng có một nút "Gửi" thực tế mà người dùng có thể nhấp vào. Khi nhấp vào nút "Gửi" này, nó sẽ gói dữ liệu thành một định dạng thích hợp để gửi qua mạng. Hai trong số những cái phổ biến nhất là JSON
và XML
. Khi dữ liệu đã được định dạng đúng cách, bạn sẽ muốn gửi dữ liệu đến máy chủ bằng một số loại giao thức mạng như HTTP
. Để gửi dữ liệu, tất nhiên bạn phải có một số URL
làm mục tiêu. Giả sử mục tiêu là www.example.com/webservice.php
. Mục tiêu này là Dịch vụ Web của chúng tôi nằm trên Máy chủ Web.
Sau khi bạn gửi dữ liệu, máy chủ sẽ phản hồi với một số dữ liệu tại thời điểm đó bạn có thể làm bất cứ điều gì bạn muốn với nó. Có thể hiển thị nó cho người dùng hoặc gắn nó vào một SQLite
cơ sở dữ liệu hoặc thậm chí cả hai.
Điều quan trọng cần nhớ là không có phép thuật nào xảy ra. Mọi thứ tôi vừa mô tả sẽ được triển khai bằng mã Java mà bạn sẽ viết trong Ứng dụng Android của mình vào một thời điểm nào đó.
Ý tưởng chính mà bạn nên nghiên cứu thêm và tìm ra cách triển khai trong mã Java:
- JSON và XML
- HTTP trong Java
- REST và SOAP
- Tại đây là một video xuất sắc về các cách có thể để thiết lập cấu trúc của Ứng dụng Android của bạn.
- Đảm bảo rằng bạn đang thực hiện tất cả các hoạt động mạng trong Ứng dụng Android của mình trên một chuỗi khác. Một phương pháp dễ sử dụng là Dịch vụ ý định .
Dịch vụ web:
Đây thường là phần khó hiểu nhất. Một Web Service
chỉ đơn giản là một số điểm vào cho các máy khách cố gắng truy cập vào Web Server
. Lời giải thích của tôi ở đây có thể hơi khác khi sử dụng RoR
, nhưng ý tưởng tương tự cũng được áp dụng. Lưu ý ở trên rằng mục tiêu URL
là www.example.com/webservice.php
. Dịch vụ web theo nghĩa đen là PHP
mã tồn tại trên Máy chủ Web, được gọi là webservice.php
. Trong Ứng dụng Android của bạn, khi bạn gửi dữ liệu đến URL
đích sử dụng HTTP
, mã Dịch vụ Web sẽ được thực thi trên máy chủ (và cũng có quyền truy cập vào dữ liệu mà bạn đã gửi đến nó). Bên trong mã Dịch vụ web của bạn, về cơ bản bạn sẽ trích xuất dữ liệu (ở một số định dạng như JSON), lấy các phần cần thiết và sau đó làm gì đó với nó. Trong trường hợp này, rất có thể bạn sẽ truy vấn cơ sở dữ liệu. Trong PHP, rất dễ dàng để viết mã kết nối và truy vấn cơ sở dữ liệu MySQL cũng đang chạy trên máy chủ. Khi phản hồi của cơ sở dữ liệu được Máy chủ Web truy xuất, bạn có thể gửi phản hồi đó trở lại Ứng dụng Android. Cũng như trước đây, hãy nhớ rằng, không có phép thuật nào xảy ra. Tất cả những ý tưởng này được thực hiện bằng cách viết một số mã.
Ý tưởng chính cần nghiên cứu:
- Dịch vụ web Ruby on Rails
- Cách truy cập cơ sở dữ liệu MySQL bằng Ruby on Rails
Cơ sở dữ liệu MySQL:
Đây là nơi bạn sẽ lưu trữ dữ liệu trên Máy chủ Web. Tôi sẽ không đi sâu về vấn đề đó ở đây vì điều này chỉ yêu cầu bạn đọc nhiều về cách thiết lập cơ sở dữ liệu MySQL trên máy chủ web. Điều quan trọng nữa là bạn phải học cách tạo các truy vấn thích hợp, chẳng hạn như SELECT
, INSERT
và vân vân.
Ý tưởng chính để nghiên cứu:
Cách thiết lập cơ sở dữ liệu MySQL trên máy chủ web
Nếu bạn cần bất kỳ điều gì làm rõ, hãy cho tôi biết!