2 Средства разработки 
          Бурное развитие информационных технологий в последнее время привело к тому, что появилось много новых устройств и технологий, таких, как планшеты, смартфоны, нетбуки и другие гаджеты. Мир все больше стал уходить от понятия компьютера как исключительно стандартного персонального компьютера. Смартфоны и прочие гаджеты все более прочно входят в нашу жизнь и становятся привычным дело. Лидирующей платформой среди подобных гаджетов на сегодняшний день является ОС Android. По разным подсчетам за 2015 год этой операционной системой пользуются около 82% владельцев смартфонов. 
           
          ОС Android была создана разработчиком Энди Рубином (Andy Rubin) в качестве операционной системы для мобильных телефонов и поначалу развивалась в рамках компании Android Inc. Но в 2005 году Google покупает Android Inc. и начинает развивать операционную систему с новой силой. На данный момент последней версией является Android 6.0 Marshmallow, которая вышла в октябре 2015 года. 
           
          В первую очередь для создания приложений необходимо загрузить и установить JDK. Несмотря на то, что последней версией языка Java является Java 8, но к текущему моменту даже самая последняя версия ОС Android поддерживает Java 7. При написании приложения использовалась JDK версии 1.8. 
           
          В качестве среды разработки используется Android Studio версии 1.4. Она является рекомендуемой. Android Studio – это относительно новая среда разработки Android-приложений, базирующаяся на платформе Intellij IDEA компании JetBrains. Новые функции появляются с каждой новой версией Android Studio. На данный момент доступны следующие функции: 
           
          – расширенный редактор макетов: WYSIWYG, способность работать с UI компонентами при помощи Drag-and-Drop, функция предпросмотра макета на нескольких конфигурациях экрана; 
           
          – сборка приложений, основанная на Gradle; 
           
          – различные виды сборок и генерация нескольких .apk файлов; 
           
          – рефакторинг кода; 
           
          – статический анализатор кода (Lint), позволяющий находить проблемы производительности, несовместимости версий и другое; 
           
          – встроенный ProGuard и утилита для подписки приложений; 
           
          – шаблоны основных макетов и компонентов Android; 
           
          – поддержка разработки приложений для Android Wear и Android TV и другие. 
           
          Существуют разные среды разработки для Android. Можно использовать для разработки такие среды как NetBeans, Eclipse, Visual Studio. 
           
          Для тестирования приложения используется программа Genymotion. Genymotion – быстрый эмулятор Android, который включает в себя настроенные образы Android. Genymotion доступен для Linux, Windows и Mac OS X и требует VirtualBox. 
           
          Особенности Genymotion: 
           
          – быстрая загрузка и запуск предварительно настроенных образов Android. Список устройств постоянно расширяется; 
           
          – GPS (с настраиваемыми координатами) и батарея (с настраиваемым уровнем батареи); 
           
          – отображение: аппаратное ускорение с OpenGL, режим полноэкранного просмотра; 
           
          – консоль, которая позволяет взаимодействовать с виртуальной машиной, используя командную строку; 
           
          – поддержка ADB; 
           
          – эмуляция передней и задней камеры; 
           
          – работает на порядок быстрее эмуляторов от Google; 
           
          – общий буфер обмена виртуального устройства и ПК; 
           
          – редактирование количества процессоров (CPU) и количества оперативной памяти (RAM) в настройках виртуального устройства; 
           
          – генерирование архива log-файлов при обращении в тех поддержку; 
           
          – эмуляция работы интернета через GPRS, Edge, 3G, 4G и прочее. 
           
          API (Application Programming Interface) – это интерфейс программирования, интерфейс создания приложений. В процессе написания приложения использовался интерфейс для создания приложения API 16 (Android 4.1.2). 
           
           
           3 Структура программы 
          За работу приложения отвечают 8 классов, которые распределены на 4 пакета: 
          
             
            activity – содержит активности приложения;
  
             
            dao – содержит класс для работы с памятью телефона;
  
             
            pojo – содержит класс, описывающий всю необходимую для программы информацию об объекте;
  
             
            service – содержит класс-сервис для проверки наступления события.
  
            
          В пакете «activity» находятся 5 активностей приложения. Рассмотрим эти активности. 
           
          «MainActivity» – главная активность приложения. Инициализирует класс для работы с данными в памяти телефона, запускает сервис для мониторинга задач. 
           
          «ActiveActivity» – активность, отображающая список активных задач, а также служит для добавления новых задач. 
           
          «FinishActivity» – активность, отображающая список завершенных задач, а также позволяет активировать задачу. 
           
          «InfoActivity» – активность, отображающая информацию о задаче, позволяя редактировать ее. 
           
          «DelayActvivity» – активность, позволяющая отложить задачу или завершить. 
           
          В пакете «dao» находится класс «TaskDao» для работы с данными в памяти телефона, используя класс «SharedPreferences», позволяющий создавать в приложении именованные ассоциативные массивы типа «ключ — значение», которые могут быть использованы различными компонентами приложения. 
           
          В пакете «pojo» хранится класс «Task», описывающий всю необходимую для программы информацию об объекте. 
           
          В пакете «service» содержится класс-сервис мониторинга задач. Через фиксированный период времени он проверяет сроки задач. Также этот класс запускает поток для работы приложения в фоновом режиме. 
           
          За графический интерфейс отвечают layout-файлы, подключаемые в соответствующих активностях. Такими файлами в приложении являются: «activity_main» – начальная активность, «delay_view» – при наступлении события можно произвести отсрочку напоминания или завершить, «info_activity» – содержит необходимые компоненты интерфейса для редактирования/добавления задач, «list_view_active» – на экране отображаются активные задачи, а также кнопка для добавления новой, «list_view_finish» – на экране отображаются завершенные задачи. 
           
          Коды классов и layout-файлов приведены в приложении Б. 
           
           
         |