Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

·  Отладка. В отличие от Eclipse, в которой для того, чтобы увидеть значение какого-либо выражения, необходимо полностью, без лишних символов, выделить это выражение и нажать Ctrl + Shift + I, в IDEA достаточно просто навести курсор на это выражение и нажать Alt + F8.

·  Автозаполнение. В этой области IDEA также имеет преимущество. Благодаря «пониманию контекста» данная IDE анализирует положение курсора и предлагает актуальный вариант для заполнения.

·  Рефакторинг. В плане рефакторинга IDEA также имеет преимущество над Eclipse.

Самым заметным недостатком IntelliJ IDEA служит ее коммерческая направленность и урезание функций в бесплатной версии.

Android Studio — IDE, созданная компанией Google. Основой для Android Studio стала платформа IntelliJ от компании JetBrains. Отличием от IDEA является изначальная направленность на разработку приложений для операционной системы Android.

1.4 Обоснование выбора IDE для разработки приложения

Основным критерием выбора интегрированной среды разработки является удобство разработки и отладки приложения. Учитывая преимущества, указанные выше, и тот факт, что разрабатываемое приложение рассчитано на мобильные устройства, была выбрана Android Studio.

1.5 Анализ методов геолокации

Сервис геолокации обеспечивает информацию о месте пребывания, либо назначения посредством интерактивных карт с минимальным набором данных, тем самым предоставляя наиболее оптимальный маршрут следования, как на личном и общественном транспорте, так и пешком. Сервис отображает местонахождение знакомых и объектов инфраструктуры, отмеченных ими, на том сегменте карты, где находится пользователь.

НЕ нашли? Не то? Что вы ищете?

Разработка геолокационного модуля состоит из следующих задач:

·  Выбор метода поиска координат;

·  Разработка функции получения координат долготы и широты из адреса.

Существуют два метода для поиска координат:

1.  Метод, основанный на классе LocationManager.

2.  Метод, основанный на технологии FusedLocationProvider.

Рассмотрим эти методы подробнее:

1.  LocationManager был добавлен в API 1, предназначен для получения информации о местоположении пользователя. Когда появляются новые координаты, LocationManager сообщает об этом. Данный сервис позволяет приложению получать периодические обновления местоположения телефона. LocationManager может получать координаты, как от спутников GPS, так и через сотовую связь или Wi-Fi. Алгоритм поиска координат в данном методе слишком прямолинеен: позволяется выбрать только один способов определения местоположения: сеть или данные, полученные от GPS. Основной недостаток данного метода: для получения точных координат (например, в здании) пользователю необходимо переключаться между определением координат по координатам сети и спутникам GPS.

2.  В 2013 году на выставке Google I/O была презентована новая технология определения местоположения Fused Location Provider. Данная технология позволяет определять координаты смартфона с большей точностью, при этом потребляя меньше электроэнергии. При активном использовании данное API потребляет меньше 1% заряда в час, что идеально подходит для приложений, требующих постоянных обновлений координат. Используя сервисы определения координат Google Play, приложение получает координаты устройства, которые, в основном, совпадают с координатами пользователя. Fused Location Provider – один из API, представленных в сервисе Google Play. Fused Location Provider анализирует данные, полученные от GPS, мобильной сети и Wi-Fi, для предоставления наиболее точных данных. Также, данный сервис позволяет использовать различные сенсоры телефона для определения движения пользователя и установления частоты обновления координат.

Помимо определения координат в геолокационном модуле необходим метод получения координат из адреса. Для разработки данного метода используем процесс геокодирования. Геокодирование - это процесс перевода описания местоположения в GPS-координаты (широта, долгота, высота над уровнем моря) и обратный процесс. В Android для геокодирования есть специальный класс Geocoder. C его помощью можно трансформировать адрес или другое описание местности в координаты и наоборот. Результаты будут зависеть от предоставляемой информации. Можно ввести точное название улицы города для получения списка близлежайших домов, а можно указать только город и почтовый индекс. Для работы с Geocoder требуется подключение к сервису.

1.6 Обоснование выбора метода геолокации

Для поиска координат необходим метод, удовлетворяющий следующим критериям:

·  Метод не должен потреблять много энергии;

·  Должна быть обеспечена работа в фоновом режиме;

·  Реализация в одном классе;

·  Метод должен получать максимально точные координаты.

Для выбора наилучшего метода определения координат, был проведен следующий тест: было написано два небольших приложения для определения координат пользователя: в первом используется метод Location Manager, в другой – Fused Location Provider. Тестирование будет проводиться на телефоне Samsung Galaxy S4, версия ОС Android 4.3. На момент проведения тестирования батарея была полностью заряжена.

Рис. 2. Начало тестирования

Тестирование проводится в течении 5 часов. Во время тестирования телефон будет запрашивать координаты каждые 10 минут. После проведения тестирования будут приведены сравнительные изображения с уровнем заряда батареи.

Результаты тестирования:

Рис. 3. Результаты тестирования LocationManager

Рис. 4. Результат тестирования Fused Location Provider

Был рассмотрен уровень расхода заряда батареи, теперь необходимо перейти к точности определения местоположения. Благодаря различным приоритетам определения координат, Fused Location Provider позволяет сделать оптимальный выбор между точностью и расходом заряда.

В таблице 2 представлено сравнение приоритетов при определении координат.

Приоритет

Интервал между обновлениями

Расход батареи в час (%)

Точность

HIGH_ACCURACY

5 секунд

7,25%

~10 метров

BALANCED_POWER

20 секунд

0,6%

~40 метров

NO_POWER

Н/Д

Низкий

~1,5 километра

Таблица 2. Сравнение приоритетов при определении координат

На рисунке 5 представлены координаты, полученные благодаря LocationManager и Fused Location Manager.

Рис. 5. Полученные координаты

Сравнение их с координатами, полученными из адреса, благодаря методу геокодирования.

Рис. 6. Координаты, полученные из геокодирования

Для проверки полученных координат, введем их в сервис Google Maps.

Рис. 7. Проверка координат в Google Maps

Исходя из проведенных тестов, оба метода показали достаточно точные результаты.

Основываясь на тестах, проведенных выше, Fused Location Provider является наилучшим выбором. Так как оба метода показали одинаково высокую точность, был выбран метод, потребляющий как можно меньше энергии. Также, большим преимуществом данного метода является одновременное получение данных, как от спутников GPS, так и от данных мобильной сети и Wi-Fi, в то время как LocationManager одновременно может пользоваться только одним источником информации. Но также следует учитывать то, что метод Fused Location Provider не будет работать на устройствах, на которых отсутствует поддержка сервисов Google Play, поэтому необходимо сделать проверку на поддержку сервисов.

1.7 Анализ метода хранения данных

Хранение профилей, созданных пользователем возможно, как локально, так и в памяти устройства. Для хранения профилей существуют следующие методы:

·  Хранение профилей в базе данных SQLite;

·  Хранение профилей в формате XML;

·  Хранение профилей в формате JSON.

Профиль пользователя должен иметь следующие параметры:

·  Имя профиля;

·  Координаты широты и долготы;

·  Область, на которой действуют настройки;

·  Настройки, выбранные пользователем.

SQLite — встраиваемая кроссплатформенная база данных, поддерживающая достаточно полный набор команд SQL. SQLite довольно популярна и часто используется в разработке мобильных приложений. SQLite доступен на любом Android-устройстве, его не нужно устанавливать отдельно. SQLite поддерживает типы TEXT (аналог String в Java), INTEGER (аналог long в Java) и REAL (аналог double в Java). Остальные типы следует конвертировать, прежде чем сохранять в базе данных. SQLite сама по себе не проверяет типы данных, поэтому вы можете записать целое число в колонку, предназначенную для строк и наоборот. Так как сама база данных SQLite представляет собой файл, то по сути при работе с базой данных, мы взаимодействуем с файлом. Поэтому операции чтения и записи могут быть довольно медленными. Следовательно, рекомендуется использовать асинхронные операции, например, при помощи класса AsyncTask. Работа с базой данных сводится к следующим задачам:

·  Создание и открытие базы данных;

·  Создание таблицы;

·  Создание интерфейса для вставки данных;

·  Создание интерфейса для выполнения запросов;

·  Закрытие базы данных.

Основные преимущества SQLite заключаются в надежности за счет ряда тестов, популярности и производительности.

XML (Extensible Markup Language) -- расширяемый язык разметки. XML представляет собой текстовый формат, предназначенный для хранения структурированных данных. Сегодня XML может использоваться в любых приложениях, которым нужна структурированная информация --­ от сложных геоинформационных систем, с гигантскими объемами передаваемой информации до обычных "одно-компьютерных" программ, использующих этот язык для описания служебной информации. XML-документ представляет собой обычный текстовый файл, в котором при помощи специальных маркеров создаются элементы данных, последовательность и вложенность которых определяет структуру документа и его содержание. Основным достоинством XML документов является то, что при относительно простом способе создания и обработки (обычный текст может редактироваться любым тестовым процессором и обрабатываться стандартными XML анализаторами), они позволяют создавать структурированную информацию, которую хорошо "понимают" компьютеры.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5