Достоинства и недостатки операционной системы Андроид
Содержание
Введение
Главное направление совершенствования мобильных телефонов можно определить одним понятием: конвергенция технологий. Мобильные телефоны объединили в себе едва ли не всё, что можно и разумно объединять под корпусом одного устройства.
Основные задачи телефона прошлого - совершать и принимать звонки, писать SMS. Сегодня эти задачи дополнилась работой с интернет - ресурсами, прослушиванием музыки, фотосъемкой, использованием игр и приложений. Мобильный будущего, скорее всего, добавит к списку основных задач просмотр телепрограмм, управление различной техникой, функции контроля и возможно многое другое.
Эксперты обращают внимание потребителей на тот факт, что сейчас на рынке доступно несколько мобильных платформ, стремительную популярность среди которых в последнее время приобретает iOS и Android. Программная платформа Android на мировом рынке смартфонов достигла рекордных 87,5 %. Иными словами, примерно девять из десяти аппаратов используют именно эту ОС.
Что бы ни говорили, а мобильность сегодня - явление глобальное, проникающее во многие сферы нашей жизни. Ныне потребитель ищет не просто мобильный телефон, он внимательно изучает условия, соотнося их с требованиями современного рынка. Именно поэтому можно утверждать, что развитие мобильных технологий будет только ускоряться.
Целью данной работы является разработка приложение для ОС Android, назначением которого будет доступ к расписанию Бурятского государственного университета Пользователями данного приложения будут студенты университета.
Для достижения поставленной цели требуется решить следующие задачи:
1) Изучить архитектуру, инструменты и особенности разработки приложений для ОС Android;
2) Создать макет - прототип будущей программы;
3) Разработать приложение согласно макету;
4) Разработать интерфейс пользователя;
5) Протестировать разработанное приложение.
Практическая значимость данной работы состоит в том, что результат достижения поставленной цели имеет возможность применения в деятельности конкретного учебного заведения.
AndroidStudio — это интегрированная среда разработки (IDE) для работы с платформой Android.
AndroidStudio, основанная на программном обеспечении IntelliJ IDEA от компании JetBrains, официальное средство разработки Android приложений. Данная среда разработки доступна для Windows, OS X и Linux.
ГлаваI
Достоинства и недостатки операционной системы Андроид
Однойсболееизвестныхоператорныхконцепцийвподвижномторгев настоящее времясчитаетсяAndroid —мобильная операционнаясистемасГугл. К сожалению,еёглобальноепродвижениеникак несоздаетрезультатбезупречным. УДроидатакжеимеетсясобственные преимуществаи.
Достоинства:
Разнообразие игр и приложений. Их количество вмагазинах уже давно ранее осилило миллионную оценку. Плееры, браузеры, текстовые редакторы и почти все иное – в целом налюбителя.
Android – ОС с не закрытым начальным кодом.
В системе хорошо выполнена многозадачность, функционирует в то же время ряд дополнений.
Переключение между задачами происходит быстро.
Своевременные обновления фирмой Гугл проводится постоянная работа над усовершенствованием перечня возможностей операционной системы.
Недостатки:
Множество опций.
Несовместимость с устаревшими устройствами.
Уровень среды исполнения Андроид.
В состав Android входит набор библиотек ядра, которые предоставляют большую часть функциональности библиотек ядра языка Java.
Платформа использует оптимизированную, регистр-ориентированную виртуальную машину Dalvik, в отличии от нее стандартная виртуальная машина Java – стек-ориентированная. Каждое приложение запускается в своем собственном процессе, со своим собственным экземпляром виртуальной машины. Dalvik использует формат DalvikExecutable (*.dex), оптимизированный для минимального использования памяти приложением. Это обеспечивается такими базовыми функциями ядра Linux, как организация поточной обработки и низкоуровневое управление памятью. Байт-код Java, на котором написаны ваши приложения, компилируются в dex-формат при помощи утилиты dx, входящей в состав SDK.
Библиотеки Андроид.
Платформа Android включает набор C/C++ библиотек, используемых различными компонентами ОС. Для разработчиков доступ к функциям этих библиотек реализован через использование ApplicationFramework. Представлены некоторые из библиотек:
System C library — BSD-реализация стандартной системной библиотеки C (libc) для встраиваемых устройств, основанных на Linux.
MediaLibraries – библиотеки, основанные на PacketVideo‘sOpenCORE, предназначенные для поддержки проигрывания и записи популярных аудио- и видео- форматов (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG и т.п.).
SurfaceManager – менеджер поверхностей управляет доступом к подсистеме отображения 2D- и 3D- графических слоев.
LibWebCore – современный движок web-браузера, который предоставляет всю мощь встроенного Android-браузера.
SGL – движок для работы с 2D-графикой.
3D libraries – движок для работы с 3D-графикой, основанный на OpenGL ES 1.0 API.
FreeType – библиотека, предназначенная для работы со шрифтами.
SQLite – мощный легковесный движок для работы с реляционными БД.
1.1 Компоненты приложений в Androidграмма приложение
Интересной чертой операционной системы Android является тот факт, что приложение в ней может использовать для своего функционала элементы других приложений, если, конечно, они предоставляют такой доступ. Например, если нашему приложению требуется отобразить прокручиваемый список изображений, а другое приложение уже имеет реализованный подходящий скроллер, открытый для других приложений, то можно просто вызвать его для осуществления этого действия и не разрабатывать свой собственный. При этом код нашего приложения не смешивается с кодом другого и не компонуется с ним. Скорее, он просто запускает некоторый кусок другого файла, когда возникает такая необходимость. Для обеспечения такого принципа работы, система должна быть способна запускать процесс приложения тогда, когда потребуется любая его часть и создавать экземпляры java-объектов именно для этой части. Поэтому приложения Android не имеют единой точки входа, как это принято в большинстве систем. Вместо этого их код представляет собой набор некоторых отдельных целостных сущностей, компонент, из которых система по мере необходимости может создавать экземпляры и использовать их.
Можно выделить четыре типа таких сущностей-компонент. Поговорим о каждой в отдельности.
Activities
Activity представляет собой внешний пользовательский интерфейс для одной операции, которую может совершить пользователь. Если упростить, то это просто один текущий экран как некоторая единица активности, своего рода кадр с одним пользовательским действием. Здесь и далее будет использоваться термин activity без перевода, как некоторое имя собственное. Хотя дословный перевод, «активность» или «действие», хорошо передает общий смысл компонента.
Например, activity может предоставить список пунктов меню, которые может выбрать пользователь или отобразить фотографии с их подписями. Или другой пример – приложение для мгновенного обмена сообщениями может использовать одно activity для того чтобы отобразить лист контактов, другое – чтобы создать сообщение для выбранного контакта, третье – чтобы посмотреть историю сообщений или выполнить настройки и так далее.
Приложение может состоять из всего одного activity или сразу из нескольких, как упомянутый ранее в качестве примера мессенджер. Какими именно будут activity и сколько их будет, зависит от конкретного приложения и его дизайна. Как правило, одно из activity помечается как первое, это означает, что оно будет предоставлено пользователю при запуске приложения. Одно activity может запускать другое. Таким образом, переход от одного activity к другому осуществляется тогда, когда текущее activity вызывает следующее.
Каждое activity предоставляет окно по умолчанию. Обычно окно создается в полноэкранном виде, но оно также может и не занимать весь экран и находиться поверх других окон. Activity также может задействовать дополнительные окна – например, всплывающее диалоговое для взаимодействия с пользователем в процессе работы activity, или окно для предоставления текущей информации при выборе какой-нибудь важной опции.
Визуальное содержание окна строится с помощью иерархии визуальных компонентов (или представлений) – объектов, производных от базового класса View. Каждый компонент представляет собой просто прямоугольное пространство внутри окна. Родительские компоненты содержат дочерние и организуют их расположение. Иерархию компонент можно представить в виде дерева, а те элементы, которые находятся в самой нижней его части (“листья”) и не имеют дочерних компонент, отрисовывают прямоугольные области и ожидают действий пользователя на этом участке. Для того чтобы поместить в окно такую иерархию, нужно вызвать метод Activity.setContentView(). Параметром метода является экземпляр класса View, лежащий в корне иерархии.
Services(сервисы) представляют из себя компоненты, которые работают в фоновом режиме. Он, как правило, требуется для длительных операций или для обеспечения работы удаленных процессов, но в общем случае это просто режим, который функционирует, когда приложение не в фокусе. Примером такого процесса может стать прослушивание музыки в то время, когда пользователь делает что-то другое или получение данных по сети без блокирования текущей активности. Сервис сам по себе не предоставляет пользовательского интерфейса, то есть с пользователем не взаимодействует, а запускается, управляется и связан с другими компонентами, например, activity. Также может запускаться вместе с системой.
Contentproviders Данный компонент управляет наборами данных, которые приложения предоставляют другим. Эти данные могут храниться в файловой системе, базах данных SQLite, в сети, или в любом другом постоянном месте, к которому приложение может иметь доступ. Посредством contentprovider другое приложение может запрашивать данные и, если выставлены соответствующие разрешения, изменять их. Например, система Android содержит contentprovider, который управляет пользовательской информацией о контактах. Он позволяет любому приложению, обладающему соответствующими правами вызывать составляющие этого компонента для того, чтобы считывать, записывать или изменять информацию о конкретном человеке.
Broadcastreceivers. Этот компонент отвечает за распространение общесистемных сообщений, отслеживание и реагирование на действия. Многие оповещения идут от системы, например, сообщения о том, что заряд батареи мал или экран выключен. Приложения также могут инициировать такие оповещения, например, сигнализировать о том, что информация загружена на устройство и доступна к использованию. Как и сервисы, broadcastreceiver не предоставляет пользовательского интерфейса, однако, он способен создавать уведомления в строке состояния, чтобы предупреждать пользователя о том, что произошло какое-то событие.
Внешний вид приложения.
«По сравнению с другими ОС, Android — одна из наиболее простых и одновременно комплексных платформ, вся система скачивается за один раз».
Большинство студентов используют телефоны с операционной системой Android, что позволяет сделать разрабатываемое приложение более доступным и тем самым обеспечивает студентам доступ красписанию вне института.
Задачи, подлежащие автоматизации:
1. Информирование об изменениях в расписании;
2. Информирование о текущих предметах.
Данное приложение может работать как в режиме online, так и в offline. В режиме offline приложение выполняет функцию предоставления материалов с возможностью просматривать ранее сохраненные данные (предмет, время, аудитория и т. п.). В режиме onlineпоявляется возможность полного информирования.
В его основе лежит система баз данных SQLite. «SQLite» - мощная и легковесная, отличается от многих обычных движков баз данных отсутствием типизации каждого столбца.
Когда приложение использует SQLite, их связь производится с помощью функциональных и прямых вызовов файлов, содержащих данные, а не кого-то интерфейса, что повышает скорость и производительность.
Глава II
Шаблон приложения.
Приложение позволяет получить актуальное расписание для любой группы БГУ. После первой загрузки с расписанием можно работать автономно. Если будет выбрано обновление, то приложение будет отражать появившиеся изменения: название предмета, имя преподавателя, расположение и время проведения. Кроме этого, есть возможность указывать чередования недель (первая неделя / вторая неделя / текущая неделя).
Проект приложения.
Что такое Jsoup.
Jsoup это open-source Java библиотека для работы с реальным HTML. Она обеспечивает очень удобный API для извлечения и манипулирования данными, используя лучшие DOM, CSS, и JQuery-подобные методы. Jsoup реализует WHATWG HTML5 спецификацию, и разбирает HTML в ту же модель DOM, как это делают современные браузер вроде Chrome и Firefox. Вот некоторые из полезных функций Jsoup библиотеки:
- Jsoup может очистить и разобрать HTML из URL, файла или строки.
- Jsoup может найти и извлечь данные используя обход DOM или CSS селекторы.
- Jsoup позволяет манипулировать HTML элементами, атрибутами и текстом.
- «Аккуратный» HTML на выходе: при разборе HTML-текста библиотека исправляет ошибки наподобие незакрытых тегов.
Jsoup предназначен для работы с различными видами HTML существующими в реальном мире, включая должным образом подтвержденный HTML c неполным неподтвержденным набором тэгов. Одно из основных преимуществ Jsoup это его надежность.С помощью него очень просто разобрать HTML, все что Вам нужно это вызвать статический метод Jsoup.parse() и передать в него Вашу HTML строку. Jsoup предоставляет несколько перегруженных методов parse() для чтения HTML из строки, файла, из базового URI, из URL и из InputStream. Вы также можете указать кодировку, для корректного чтения HTML файла.[A5]
Получение данных.
Для получения данных используется сторонняя Java-библиотека jsoup. Кроме того, необходимо предоставить приложению доступ в Интернет. Для этого в файл AndroidManifest.xml нужно дописать следующую строку:
<uses-permissionandroid:name="android.permission.INTERNET"/>
В самом классе Parser надо прописать импорт следующих классов:
importjava.util.List;
importorg.jsoup.nodes.Document;
importorg.jsoup.nodes.Element;
importorg.jsoup.nodes.Node;
importorg.jsoup.parser.CharacterReader;
importorg.jsoup.parser.HtmlTreeBuilder;
importorg.jsoup.parser.ParseError;
importorg.jsoup.parser.ParseErrorList;
importorg.jsoup.parser.ParseSettings;
importorg.jsoup.parser.Tokeniser;
importorg.jsoup.parser.TreeBuilder;
importorg.jsoup.parser.XmlTreeBuilder;
Информация о расписании университета берется с сайта «bsu.ru», и для начала работы необходимо подключитьсяк нужной странице и получить объект класса Document: получаем данные методом GET
org.jsoup.nodes.Document doc = Jsoup.connect("http://bsu.ru/rasp/?g="+groupeNum).get();
После подключения нужно извлечь требуемую информацию:
Elements elements = doc.select("div.week");/**разбиваемпонеделям**/
Метод select() позволяет получить нужные теги.
Далее в цикле для каждого элемента списка извлекается нужная информация:
for (Element element : elements) {
Elements el = element.select("table.rasp_week");
for (Element element1 : el) {
Elements elements1 = element1.select("td");
for (Element element2 : elements1) {
Elements day = element2.select("h3.rasp_day");/*получаемдень**/
for (Element element3 : day) {d = element3.text();}
Elements time = element2.select("td.rasp_time");/**время**/
for (Element element3 : time) {t = element3.text();}
Elements subj = element2.select("td.rasp_subj");/**предмет**/
for (Element element3 : subj) {s = element3.text();}
Elements type = element2.select("td.rasp_subj_type"); /**тип**/
for (Element element3 : type) {st = element3.text();}
Elements aud = element2.select("td.rasp_aud");/**номераудит**/
for (Element element3 : aud) {a = element3.text();}
Elements week = el.select("table.rasp_week").prev();/*№ недели*/
for (Element element3 : week) {w = element3.text();}
Elements name = element2.select("td.rasp_aud").next();/**следующийэлементпосленомерааудитории - имя преподователя**/
for (Element element3 : name) {n = element3.text();
/**если день недели совподает то вывести то формируем список**/
if (dayOfWeek.equals(d)) {scheduler = w + "\r\n" +
"Время: " + t + "\r\n" + "Название предмета: " + s + "\r\n" + "Тип пары: " + st +
" Аудитория: " + a + "\r\n" + "Имя преподавателя: " + n + "\r\n\r";
my.add(scheduler); /**добавляем строку в список строк **/
Document object model (объектная модель документа).
Когда вы открываете веб-страницу в браузере, он получает исходный текст HTML и разбирает (парсит) его. Браузер строит модель структуры документа и использует её, чтобы нарисовать страницу на экране.Вы можете читать её и изменять. Она изменяется в реальном времени – как только вы её подправляете, страница на экране обновляется, отражая изменения.
Структура документа
Можно представить HTML как набор вложенных коробок. Теги включают в себя теги, которые в свою очередь включают теги, или текст.
Структура данных, использующаяся браузером для представления документа, отражает его форму. Для каждой коробки есть объект, с которым мы можем взаимодействовать и узнавать про него разные данные – какой тег он представляет, какие коробки и текст содержит. Это представление называется Document Object Model (объектная модель документа), или сокращённо DOM. Мы можем получить доступ к этим объектам через глобальную переменную document. Её свойство documentElement ссылается на объект, представляющий тег . Он также предоставляет свойства head и body, в которых содержатся объекты для соответствующих элементов.
Деревья
Каждый узел может ссылаться на другие узлы, у каждого из ответвлений может быть своё ответвление. Эта структура – типичный пример вложенных структур, где элементы содержат подэлементы, похожие на них самих.
У типичного дерева есть разные узлы. Называется структура данных деревом, когда она разветвляется, не имеет циклов (узел не может содержать сам себя), и имеет единственный ярко выраженный «корень». В случае DOM в качестве корня выступает document.documentElement.
У каждого узлового объекта DOM есть свойство nodeType, содержащее цифровой код, определяющий тип узла. У обычных элементов он равен 1, что также определено в виде свойства-константы document.ELEMENT_NODE. У текстовых узлов, представляющих отрывки текста, он равен 3 (document.TEXT_NODE). У комментариев - 8 (document.COMMENT_NODE).Узлы DOM содержат много ссылок на соседние.
Согласно DOM-модели, документ является иерархией.Каждый HTML-тег образует отдельный элемент-узел, каждый фрагмент текста - текстовый элемент, и т.п.
Проще говоря, DOM - это представление документа в виде дерева тегов. Это дерево образуется за счет вложенной структуры тегов плюс текстовые фрагменты страницы, каждый из которых образует отдельный узел.
Самый внешний тег -<html>, поэтому дерево начинает расти от него.Внутри <html> находятся два узла: <head> и <body> - они становятся дочерними узлами для <html>
Теги образуютузлы-элементы(element node). Текст представлен текстовыми узлами (text node). И то и другое - равноправные узлы дерева DOM.
Корневым элементом иерархии является html. У него есть два потомка. Первый - head, второй - body. Дерево образуется за счет элементов-узлов - тегов HTML.
HTML
Язык разметки гипертекста HTML (Hyper Text Markup Language) является основой Всемирной паутины. Именно он является основой создания веб-страниц. С помощью HTML осуществляется логическое форматирование документа, и только для этих целей он и может использоваться.
Структура HTML-документа
HTML-документы строятся на основе тегов, которые структурируют документ. Обычно теги бывают парными, т. е. состоят из открывающего и закрывающего тега, хотя бывают и исключения. Имена открывающих тегов заключаются в угловые скобки < … >, а закрывающих помимо этого еще и предваряются знаком слеш </ … >.
HTML-документ обрамляется парными тегами <html> … </html>. Кроме того, для обеспечения корректного отображения документа современный стандарт требует использования одиночного тега <!DOCTYPE>, имеющего следующую структуру:
<!DOCTYPE HTML PUBLIC>
HTML-документы состоят из заголовка и тела документа. Заголовок и тело документа представляются парными тегами <head> … </head> и <body> … </body>, соответственно. Таким образом, каркас HTML-документа будет иметь следующую структуру:
<!DOCTYPEHTMLPUBLIC>
<html>
<head>
СОДЕРЖАНИЕ ЗАГОЛОВКА
</head>
<body>
СОДЕРЖАНИЕ ТЕЛА ДОКУМЕНТА
</body>
</html>
Заголовок включает в себя несколько специализированных тегов, основными из которых являются <title> … </title> и <meta> … </meta>
Тег <title> содержит заголовок документа, который будет выводится в заголовочной части окна браузера. Тег <meta> содержит специальную информацию, такую как тип кодировки:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
а так же список ключевых слов и информацию о содержании сайта:
<meta name="keywords" content="списокключевыхслов">
Первое необходимо для корректной поддержки кодировки, а второе позволяет поисковым машинам производить корректное индексирование страниц (следует заметить, что современные поисковые системы обычно игнорируют ключевые слова, но это не отменяет необходимости использования этого атрибута).
В рассмотренных тегах name="keywords" и content="список ключевых слов" являются атрибутами тегов, которые конкретизируют их. Например, атрибуты могут указывать, что текст, заключенный в данном теге, при отображении должен выравниваться по центру. Атрибуты записываются сразу после имени тега, причем значения атрибутов заключаются в кавычки. Атрибутов у тега может быть несколько, но могут и вовсе отсутствовать.
Таблицы
Таблицы являются одной из основных структур, используемых для структурирования информации в HTML-документах. Кроме того, таблицы часто используются для организации структуры страницы, и хотя сейчас такое использование таблиц признано устаревшем и не рекомендуемым, оно до сих пор применяется многими веб-дизайнерами.
Содержание
Введение
Главное направление совершенствования мобильных телефонов можно определить одним понятием: конвергенция технологий. Мобильные телефоны объединили в себе едва ли не всё, что можно и разумно объединять под корпусом одного устройства.
Основные задачи телефона прошлого - совершать и принимать звонки, писать SMS. Сегодня эти задачи дополнилась работой с интернет - ресурсами, прослушиванием музыки, фотосъемкой, использованием игр и приложений. Мобильный будущего, скорее всего, добавит к списку основных задач просмотр телепрограмм, управление различной техникой, функции контроля и возможно многое другое.
Эксперты обращают внимание потребителей на тот факт, что сейчас на рынке доступно несколько мобильных платформ, стремительную популярность среди которых в последнее время приобретает iOS и Android. Программная платформа Android на мировом рынке смартфонов достигла рекордных 87,5 %. Иными словами, примерно девять из десяти аппаратов используют именно эту ОС.
Что бы ни говорили, а мобильность сегодня - явление глобальное, проникающее во многие сферы нашей жизни. Ныне потребитель ищет не просто мобильный телефон, он внимательно изучает условия, соотнося их с требованиями современного рынка. Именно поэтому можно утверждать, что развитие мобильных технологий будет только ускоряться.
Целью данной работы является разработка приложение для ОС Android, назначением которого будет доступ к расписанию Бурятского государственного университета Пользователями данного приложения будут студенты университета.
Для достижения поставленной цели требуется решить следующие задачи:
1) Изучить архитектуру, инструменты и особенности разработки приложений для ОС Android;
2) Создать макет - прототип будущей программы;
3) Разработать приложение согласно макету;
4) Разработать интерфейс пользователя;
5) Протестировать разработанное приложение.
Практическая значимость данной работы состоит в том, что результат достижения поставленной цели имеет возможность применения в деятельности конкретного учебного заведения.
AndroidStudio — это интегрированная среда разработки (IDE) для работы с платформой Android.
AndroidStudio, основанная на программном обеспечении IntelliJ IDEA от компании JetBrains, официальное средство разработки Android приложений. Данная среда разработки доступна для Windows, OS X и Linux.
ГлаваI
Достоинства и недостатки операционной системы Андроид
Однойсболееизвестныхоператорныхконцепцийвподвижномторгев настоящее времясчитаетсяAndroid —мобильная операционнаясистемасГугл. К сожалению,еёглобальноепродвижениеникак несоздаетрезультатбезупречным. УДроидатакжеимеетсясобственные преимуществаи.
Достоинства:
Разнообразие игр и приложений. Их количество вмагазинах уже давно ранее осилило миллионную оценку. Плееры, браузеры, текстовые редакторы и почти все иное – в целом налюбителя.
Android – ОС с не закрытым начальным кодом.
В системе хорошо выполнена многозадачность, функционирует в то же время ряд дополнений.
Переключение между задачами происходит быстро.
Своевременные обновления фирмой Гугл проводится постоянная работа над усовершенствованием перечня возможностей операционной системы.
Недостатки:
Множество опций.
Несовместимость с устаревшими устройствами.