2015-06-18 5 views
1

Я использую Android Studio, и я хотел бы подключить свое приложение к Интернету. Я хочу сохранить рекорды в хранилище данных Google (высокая репликация).Android-приложение с Google Cloud Datastore

В Eclipse с Google-плагином это кажется очень легким (просто создайте новое веб-приложение и подключите его). Но как это работает в Android Studio? Я попытался что-то сделать с Endpoints и другими вещами, но ничего не получилось.

ответ

7

Вы можете сделать то же самое и с Android Studio.

1) Существует хороший и простой учебник на GitHub с помощью Google о том, как построить приложение GAE конечных точек (Шаг за шагом руководство): https://github.com/GoogleCloudPlatform/gradle-appengine-templates/tree/master/HelloEndpoints

2) Для соединения с базой данных, вы должны добавьте объектно-зависимую зависимость:

compile 'com.googlecode.objectify:objectify:5.0.3' 

Вы также можете использовать JPA или другую структуру ORM. Objectifity разработан специально для GAE (https://github.com/objectify/objectify):

объективировать это API для доступа к данным Java разработан специально для двигателей датасторе Google App. Он занимает «среднюю землю»; проще в использовании и более прозрачной, чем JDO или JPA, но значительно удобнее, чем API низкого уровня. Objectify предназначен для того, чтобы новички сразу же производились, а также отображали полную мощность хранилища данных GAE.

3) Я рекомендую вам проверить, как использовать объективность: https://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify

4) Создайте Entities:

//com.example.backend.entities 
@Entity 
public class Customer { 

@Id 
@GeneratedValue(strategy= GenerationType.IDENTITY) 
private Long id; 
private String firstname; 
private String lastname; 

//getters and setters 
//... 

} 

5) Генерация конечных точек: В Endpoints предоставляют API для клиента Android.

  • Щелкните правой кнопкой мыши объект, который вы хотите открыть клиенту (например, клиент).
  • Выбрать Создать конечную точку облака из Java-класса. Это генерирует базовое описание и реализацию API для для выбранного объекта. Он уже создает методы get/insert/list/patch/remove/update. Это создает также библиотеки для клиента. Обратите внимание, если вы используете эти сгенерированные методы в производстве!

6) Создание AsyncTask в вашем Android приложение (http://developer.android.com/guide/components/processes-andthreads.html#AsyncTask):

AsyncTask позволяет выполнить асинхронную работу на пользовательском интерфейсе. Он выполняет блокировку операций в рабочем потоке и затем публикует результаты в потоке пользовательского интерфейса, не требуя от вас обрабатывать потоки и/или обработчики самостоятельно. Чтобы использовать его, вы должны подклассировать AsyncTask и реализовать метод обратного вызова doInBackground(), который работает в пуле фоновых потоков. Чтобы обновить пользовательский интерфейс, вы должны реализовать onPostExecute(), который передает результат из doInBackground() и запускается в потоке пользовательского интерфейса, поэтому вы можете безопасно обновлять свой интерфейс. Затем вы можете запустить задачу, вызвав execute() из потока пользовательского интерфейса.

В учебнике GitHub вы найдете базовую реализацию, как создать AsyncTask и как подключить Android-клиент для серверной: https://github.com/GoogleCloudPlatform/gradle-appengine-templates/tree/master/HelloEndpoints

7) развертывание приложения бэкэндом:

  • Создать новый проект под https://console.developers.google.com/
  • Название проекта: Название проекта
  • Идентификатор проекта: Имя, используемое для доступа к серверу: Корневой URL-адрес вашего проекта: https: // projectId .appspot.com /.

После того, как проект будет создан, вы должны открыть Android Studio и перейти к Build/Deploy модуль для App Engine

  • Модуль: ваш модуль бэкенд
  • Deploy к: выберите свой созданный проект - вам нужно войти в свою учетную запись Google. Все ваши проекты показаны, и вы можете выбрать проект, который хотите развернуть.
  • Версия: номер версии. Вы можете развернуть разные версии приложения. По умолчанию версия 1 загружается при доступе к вашему проекту. Вы можете изменить версию , добавив номер версии infront идентификатора проекта (например, https://2. projectId .appspot.com/- это загрузит версию 2).
  • Нажмите развернуть. Теперь вам нужно изменить корневой URL-адрес от http://10.0.2.2:8080/_ah/api/ к URL вашего проекта.

Под https://console.google.com/ вы можете выбрать свой проект. Есть полезная информация о файле о проекте: - В разделе Мониторинг/Журналы вы найдете список с записями журнала, которые были инициированы. - Под хранилищем/облачным хранилищем данных/запросом вы можете видеть данные внутри вашей базы данных

Надеюсь, это поможет вам решить вашу проблему. На странице имеется гораздо больше информации. Я рекомендую вам прочитать на этом сайте, чтобы получить лучший обзор по GAE.

+0

Прежде всего спасибо за быстрый ответ. что бы я сделал сейчас, 1) добавление модуля Endpoints в мой проект. 2) Создание классов Entity и их регистрация (т. Е. Рекорды) 3) Создание конечных точек 4) «Создать AsyncTask в приложении для Android»? Что это ?и мне это нужно, когда я просто хочу хранить свои данные? 5) Развертывание в App Engine. Это хорошо или у вас есть другие советы? –

+0

Вам нужна AsyncTask для отправки данных через Интернет на сервер. Мой ответ должен предоставить вам информацию о том, как решить вашу проблему. Если у вас возникли проблемы во время реализации, вы можете задать более конкретные вопросы. – devz

0

Теперь, когда с облачными функциями Google вы можете отправлять свои запросы из своего мобильного приложения в Cloud Function и из функции Cloud вы можете запрашивать данные из своего хранилища данных. Вот библиотека для интеграции хранилища данных с облачными функциями https://github.com/GoogleCloudPlatform/google-cloud-java#google-cloud-datastore-ga

Смежные вопросы