Курсовая работа (т): Разработка информационного приложения для прогноза погоды на платформе Android

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Приложение требует для установки в два раза (или даже в четыре) больше места, чем оригинальный размер приложения;

Скорость работы с файлами на встроенной флеш-карте падает в десятки раз при уменьшении свободного места;

Каждый процесс может использовать до 16 Мб (иногда 24 Мб) оперативной памяти.основан на Linux. Между приложением и ядром лежит слой API и слой библиотек на нативном коде. Приложение выполняется на виртуальной машине Java (Dalvik Virtual Machine).

В Android можно запускать много приложений. Но одно из них есть главным и занимает экран. От текущего приложения можно перейти к предыдущему или запустить новое. Это похоже на браузер с историей просмотров.

Каждый экран пользовательского интерфейса представлен классом Activity в коде. Различные Activity содержатся в процессах. Activity может даже жить дольше процесса. Activity может быть приостановлена и запущена вновь с сохранением всей нужной информации.использует специальный механизм описания действий основанный на Intent. Когда нужно выполнить действие (сделать звонок, послать письмо, показать окно), вызывается Intent.

Также Android содержит сервисы подобные демонам в Linux для выполнения нужных действий в фоновом режиме (например, проигрывание музыки). Для обмена данными между приложениями используются Content providers (провайдеры содержимого).

Для данной работы были использованы провайдер данных о местоположении и положении в пространстве пользовательского устройства.

2.2 Общая схема работы приложения Android


Приложения для Android в своей работе использует окна(аналогично Windows), однако в данной системе вышеуказанные окна носят иное название - Activity. Как и в Windows, каждое окно имеет свой жизненный цикл и свои особенности. При создании нового окна вызывается метод onCreate(), при разработке данный метод переопределяется и в нем происходит инициализация приложения и его компонентов. Далее вызываются методы onStart() и onResume(). Оба метода вызываются перед отображением окна при его создании, либо восстановлении(при переключении из другого приложения, при разворачивании свернутого приложения и тп). При сворачивании вызываются методы onPause() и onStop(). При закрытии приложения и окна вызывается onDestory(), в данном методе можно сохранить пользовательские данные и параметры. Полное описание и последовательность вызова методов можно найти на официальном сайте. Общая схема жизненного цикла приложения для Android представлена на рисунке 2.

Рисунок 2 - Жизненный цикл приложения для системы под управлением Android 2.3.1

Приложения Java обычно транслируется в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) вне зависимости от компьютерной архитектуры.

Дата официального выпуска - 23 мая 1995 года. является основой практически для всех типов сетевых приложений и всеобщим стандартом для разработки и распространения встроенных и мобильных приложений, игр, веб-контента и корпоративного программного обеспечения.

В мире насчитывается более 9 миллионов специалистов, разрабатывающих приложения на Java, которая позволяет эффективно разрабатывать, внедрять и использовать превосходные приложения и услуги.

От портативных компьютеров до центров сбора данных, от игровых консолей до суперкомпьютеров, используемых для научных разработок, от сотовых телефонов до сети Интернет - Java используется повсюду.

-       Java используется на 97% корпоративных настольных ПК;

-       Java используется на 89% настольных ПК в США;

-       9 млн разработчиков на Java в мире;

-       Инструмент номер 1 среди разработчиков;

-       Программа номер 1 среди разработчиков;

-       Java используется в 3 млрд мобильных телефонов;

-       Java входит в комплект поставки 100% всех проигрывателей дисков Blu-ray;

-       Используется 5 млн Java Card;

-       Java используется в 125 млн ТВ-устройств;

-       5 из 5 основных производителей оригинального оборудования включают в комплект поставки Java ME;

3.1 Основные особенности языка Java при использования Android

Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) - программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор.

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

Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание.

 Часто к недостаткам концепции виртуальной машины относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программ и алгоритмов, реализованных на языке Java.

В последнее время был внесен ряд усовершенствований, которые несколько увеличили скорость выполнения программ на Java:

-       применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде;

-       широкое использование платформенно-ориентированного кода (native-код) в стандартных библиотеках;

-       аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM);

По данным сайта shootout.alioth.debian.org, для семи разных задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для C/C++, в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10-30 раз больше, чем программой на C/C++.

Также примечательно исследование, проведённое компанией Google, согласно которому отмечается существенно более низкая производительность и бо́льшее потребление памяти в тестовых примерах на Java в сравнении с аналогичными программами на C++.

3.2 Связь между Java, Android и Eclipse

Язык Java активно используется для создания мобильных приложений под операционную систему Android. При этом программы компилируются в нестандартный байт-код, для использования их виртуальной машиной Dalvik. Для такой компиляции используется дополнительный инструмент, а именно Software Development Kit, его разработали представители компании Google.

Разработку приложений можно вести в среде Eclipse, используя при этом плагин - Android Development Tools (ADT) или в IntelliJ IDEA. Версия JDK при этом должна быть 5.0 или выше.

 Eclipse - свободная интегрированная среда разработки модульных кроссплатформенных приложений. Развивается и поддерживается Eclipse Foundation.

Наиболее известные приложения на основе Eclipse Platform - различные «Eclipse IDE» для разработки ПО на множестве языков (например, наиболее популярный «Java IDE», поддерживавшийся изначально, не полагается на какие-либо закрытые расширения, использует стандартный открытый API для доступа к Eclipse Platform).

Преимущества:служит в первую очередь платформой для разработки расширений, чем он и завоевал популярность: любой разработчик может расширить Eclipse своими модулями. Уже существуют Java Development Tools (JDT), C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с IBM, и средства для языков Ada (GNATbench, Hibachi), COBOL, FORTRAN, PHP и пр. от различных разработчиков.

Множество расширений дополняет среду Eclipse менеджерами для работы с базами данных, серверами приложений и др.Eclipse JDT (Java Development Tools) - наиболее известный модуль, нацеленный на групповую разработку: среда интегрирована с системами управления версиями - CVS, GIT в основной поставке, для других систем (например, Subversion, MS SourceSafe) существуют плагины. Также предлагает поддержку связи между IDE и системой управления задачами.

В основной поставке включена поддержка трекера ошибок Bugzilla, также имеется множество расширений для поддержки других трекеров (Trac, Jira и др.). В силу бесплатности и высокого качества, Eclipse во многих организациях является корпоративным стандартом для разработки приложений. Eclipse написана на Java, потому является платформо-независимым продуктом, за исключением библиотеки SWT, которая разрабатывается для всех распространённых платформ. Библиотека SWT используется вместо стандартной для Java библиотеки Swing. Она полностью опирается на нижележащую платформу (операционную систему), что обеспечивает быстроту и натуральный внешний вид пользовательского интерфейса, но иногда вызывает на разных платформах проблемы совместимости и устойчивости приложений.

4. Разработка программного обеспечения

Этот раздел отчета преддипломной практики посвящен разработке программной части, выбора языка программирования, описанию программы, ее логической структуры.

.1 Функциональное назначение

Целью предипломной практики является создание Android приложения, позволяющего ознакомить пользователей с прогноз погодой Алматы.Интерфейс программы сделано очень удобным и простым для пользователей.С помощью этой программы пользователей может с легкостью ознокомиться с прогноз погодой г.Алматы.

.2 Комплекс технических средств

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

ОЗУ не менее 32 Мб;

свободное дисковое пространство не менее 100 Мб;

не менее 32 Mb видео карта;

монитор типа SVGA;

мышь;

ОС Windows 7, XP.

4.3 Логическая структура программы

Код main.xml

1.Подключения пакета

-23. Импортируються классы

. Описание класса MainActivity

-35. Описание переменных

. Проверяет, переопределен ли метод

-53. Берет с интернета json и кладеть нужные данные в textview

-59. Читаеть json

. Проверяет, переопределен ли метод

-94. Загружает из сервера иконку соответствующий погоде

-107. Выводять данные на экран

Код интерфейса

-19. Задается координаты экрана

-52. Вводится textview

-58. Вводится Imageview

-75. Задается свойства экрана

.4 Вызов и запуск

Чтобы вызовать андроид приложению нам понадобиться запустить Eclipse и открыть Android virtual device manager и запустить эмупулятор.

Рисунок 4.1 - Окно Android virtual device manager

4.5 Инструкция потребителям

Чтобы открыть программу нам понадобиться телефон с ОС Анроид. Первым делом мы установливаем .apk файл и запускаем программу.

Рисунок 4.2 - Главное окно эмупулятора

Рисунок 4.3 - Главное меню эмупулятора

Рисунок 4.3 - Главное окно приложении

Заключение

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

В результате выполнения преддипломной практики был получен опыт в разработке клиент-серверных приложений, высокую значимость имеет возросший уровень программного кода. Получен глубокий опыт и пониманее принципов стороннего взаимодействия систем в операционной системе Android. Работая над сложными и важными проектами, мы начинаем понимать важность своей работы, и должны показывать высокие результаты своего труда, так как это несет в себе большую значимость в IT сфере.

Список литературы

1 Блог на хабре о разработке под Android [Электронный ресурс]// URL: http://habrahabr.ru/blogs/android_development/

Официальная справка для Android разработчиков[Электронный ресурс]// URL http://developer.android.com/index.html

Программирование для Android. Самоучитель /Колисниченко Д. - СПб.: Санкт-Петербург, 2011. - 736 с.

Android 2. Программирование приложений для планшетных компьютеров и смартфонов / Рето Майер . - СПб.: Санкт-Петербург, 2011. - 672 с.

5 Статьи о программировании для Android [Электронный ресурс]// URL: http://flashbot.ru/android-dev

6 Официальная справка по среде программирования [Электронный ресурс]// URL: http://www.jetbrains.com

7 Форум о программировании для Android [Электронный ресурс]// URL: http://www.cyberforum.ru/android-dev/

8 Форум о программировании для мобильных устройств [Электронный ресурс]// URL: http://www.4pda.ru

Программирование под Android / Блэйк Мик . - СПб.: Санкт-Петербург, 2012. - 496 с.

Смартфоны Android без напряга. Руководство пользователя / Андрей Жвалевский . - СПб.: Санкт-Петербург, 2012. - 224 с.

Программирование для Android. Самоучитель / Денис Колиснеченко . - СПб.: Санкт-Петербург, 2011. - 272 с.

Приложение

.        package com.survivingwithandroid.weatherapp;

.        import java.io.BufferedReader;

.        import java.io.InputStream;

.        import java.io.InputStreamReader;

.        import java.net.HttpURLConnection;

.        import java.net.URL;

.        import org.json.JSONArray;

.        import org.json.JSONException;

.        import org.json.JSONObject;

.        import com.survivingwithandroid.weatherapp.adapter.DailyForecastPageAdapter;

.        import com.survivingwithandroid.weatherapp.model.Location;

.        import com.survivingwithandroid.weatherapp.model.Weather;

.        import com.survivingwithandroid.weatherapp.model.WeatherForecast;

.        import android.os.AsyncTask;

.        import android.os.Bundle;

.        import android.app.Activity;

.        import android.graphics.Bitmap;

.        import android.graphics.BitmapFactory;

.        import android.support.v4.app.FragmentActivity;

.        import android.support.v4.view.ViewPager;

.        import android.view.Menu;

.        import android.widget.ImageView;

.        import android.widget.TextView;

.        public class MainActivity extends FragmentActivity {

.        private TextView cityText;

.        private TextView condDescr;

.        private TextView temp;

.        private TextView press;

.        private TextView windSpeed;

.        private TextView windDeg;

.        private TextView unitTemp;

.        private TextView hum;

.        private ImageView imgView;

.        private static String forecastDaysNum = "3";

.        private ViewPager pager;

.        @Override

.        protected void onCreate(Bundle savedInstanceState) {

.        super.onCreate(savedInstanceState);

.        setContentView(R.layout.activity_main);

.        String city = "Almaty, Kazakhstan";

.        String lang = "kz";

.        cityText = (TextView) findViewById(R.id.cityText);

.        temp = (TextView) findViewById(R.id.temp);

.        unitTemp = (TextView) findViewById(R.id.unittemp);

.        unitTemp.setText("°C");

.        condDescr = (TextView) findViewById(R.id.skydesc);

.        pager = (ViewPager) findViewById(R.id.pager);

.        imgView = (ImageView) findViewById(R.id.condIcon);

.        condDescr = (TextView) findViewById(R.id.condDescr);

.        hum = (TextView) findViewById(R.id.hum);

.        press = (TextView) findViewById(R.id.press);

.        windDeg = (TextView) findViewById(R.id.windDeg);

.        JSONWeatherTask task = new JSONWeatherTask();

.        task.execute(new String[]{city,lang});

.        JSONForecastWeatherTask task1 = new JSONForecastWeatherTask();

.        task1.execute(new String[]{city,lang, forecastDaysNum});

Источник: https://www.bibliofond.ru/detail.aspx?id=723975