В данной статье рассматривается создание мобильного приложения на базе ОС Android, осуществляющего расчёт расхода калорий и хранение актуальной информации о физической активности пользователя. Отличительной особенностью разработанного продукта является учёт скорости и угла наклона при расчёте интенсивности физической активности.
Ключевые слова: расход калорий, Android приложение, мониторинг физической активности
В современном мире смартфоны стали неотъемлемой частью жизни каждого человека, предоставляющей множество персональной информации. В связи с этим стали возможными разработки использования смартфона в качестве прибора для мониторинга физической активности человека. Толчком к развитию данного направления стало появление новых технологий и внедрение в устройства новейших датчиков, а также появление продвинутых систем анализа и обработки данных, полученных с датчиков устройств.
В связи с этим представляет интерес создание собственного приложения, которое позволяло бы проводить расчёт расхода калорий за определённый период времени на основании небольшого набора пользовательских данных и информации о физической активности пользователя в данный период времени. Отличительной чертой разработанного продукта является учёт дополнительных параметров, влияющих на расход калорий при совершаемой активности, таких как скорость и перепад высот.
Основные формулы расчёта расхода калорий
Для расчёта базового расхода калорий (RMR) было принято решение использовать уравнения Миффлина-Сент-Джеора [2], в которых производится учёт пользовательских данных, таких как пол, возраст, рост, вес. Количественный эквивалент интенсивности (МЕТ) выявленных видов активности пользователя рассчитывается при помощи прогностических уравнений с варьирующимся значением коэффициентов в зависимости от вида активности [3], в них производится учёт скорости выполнения активности и угла наклона, вычисляемого на основе перепада высот.
Расчёт добавочного расхода калорий осуществляется при помощи основной формулы [4]:
C=T*MET*(RMR/1440)
где: C-расход калорий (ккал), T- Продолжительность активности (мин), MET — Значение МЕТ интенсивности активности (ккал/кг/мин), RMR — Скорость метаболизма в покое для данного человека (RMR/1440) (ккал/мин).
Используемые программные библиотеки
На основе проведённого анализа подходов и доступных технологий были выбраны для использования следующие разработки Google: для получения информации о местоположении пользователя Fused Location Provider API, комбинирующий в себе технологии gps, wi-fi и телефонные вышки с достижением точности определения местоположения от 3 до 5 метров, значения высот над уровнем моря высчитываются при помощи веб-сервиса Elevation API, который предоставляет простой интерфейс для получения данных о высоте при помощи запросов к Elevation API в виде URL-адреса, а распознавание активностей, таких как бег, ходьба, состояние покоя, езда на велосипеде происходит на основании наборов обучающих данных и алгоритмической фильтрации Google с помощью использования Transition Activity Recognition API.
Алгоритм работы основного функционала приложения
Для реализации функции расчёта расхода калорий на основании совершаемой пользователем физической активности был разработан оригинальный алгоритм, в котором производится учёт влияния скорости и угла наклона на интенсивность совершаемой активности на основании формул, описанных выше. Алгоритм работы основного функционала приложения для наглядности представлен в виде блок-схемы на рисунках 1.1 и 1.2.
Рис. 1.1. Алгоритм работы основного функционала приложения
Рис. 1.2. Продолжение алгоритма
Архитектура приложения на базе ОС Android
В данном исследовании был сделан выбор в пользу разработки мобильного приложения на базе ОС Android. В силу требований, применяемых к разрабатываемому приложению, на основании данных процентного распределения версий операционной системы Android среди устройств [5], для охвата большего числа пользователей в качестве минимальной версии операционной системы для разработанного приложения был выбран API Level: 21,Lollipop.
Реализованное приложение имеет стандартную архитектуру и состоит из двух основных уровней, таких как View Layer и Data Layer. Уровень представления (View layer) отвечает за обработку данных и их отображение. Данный уровень состоит из набора активностей(Activities) — компонентов приложения, выдаваемых экраном, с которым пользователи могут взаимодействовать для выполнения каких-либо действий. Каждая активность представляется в виде класса, содержащего все основные методы, при помощи которых осуществляются расчёты, указанные в алгоритме, описанном ранее, а также здесь осуществляется реализации графического пользовательского интерфейса. Data Layer же состоит из локальной реляционной базы данных SQLite, структура которой состоит из двух таблиц с основными компонентами activity_id, transition_type, latitude, longitude, elevation, time. Взаимодействие с табличными данными осуществляется посредством использования библиотеки Room, представляющей собой уровень абстракции над SQLite. Также здесь происходит осуществление и обработка запросов к веб-серверу Elevation API, упомянутому ранее.
Основной функционал приложения
Основной функционал приложения отображен на рисунке 2. Созданное мобильное приложение предоставляет возможность пользователю получить информацию о базовом расходе калорий, основываясь на введённых параметрах. Получение данных о поле пользователя реализуется при помощи кнопок male, female, а обработка параметров, таких как возраст, рост и вес, осуществляется при помощи EditText. Кроме того, приложение позволяет рассчитать добавочный расход калорий за период времени, вводимый пользователем (базовый период времени 24 часа используется в том случае, если пользователь не ввел соответствующие данные). Также существует возможность получить данные о физической активности за определённый период времени в виде списка, для каждого из элементов которого отображается детальный расход калорий в течение данной активности, её длительность, полная дистанция и перепад высот в течение данной физической активности.
Рис. 2. Основной функционал приложения
Таким образом, в результате проделанной работы был разработан и реализован алгоритм, позволяющий получать данные о расходе калорий пользователем за определённый период времени, основываясь на данных о его физической активности с учётом влияния скорости активности и угла наклона местности. Было создано мобильное приложение на базе ОС Android, осуществляющее расчёт расхода калорий и хранение актуальной информации о физической активности пользователя. Также была реализована возможность получения базового расхода калорий и представлен графический интерфейс для отображения результирующих данных пользователю.
Необходимо также отметить, что результаты, полученные при использовании приложения, схожи с данными существующих решений, реализующих похожую функциональность. Также приложение показало свою работоспособность как на стандартных эмуляторах, взятых из SDK, так и на реальных устройствах на платформе Android.
Литература:
- Mifflin M. D.,St Jeor S. T., Hill L. A., Scott B. J., Daugherty S. A., Koh Y. O. A new predictive equation for resting energy expenditure in healthy individuals // The American Journal of Clinical Nutrition. 1990. Vol. 51, Issue 2, P.241–247
- Peter Kokkinos, Leonard A. Kaminsky, Ross Arena, Jiajia Zhang, Jonathan Myers New Generalized Equation for Predicting Maximal Oxygen Uptake (from the Fitness Registry and the Importance of Exercise National Database) // The American journal of cardiology. 2017. Vol. 120, Issue 4, P. 688–692
- Key Concepts in Sport and Exercise Sciences / Edited by: David Kirk, Calton Cooke, Anne Flintoff, Jim McKenna. 1 edition SAGE Publications Ltd(UK), 2008. 160 p.
- Breakdown of Android versions https://en.wikipedia.org/wiki/Android_(operating_system)