1 Технологии стандарта ieee 802


Актуальность использования стандарта 802.11 WI-FI



страница4/6
Дата05.11.2016
Размер2.59 Mb.
Просмотров2123
Скачиваний1
1   2   3   4   5   6

1.6 Актуальность использования стандарта 802.11 WI-FI


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

В домашних и корпоративных сетях используются точки доступа стандартов 802.11b/g/n, при работе в частотном диапазоне 2,4 ГГц, однако корпоративные сети могут использовать и 802.11ас/n в диапазоне 5 ГГц.

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

2 Средства реализации проекта


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

В настоящее время разработано три наиболее распространённые конкурирующие между собой мобильные операционные системы: Android, IoS, WindowsMobile. Самой распространённой системой среди них является система Android, что обуславливает выбор её, как операционной системы, под которую будет программироваться мобильное приложение.

В настоящее время изобретено и разработано множество средств для реализации программного обеспечения для мобильных платформ. Самые известные среды для разработки приложений к операционной системе Android: NetBeans, Eclipse, AndroidStudio. Эти платформы используют язык Java, с некоторыми особенностями сред программирования, в которых он применяется. При всей своей индивидуальности и уникальности язык Java унаследовал семантику языков C/C#, которые нельзя не упомянуть в данной работе. Для тестирования приложения может быть использован эмулятор мобильного устройства, который есть в каждой из сред разработки приложений, однако, существенные недостатки этих эмуляторов дают повод использовать отдельные эмуляторы, не установленные в среду разработки. Таким эмулятором мобильной платформы является Genymotion.

Для разработки приложения выбрана среда разработки AndroidStudio, так как она написана специально для разработки мобильных приложений под систему Android, имеющая множество функций для разработки, удобный интерфейс и удобное дерево папок проекта, в котором каждая папка и каждый файл имеет своё название, соответствующее его содержанию, например файл colors.xml содержит в себе информацию о цвете полей экрана на различных страницах приложения, текстов и фонов. Также среда разработки имеет встроенные эмуляторы мобильных платформ, однако, в виду недостатков этих эмуляторов, в качестве основного эмулятора был выбран Genymotion.

Эмулятор мобильного приложения Genymotion имеет множество преимуществ перед стандартными эмуляторами сред разработки Android:


  1. Требования к объёму оперативной памяти ниже, что существенно влияет на быстродействие персонального компьютера, особенно если ресурсы компьютера ограничены;

  2. Возможность использования различных типов мобильных платформ: смартфонов, планшетов, телевизоров.

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

  4. Бесплатное использование эмулятора, бесплатная лицензия и широкий набор функций.

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

Выбранная среда разработки использует язык Java и C/C#, так как данные языки являются универсальными и наиболее используемыми в мире, на них разработано большинство приложений.


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

2.1.1 Операционная система Android


Операционная система Android - одна из популярнейших платформ на мобильные телефоны, основанная на операционной системе Linux – операционной системе с открытым кодом. Суть таких систем в том, что весь код виден обычным пользователям и может быть редактирован, исправлен, модернизирован при должных навыках этих пользователей. Система абсолютно бесплатна и даёт возможность полноценной работы в ней сразу же после загрузки на персональный компьютер. Ядро системы Линукс( linux) портировано на многие устройства: роутеры, приставки, компьютеры, что позволяет широко использовать функциональность данной системы и открытого кода к ней.

Операционная система Android занимает порядка 80% рынка смартфонов.

Историческая справка: в 2005 году компания Google купила компанию AndroidInc, а в сентябре 2008 года вышла первая версия операционной системы 1.0 ApplePie вместе с открытым кодом для всех приложений этой системы. Основанная на ядре Linux 2.6 данная операционная система работала во всех диапазонах связи, поддерживала беспроводное соединение WI-FI, 3Д графику, полную поддержку Java, VGA, GPS, имела свой браузер и множество возможностей для расширения и адаптации системы к мобильным устройствам и повышению уровня комфорта работы с ней за счёт удобного пользовательского интерфейса. Данной операционной системой заинтересовались китайцы, начав выпуск смартфонов Android с учётом специфики «китайских Андроидов». [4]

Кроме смартфонов и планшетов, операционную систему Android устанавливают и на другие устройства. Так, в конце 2009 года появилась в продаже первая фоторамка, работающая на Android. В июне 2011 года итальянская компания BlueSky анонсировала выпуск интеллектуальных наручных часов i’mWatch под управлением ОС Android. В августе 2012 года Nikon представила первую в мире фотокамеру, которая также работает на Android. В серии «Google Nexus» присутствуют не только смартфоны и планшеты, но и медиаплеер Nexus Q, работающий на Android. [5]

Кроме того, энтузиасты портировали Android на ряд известных устройств, среди которых, например, смартфоны на платформе Windows Mobile HTC Touch Dual и HTC TyTN II, на которых Android был запущен в режиме эмуляции. Также было осуществлено полноценное портирование на такие устройства, как интернет-планшеты, работающие на Maemo — Nokia N810 и Nokia N900 (порт под названием Nitdroid), на смартфоны Nokia N9, работающий на платформе MeeGo, и HTC HD2, работающий на операционной системе Windows Mobile, на котором ОС Android можно запускать как с microSD-карты, так и с внутренней NAND-памяти. При этом установленная система имеет полную, ничем особо не ограниченную функциональность. Помимо этого, есть удачный опыт установки Android на некоторые устройства Apple — iPhone, iPodTouch и iPad с помощью специальной программы под названием Openiboot, которая предназначена для запуска на данных устройствах разнообразных ОС, в том числе и Android.

Вышли прошивки с ограниченной функциональностью на устройствах на операционной системе Bada. Компания Koolu не только занялась портированием Android на Neo Free Runner, но и строила свой бизнес на продаже этих смартфонов с предустановленной мобильной платформой от Google. Первый официальный и общедоступный бета-релиз порта Android на Neo Free Runner от Koolu состоялся в декабре 2008 года.[5]

Приложения под операционную систему Android являются программами в нестандартном байт-коде для виртуальной машины Dalvik, для них был разработан формат установочных пакетов .APK. [6] Для работы над приложениями доступно множество библиотек: Bionic (библиотека стандартных функций, несовместимая с glibc); мультимедийные библиотеки на базе Packet Video Open CORE (поддерживают такие форматы, как MPEG-4, H.264, MP3, AAC, AMR, JPEG и PNG); SGL (движок двухмерной графики); OpenGL ES 1.0 ES 2.0 (движок трёхмерной графики); SurfaceManager (обеспечивает для приложений доступ к 2D/3D); WebKit (готовый движок для веб-браузера; обрабатывает HTML, JavaScript); FreeType (движок обработки шрифтов); SQLite (легковесная СУБД, доступная для всех приложений); SSL (протокол, обеспечивающий безопасную передачу данных по сети). По сравнению с обычными приложениями Linux приложения Android подчиняются дополнительным правилам: Content Providers — обмен данными между приложениями; Resource Manager — доступ к таким ресурсам, как файлы XML, PNG, JPEG; Notification Manager — доступ к строке состояния; ActivityManager — управление активными приложениями.

Существует сообщество энтузиастов, разрабатывающее открытые варианты прошивок Android — Cyanogen Mod, MIUI, AOKP (Android Open Kang Project) и другие.[6]

Модифицированные версии Android создаются для дополнения операционной системы новыми настройками, опциями, функциями; удаления из Android-устройства сервисов Google для исключения возможности передачи идентификационной информации на серверы компании, например, информацию о перемещении пользователя в реальном времени, что привело к судебному разбирательству; более оперативного и частого (по сравнению с производителями самих аппаратов) предоставления новых версий Android. Для перепрошивки Android-устройства необходим root-доступ.

Кодовое имя каждой версии операционной системы Android, начиная с версии 1.5, представляет собой название какого-либо десерта. Первые буквы наименований в порядке версий соответствуют буквам латинского алфавита: 1.5 Cupcake («кекс»), 1.6 Donut («пончик»), 2.0/2.1 Eclair («эклер» или «глазурь»), 2.2 Froyo (сокращение от «замороженный йогурт»), 2.3 Gingerbread («имбирный пряник»), 3.0 Honeycomb («медовые соты»), 4.0 IceCreamSandwich («брикет мороженого»), 4.1/4.2/4.3 JellyBean («желейная конфета»), 4.4 KitKat (в честь одноимённого бренда шоколадных батончиков), 5.0 Lollipop («леденец на палочке»), 6.0Мarshmallow(«зефир») .[6]

29 сентября 2015 года СЕО Google Сундар Пичаи отметил, что число пользователей устройств на базе Android превысило 1.4 млрд.

Операционная система Android постоянно развивается и расширяет свои возможности, что делает её главным конкурентом Apple. Некоторые эксперты заявляют, что будущее будет именно за Android системами.


2.1.2 Языки программирования С/С#


Язык Си создан в конце 70х годов Кеном Томпсоном и Деннисом Ритчи при разработке операционной системы UNDC. Первоначально был написан компилятор – программа, обрабатывающая код на языке программирования, находящая и/или исправляющая ошибки в коде. Данный компилятор был использован для компиляции других разделов языка С. [7]

Распространение исходного кода сделало операционную систему UNIX уникальной; программист мог изменить операционную систему, а исходный код мог быть перенесен с одной аппаратной платформы на другую. Сегодня стандарт POSIX определяет стандартный набор системных вызовов UNIX, доступных вС, которые должны быть реализованы в версиях UNIX, являющихся POSIX-совместимыми. Сбыл третьим языком, который разработали Томсон и Ритчи в процессе создания UNIX; первыми двумя были, разумеется, А и В.

По сравнению с более ранним языком — BCPL, Сбыл улучшен путем добавления типов данных определенной длины. Например, тип данных int мог применяться для создания переменной с определенным числом битов (обычно 16), в то время как тип данных long мог использоваться для создания целой переменной с большим числом битов (обычно 32). В отличие от других языков высокого уровня, Смог работать с адресами памяти напрямую с помощью указателей и ссылок.[8]

Язык С является структурным языком программирования, в отличие от современных объектно-ориентированных языков, в нём программист мыслит функциями и процедурами для различных действий. ВС можно определить собственные абстрактные типы данных, используя ключевое слово struct. Аналогично можно описывать собственные целые типы (перечисления) и давать другие названия существующим типам данных при помощи ключевого слова typedef. В этом смыслеСявляется структурным языком с зародышами объектно-ориентированного программирования. В 1983г. ANSI (Американский Национальный Комитет Стандартов) сформировал технический комитет X3J11 для создания стандарта языка C (чтобы "обеспечить недвусмысленное и машинно-независимое определение языка"). В 1989 стандарт был утвержден. ANSI скооперировался с ISO (Международной Организацией Стандартов), чтобы стандартизовать C в международном масштабе; совместный стандарт был опубликован в 1990 году и назван ANSI/ISO 9899:1990. Этот стандарт совершенствуется до сих пор и поддерживается большинством фирм разработчиков компиляторов.



Бьерн Страуструп высвободил объектно-ориентированный потенциал С путем перенесения возможностей классов Simula 67 в С. Первоначально новый язык носил имя "Сс классами" и только потом стал называться C++. Язык C++ достиг популярности, будучи разработанным в Bell Labs, позже он был перенесен в другие индустрии и корпорации. Сегодня это один из наиболее популярных языков программирования в мире. C++ наследует как хорошие, так и плохие стороныС .[7]

В языке С++ полностью поддерживаются принципы объектно-ориентированного программирования, включая три кита, на которых оно стоит: инкапсуляцию, наследование и полиморфизм. Инкапсуляция в С++ поддерживается посредством создания нестандартных (пользовательских) типов данных, называемых классами. Язык С++ поддерживает наследование. Это значит, что можно объявить новый тип данных (класс), который является расширением существующего.

Хотя язык программирования С++ справедливо называют продолжением С и любая работоспособная программа на языке С будет поддерживаться компилятором С++, при переходе от С к С++ был сделан весьма существенный скачок. Язык С++ выигрывал от своего родства с языком С в течение многих лет, поскольку многие программисты обнаружили, что для того, чтобы в полной мере воспользоваться преимуществами языка С++, им нужно отказаться от некоторых своих прежних знаний и приобрести новые, а именно: изучить новый способ концептуальности и решения проблем программирования. Перед тем как начинать осваиватьС++,Страуструп и большинство других программистов, использующихС++ считают изучение языка С необязательным. [8]

Язык программирования C++ в настоящее время считается господствующим языком, используемым для разработки коммерческих продуктов, около 90% компьютерных игр пишутся на С++ с применением DirectX.

DirectX – набор API, разработанных для решения различных зада программирования под операционную систему MicrosoftWindows. Используется для программирования и поддержки компьютерных игр.

При всех своих недостатках и преимуществах, С++ остаётся мировым языком программирования для 90% программистов за счёт своей удобности и простоты. На основе этого языка созданы более поздние версии языков программирования, такие как Python, язык D, семантику этого языка унаследовал Java.[9]

2.1.3 Язык разработки Java


С момента представления в 1995 г. Java-платформы как единого целого мира, Java прошел радикальный эволюционный путь от концепции “апплеты повсюду”, которую исповедовали первые идеологи и приверженцы. Вместо этого мир Java развился до Swing, сконцентрировался вокруг сервлетов, направил движение к J2EE, добавил возможности абстрактного программирования и стал более динамичным, а затем и более функциональным, и продолжает развиваться во множестве интересных направлений.

Сегодня создание программного обеспечения представляет собой чрезвычайно тяжелое занятие. Трудности связаны с разнообразием архитектур машин, операционных систем, графических оболочек и т. д. Стремительный рост технологий, связанных с сетью Internet, дополнительно усложняет эту задачу. К сети Internet подключены компьютеры самых разных типов - IBM PC, Macintosh, рабочие станции Sun и другие. Даже в рамках IBM-совместимых компьютеров, существует несколько платформ, например, MS Windows 9x/Me/XP/NT/2000, OS/2, Solaris, различные разновидности операционной системы UNIX с графической оболочкой X windows. Все эти системы образуют единую сеть, которая должна работать как одно целое, обеспечивая при этом высокий уровень безопасности информации. Под влиянием указанных факторов резко возрастает уровень требований, предъявляемый к программному обеспечению.

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

Созданная компанией Sun Microsystems система разработки Java удовлетворяет всем этим требованиям. Java объектно-ориентированный язык, удобный и надёжный в эксплуатации благодаря таким своим достоинствам, как многозадачность, поддержка протоколов Internet и многоплатформенность.

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

Однако, такая универсальность данной технологии рождает недостаток требовательность к ресурсам компьютера. Так как Java-программы не содержат машинного кода и при их запуске включается в работу система времени выполнения Java, их производительность заметно ниже, чем у обычных программ, составленных, например, на языке программирования C++. Данный недостаток становится с течением времени всё менее ощутим, в следствии роста вычислительной мощности компьютерных систем.[10]

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

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

Апплеты, которые и обеспечивают этому языку его популярность, представляют собой разновидность приложений Java, которые интерпретируются Виртуальной Машиной Java, встроенной практически во все современные браузеры.

Каждый апплет это небольшая программа, динамически загружаемая по сети с Web сервера при открытии в браузере HTML страницы, в которой имеется ссылка на апплет точно так же, как картинка, звуковой файл или элемент мультипликации.

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

Апплеты позволяют выполнять сложную обработку данных, полученных от сервера Web или введённых пользователем с клавиатуры. Для повышения производительности апплетов в браузерах используется компиляция "на лету"- Just-In-Time compilation (JIT). При первой загрузке аплета его код транслируется в обычную исполнимую программу, которая сохраняется на диске и запускается. В результате общая скорость выполнения аплета Java увеличивается в несколько раз. Из соображений безопасности апплеты (в отличие от обычных приложений Java) не имеют никакого доступа к файловой системе локального компьютера. Все данные для обработки они могут получить только от сервера Web.

Java используется во всём мире: от компьютеров до мобильных телефонов и планшетов, от локальных сетей до сети интернет:


  1. Java используется на 90% корпоративных настольных ПК,

  2. Java используется на 80% настольных ПК в США,

  3. Около 9 млн разработчиков на Java в мире,

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

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

  6. Используется около 5 млн Java Card,

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

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

2.1.4 Среда разработки Android studio


Android Studio — это интегрированная среда разработки (IDE) для работы с платформой Android, анонсированная 16 мая2013 года на конференции Google I/O. IDE находилась в свободном доступе начиная с версии 0.1, опубликованной в мае 2013. Затем она перешла в стадию бета-тестирования, начиная с версии 0.8, которая была выпущена в июне 2014 года. Первая стабильная версия 1.0 была выпущена в декабре 2014 года, тогда же прекратилась поддержка плагина Android Development Tools (ADT) для Eclipse. Android Studio, основанная на программном обеспечении IntelliJ IDEA от компании JetBrains, официальное средство разработки Android приложений. Данная среда разработки доступна для WindowsOS X и Linux.

Новые функции появляются с каждой новой версией AndroidStudio.[9] На данный момент доступны следующие функции:



  1. Расширенный редактор макетов: WYSIWYG, способность работать с UI компонентами при помощи Drag-and-Drop, функция предпросмотра макета на нескольких конфигурациях экрана.

  2. Сборка приложений, основанная на Gradle.

  3. Различные виды сборок и генерация нескольких .apk файлов

  4. Рефакторинг кода

  5. Статический анализатор кода (Lint), позволяющий находить проблемы производительности, несовместимости версий и другое.

  6. Встроенный ProGuard и утилита для подписки приложений.

  7. Шаблоны основных макетов и компонентов Android.

  8. Поддержка разработки приложений для Android Wear и Android TV.

  9. Встроенная поддержка Google Cloud Platform, которая включает в себя интеграцию с сервисами Google Cloud Messaging и App Engine.

  10. Android Studio 2.1 поддерживает Android N Preview SDK, а это значит, что разработчики смогут начать работу по созданию приложения для новой программной платформы.

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

2.1.5 Эмулятор мобильного устройства Genymotion


Genymotion - быстрый эмулятор Android, который включает в себя настроенные образы Android (x86 с аппаратным ускорением OpenGL), идеальный для тестирования приложения. Этот проект вырос из старого AndroidVM, и в сравнении с ним Genymotion имеет новый дизайн плеера, установщик и многое другое.

Цель продукта - заменить эмулятор Android от Google не только разработчикам Android, но и людям, которые делают демонстрации приложений Android.


Genymotion доступен для Linux, Windows и Mac OS X и требует VirtualBox. Код виртуальный машин открыт, но софт, который работает на хосте, бесплатен для использования, но его исходный код закрыт. В будущем Genymotion будет иметь бесплатную версию cо множеством возможностей, но также будут доступны платные версии, в основном для больших компаний, которым нужна совместная работа над Genymotion.

Возможности Genymotion:



  1. Быстрая загрузка и запуск предварительно настроенных образов Android. Список устройств постоянно расширяется.

  2. GPS (с настраиваемыми координатами) и батарея (с настраиваемым уровнем батареи)

  3. Отображение: аппаратное ускорение с OpenGL, режим полноэкранного просмотра

  4. Консоль, которая позволяет вам взаимодействовать с вашей виртуальной машиной, используя командную строку

  5. Поддержка ADB

  6. Эмуляция передней и задней камеры

  7. Функции скринкаста и удаленного управления (в коммерческой версии)
    Плагины к Eclipse и AndroidStudio

  8. Поддерживает Linux, Windows и Mac.

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

  10. Работает на порядок быстрее эмуляторов от Google (не только на процессорах Intel)

  11. Общий буфер обмена виртуального устройства и ПК

  12. Возможность редактирования IMEI/MEID виртуального устройства (в коммерческой версии)

  13. Pixel Perfect - режим отображения, при котором 1 пиксель экрана устройства будут отображаться с использованием только одного пикселя на вашем мониторе (в коммерческой версии)

  14. Factory Reset - полный сброс виртуального устройства (в коммерческой версии)

  15. Дублирование образа в списке виртуальных устройств (в коммерческой версии)

  16. Редактирование количества процессоров (CPU) и количества оперативной памяти (RAM) в настройках виртуального устройства.

  17. Контроль датчиков в коде приложения через GenymotionJava API (в коммерческой версии)

  18. Автоматическое обновление образов для новой версии программы (в коммерческой версии)

  19. Генерирование архива log файлов при обращении в тех поддержку
    Сохранение настроек GPS виджета до следующего запуска (в коммерческой версии)

  20. Исправления ошибок падения эмулятора, добавлена информация в логах.

  21. Эмуляция работы интернета через GPRS, Edge, 3G, 4G и пр.

Эмулятор удобен и надёжен, работает без вылетов и критических ошибок. При сравнительно слабых характеристиках компьютера разработчика и большой нагрузки от среды разработки эмулятор запускается и работает быстро и без сбоев, что и сделало его основным в использовании при тестировании разрабатываемого приложения.



Поделитесь с Вашими друзьями:
1   2   3   4   5   6


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал