АкушерствоАнатомияАнестезиологияВакцинопрофилактикаВалеологияВетеринарияГигиенаЗаболеванияИммунологияКардиологияНеврологияНефрологияОнкологияОториноларингологияОфтальмологияПаразитологияПедиатрияПервая помощьПсихиатрияПульмонологияРеанимацияРевматологияСтоматологияТерапияТоксикологияТравматологияУрологияФармакологияФармацевтикаФизиотерапияФтизиатрияХирургияЭндокринологияЭпидемиология

МЕТОДИКА РОЗРОБКИ ЗАСТОСОВАНЬ ДЛЯ ОС ANDROID

Прочитайте:
  1. Android Studio — безкоштовне середовище розробки на основі IntelliJ IDEA, що надає інтегровані інструменти для розробки та налагодження додатків для платформи Android.
  2. II.1. Методика проведения сеанса
  3. IV. Методика
  4. А. Методика
  5. А. Методика
  6. Адгезивные системы. Классификация. Состав. Свойства. Методика работы. Современные взгляды на протравливание. Световая аппаратура для полимеризации, правила работы.
  7. Анатомо-физиологические особенности кожи, подкожной клетчатки, лимфатических узлов. Методика обследования. Семиотика.
  8. Анатомо-физиологические особенности органов дыхания у детей. Методика исследования
  9. Анатомо-физиологические особенности органов дыхания у детей. Методика обследования. Семиотика.
  10. Анатомо-физиологические особенности органов кровообращения. Методика обследования. Семиотика.

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

Винтриха, признак (М. A. Wintrich, 1864) – утолщение кожной складки на больной стороне у пациентов с острой эмпиемой плевры за счет отечности кожи и подкожно-жировой клетчатки.

Гарленда, треугольник – зона притупленно-тимпанического звука; располагается на больной стороне между позвоночником и линией Эллис–Дамуазо и соответствует поджатому экссудатом легкому.

Декортикация – удаление фибринозных напластований с висцеральной плевры. Впервые произвел удаление «ложной утолщенной капсулы» с легкого при туберкулезной эмпиеме Делорм (Delorme) в 1892 г. В 1915 г. он назвал эту операцию декортикацией.

Empyema necessitatis – перфорирующая эмпиема.

Клода Бернара–Горнера, синдром – птоз, миоз, энофтальм, гиперемия лица на стороне поражения; возникает при поражении шейного и грудного отделов парасимпатического ствола.

Ленка, феномен (R. Lenk, 1924 г.) – свободное перемещение экссудата в плевральной полости при изменении положения больного.

Ортопноэ – вынужденное полусидячее или сидячее положение больного с упором руками в постель при выраженной одышке.

Per continuitatem – путь развития парапневмонических плевритов вследствие непосредственного перехода экссудативного воспаления с легкого на плевру; наблюдается при недеструктивных плевропневмониях пневмококковой природы.

Пиопневмоторакс – острый гнойный процесс, развивающийся вследствие прорыва гнойника легкого в плевральную полость.

Плеврэктомия – удаление утолщенной париетальной плевры. В 1893 г. Фоулер (Fowler) независимо от Делорма выполнил декортикацию, но при этом удалил при туберкулезной эмпиеме не только панцирь с легкого, но и утолщенную плевру с грудной стенки, средостения и диафрагмы. Эту операцию в последующем назвали плеврэктомией.

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

Раухфуса–Грокко, треугольник – располагается на здоровой стороне и как бы является продолжением тупости, определяемой на пораженной стороне. Катетами этого треугольника являются диафрагма и позвоночник, а гипотенузой – продолжение линии Эллис–Дамуазо. Появление этого треугольника обусловлено в основном смещением средостения на здоровую сторону.

Ривальта, проба – используется для дифференциации экссудатов от транссудатов:цилиндр заполняют водой, подкисленной несколькими каплями уксусной кислоты, и наливают в него 1–2 капли пунктата. Капли экссудата, опускаясь, оставляют за собой мутный след, подобный папиросному дыму; капли транссудата не оставляют следа. Проба выявляет присутствие в экссудате серозомуцина – мукополисахарида, отсутствующего в транссудатах.

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

Эмпиема плевры (гнойный плеврит) – это ограниченное или диффузное воспаление висцеральной и париетальной плевры, протекающее с накоплением гноя в плевральной полости и сопровождающееся признаками гнойной интоксикации и нередко дыхательной недостаточности.

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

Шкода, феномен – появление при перкуссии над линией Эллис–Дамуазо зоны тимпанического звука за счет оттеснения кнаружи и вверх и сдавления легкого при накоплении экссудата.

 

Список рекомендуемой литературы:

1. Гостищев В.К. Инфекции в торакальной хирургии. Руководство для врачей. ─ Москва, 2004. ─ 584 с.

2. Кабанов А.Н., Ситко Л.А. Эмпиема плевры (лечение на этапах пульмонологической службы).- Иркутск: Изд-во Иркут.ун-та, 1985.- 203 с.

3. Колесников И.С., Лыткин М.И., Лесницкий Л.С. Гангрена лёгкого и пиопневмоторакс. - Л.: Медицина, 1983. - 224 с.

4. Куприянов П.А. Гнойные заболевания плевры и легких. – Л.: Медгиз – 1955. – 506 с.

5. Лукомский Г.И. Неспецифические эмпиемы плевры.- М.: Медицина, 1976.- 286 с.

6. Маслов В.И. Лечение эмпием плевры. - Л.: Медицина, 1976. - 192 с.

7. Путов Н.В., Левашев Ю.Н., Коханенко В.В. Пиопневмоторакс. – Кишинев «Штиинца», 1988. – 228 с.

8. Руководство по легочной хирургии/ Под ред. И.С. Колесникова. - Л.: Медицина, 1969. - 680 с.

9. Хирургия лёгких и плевры: Рук-во для врачей/ Под ред. И.С. Колесникова, М.И. Лыткина. - Л.: Медицина, 1988. - 384 с.

 

 

 

МЕТОДИКА РОЗРОБКИ ЗАСТОСОВАНЬ ДЛЯ ОС ANDROID

2.1 Методологія розробки застосовань

 

Розробка мобільних додатків відіграє все більш важливу роль для

організацій, яким необхідно спілкування зі співробітниками або клієнтами за

допомогою вбудованих додатків. На сьогоднішній день існує великий вибір мов програмування для розробки мобільних додатків. Це пов'язано з тим, що для різних мобільних пристроїв доводиться використовувати різні мови програмування, що обумовлене тим, що мобільні пристрої мають різні операційні системи (ОС).

Цільова платформа (або платформи)–iOS, Android, WindowsPhone, BlackBerry-буде мати значний вплив на мову розробки, яка буде використовуватися. Наприклад, можна розробляти рідні додатки для кожної платформи або використовувати сторонній інструмент для оптимізації своїх додатків на різних платформах. Другий підхід може заощадити час і зусилля, хоча це може вплинути на зручність використання. Сучасні мобільні пристрої пропонують широкий спектр варіантів розробки.

Проаналізуємо основні технології, які використовуються для розробки додатківдля мобільних телефонів.

Перша технологія-це Java 2 Micro Edition (J2ME). Це набір специфікацій і технологій, призначених для різних типів портативних пристроїв. Існують два основні напрями: Connected Device Configuration (CDC) і Connected Limited Device Configuration (CLDC). Напрям визначає тип конфігурації центральних бібліотек Java, а так само параметрів віртуальної машини Java (в якій будуть використовуватися додатки).

Пристрої, які використовують технологію CDC будуть більш розвиненими, в якості прикладу можна навести комунікатори. До пристроїв CLDC відносяться звичайні мобільні телефони, які апаратно володіють більш скромними можливостями (ресурсами).

Спеціальні режими дозволяють визначати функціональність конфігурацій для різних типів пристроїв. Режим Mobile Information Device Profile (MIDP) призначений для CLDC портативних пристроїв з можливістю спілкування. Режим MIDP визначає функціональність - роботу користувальницького інтерфейсу, збереження налаштувань, роботу в мережі і модель додатка. CLDC і MIDP закладають основу реалізації J2ME [1]. Java-код інтерпретується безпосередньо самим пристроєм за допомогою так званої Java Virtual Machine. Цей механізм робить можливим вільне розповсюдження Java - додатків, так як вони працюють на всіх пристроях з аналогічною Java -платформою [2].

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

Наступна популярна сьогодні технологія – це технологія Qt. Вона в основному використовується в якості крос - платформного середовища, яке дозволяє використовувати написані з її допомогою додатки на різних пристроях і операційних системах, у тому числі Windows, Mac OS X, Linux, Symbian, Android та інших [3].

Починаючи з версії Qt 4.0 з'явилася можливість програмувати для мобільних пристроїв. Із зростаючою користувальницької базою Qt, зростає і потреба у вбудованих, мобільних додатках і UI - розробників.

Qt є однією з найбільш вдалих бібліотек для C++. Налагодження додатків, розроблених для мобільних пристроїв, відбувається за допомогою емулятора, який міститься в середовищі розробки. Таким чином, можна писати складні програми для мобільних пристроїв з використанням бібліотек C++ і підтримкою платформ.

На час написання даної статті остання версія це - Qt 5 бета. Для роботи Qt на мобільних пристроях необхідна установка певного фреймворку.

Для розробки під Android можна використовувати середовище Eclipse з встановленим плагіном ADT. Розробка ведеться на мові програмування Java. Є можливість налагодження з використанням емулятора вбудованого в ADT або безпосередньо на мобільному пристрої з ОС Android.

Існують різні версії SDK, які використовуються для написання коду для різних версій Android. В даний час велике поширення отримали версії 2.2 і 2.3.Підтримується майже повна зворотна сумісність версій.

Крім розробки на мові Java підтримується можливість більш низькорівневої розробки з використанням Android NDK (Native Development Kit) на мові C/C++.

Методика створення програмних додатків за допомогою юніт – тестів в Андроід. Методика розробки додатків за допомогою модульних тестів полягає, в першу чергу, у створенні тесту, а потім реалізацію відповідного коду програми для виконання функцій, які вимагає створений тест. TestDrivenDesign, методологія створення програмного забезпечення за допомогою тестів досить широко підтримується для розробки мобільних додатків у Android. Стандартні середовища розробки Android додатків має у своєму складі потужну систему створення юніт (модульних) тестів та інфраструктуру для їх запуску і аналізу результатів виконання.

Діаграма станів OMG для методології розробки програмного забезпечення за допомогою юніт – тестів зображено на Рис.2.1.

Рисунок 2.1 – Діаграма станів для методології розробки програмного забезпечення за допомогою юніт - тестів

Наприклад, середовище розробки Eclipse надає користувачам можливість виконувати юніт тести на мобільних пристроях та на емуляторі. Для виконання тестів створюється окремий проект, що зручно дозволяє залишати основний проект без суттєвих змін. З іншого боку, для більш ефективної функціональної перевірки роботи мобільного додатку можливо використовувати скриптиавтоматичного тестування сценаріїв користувача, що дозволяє проводити серію тестів через вплив на мобільний додаток з боку графічного інтерфейсу користувача. Такий підхід надає можливість більш гнучко будувати набір регресійних тестів для верифікації функціональної частини мобільних додатків і обирати найбільш ефективний метод створення тестів: через юніт - тестування, та / або автоматизоване тестування сценаріїв користувача (Рисунок 2.2).

Рисунок 2.2 – Одночасне використання автоматизованого тестування за сценаріями користувача та модульного тестування

Використання систем розповсюдження та моніторингу роботи мобільного додатку. Оскільки фрагментація (різниця у версіях операційної системи) Андроід має великий вплив на стабільну роботу мобільного додатку, перевірка повного функціоналу на цільових операційних системах вимагає великої кількості ресурсів та часу. В такому випадку використовується система моніторингу роботи мобільного додатку з інфраструктури Google. Якщо виникає необхідність використання мобільного додатку до публікації в системі GooglePlay, збір інформації про можливі помилки в роботі мобільного додатку на етапі тестування можливо використовувати системи розповсюдження та моніторингу мобільних додатків, таких як TestFlight [5], BetaFamily[6], систему Бета - тестування та поетапного впровадження від Google [7] з можливістю вибору тестувальної групи користувачів. Серед систем автоматичного звіту про помилки в роботі програми на етапі тестування можна виділити TestFlightSDK, Acra [8] – вони дозволяють отримувати стек помилок під час збою програми до розміщення мобільного додатку у GooglePlay

 

2.2 Інструментарій

 

Платформа легко пристосовується для використання VGA, бібліотек двовимірної і тривимірної графіки, розроблених на основі OpenGL ES 1.0-3.1 специфікації, традиційних інструментаріїв для смартфонів.

Програми для Android є програмами в нестандартному байт-коді для віртуальної машини Dalvik.

Google пропонує для вільного завантаження інструментарій для розробки (Software Development Kit), який призначений для x86-машин під операційними системами Linux, Mac OS X (10.4.8 або вище), Windows XP, Windows Vista та Windows 7. Для розробки потрібен Java Development Kit 5 або новіший.

Розробку додатків для Android можна вести мовою Java (не нижче Java 1.5). Існує плагін для Eclipse — «Android Development Tools» (ADT), призначений для Eclipse версій 3.3-3.7. Для IntelliJ IDEA також існує плагін, який полегшує розробку Android-додатків. Для середовища розробки NetBeans розроблено плагін, який починаючи з версії Netbeans 7.0 перестав бути експериментальним, проте поки не є офіційним. Крім того існує Motodev Studio for Android, що являє собою комплексне середовище розробки, засноване на базі Eclipse і дозволяє працювати безпосередньо з Google SDK.

Крім того в 2009 році на додаток до ADT був опублікований Android Native Development Kit (NDK), пакет інструментаріїв і бібліотек дозволяє вести розробку додатків на мові С/С++. NDK рекомендується використовувати для розробки ділянок коду, критичних до швидкості.

Доступні бібліотеки:

· Bionic (Бібліотека стандартних функцій, несумісна з libc);

· libc (стандартна системна бібліотека мови Сі);

· мультимедійні бібліотеки (на базі PacketVideo OpenCORE; підтримують такі формати, як MPEG-4, H.264, MP3, AAC, AMR, JPEG та PNG);

· SGL (рушій двовимірної графіки);

· OpenGL ES 1.0 (рушій тривимірної графіки);

· Surface Manager (забезпечує для додатків доступ до 2D/3D);

· WebKit (готовий рушій для Web-браузера; обробляє HTML, JavaScript);

· FreeType (рушій обробки шрифтів);

· SQLite (проста система керування базами даних, доступна для всіх застосувань);

· SSL (протокол, що забезпечує безпечну передачу даних по мережі).

В порівнянні із звичайними додатками Linux, додатки Android підкоряються додатковим правилам:

· Content Providers — обмін даними між додатками;

· Resource Manager — доступ до таких ресурсів, як файли XML, PNG, JPEG;

· Notification Manager — доступ до рядка стану;

· Activity Manager — управління активними додатками.

Для Android був розроблений формат інсталяційних пакетів.apk.

По-перше, необхідно завантажити потрібні інструменти для розробки програмного забезпечення. Для цього необхідно звернутися до розділу для розробників програмного забезпечення на офіційному сайті ОС Android – http://developer.android.com/index.html. В цьому розділі можна завантажити все необхідне для розробки програмного забезпечення, а також знайти інструкцію з установки, інструкцію зі створення першої програми та довідку з пакетів та бібліотек програм. Після завантаження необхідно установити на комп’ютер усі необхідні засоби для розробки програмного забезпечення: установити Java Platform (JDK) останньої версії, Android SDK, в якому є емулятор платформи Android та необхідно встановити середовище для розробки програмного забезпечення Eclipse з встановленим плагіном Android Development Toolkit (ADT). Після виконання всіх наведених дій можна розпочинати розробку програмного забезпечення для ОС Android.

Рисунок 2.3 – Процес роботи класу Activity

Так, у процесі роботи класу Activity (рис.2.3), спочатку створюється об’єкт класу Activity, потім він запускається, відпрацьовує та знищується, а користувач смартфона переходить до нового об’єкта. При проектуванні та розробці програмного забезпечення має відзначатися його швидкість та ефективність роботи. Дуже важливо постійно приділяти увагу оптимізації програмного забезпечення на всіх етапах його розробки. Для цього потрібно вимірювати час виконання елементів програмного коду, аналізувати хід роботи програмного забезпечення, виділяти обмежені ділянки програмного коду, слідкувати за виділенням пам’яті та часом життя об’єктів. Особливості створення WEB додатків та адаптація WEB сайтів для мобільних пристроїв. Користувачі смартфонів не завжди позитивно відносяться для встановлення великої кількості програмних продуктів на свій смартфон. Якщо завдання має одноразовий характер (наприклад покупка товару в Інтернет-магазині), набагато ефективніше буде адаптувати або створити web-сайт, який дозволив би без особливих труднощів виконати усі необхідні дії у вікні браузера смартфона. Зважаючи на особливості роботи мобільних пристроїв, такі як: невелика роздільна здатність екрана (зазвичай не більше 800х480 точок), відносно повільний мобільний Інтернет в Україні та обмежені за потужністю процесори (порівняно зі стаціонарними ПК), програмування web-сайту для смартфонів має ряд певних особливостей. Так обсяг трафіку для сторінок сайту потрібно зменшувати на стільки, наскільки це можливо, всі можливі математичні операції виконувати на сервері, використовувати динамічну структуру HTML, використовувати мінімум javascript для складних візуальних ефектів, не використовувати Flash, використовувати кеш, де це можливо.

Перед тем, как приступить к созданию Android-приложений, необходимо выбрать подходящий инструментарий разработки.

Как правило, разработка Android-приложений осуществляется на языке Java. Поэтому, в первую очередь, необходимо установить Java Development Kit (JDK). Но для начала следует разобраться, что представляет из себя Java.

Java – это объектно-ориентированный язык программирования. Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java, которая обрабатывает байтовый код и передает инструкции оборудованию как интерпретатор. Достоинство подобного способа выполнения программ заключается в полной независимости байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание. Следует заметить, что фактически, большинство архитектурных решений, принятых при создании Java, было продиктовано желанием предоставить синтаксис, схожий с С/C++. В Java используются практически идентичные соглашения для объявления переменных, передачи параметров и операторов. Поэтому те, кто уже имеет опыт программирования на C/C++, смогут быстро освоиться и начать писать Java-приложения.

JDK – это бесплатно распространяемый комплект разработчика приложений на языке Java, включающий в себя компилятор Java, стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java Runtime Environment (JRE). В состав JDK не входит интегрированная среда разработки (Integrated Development Environment). Поэтому после того, как будет установлен JDK, следует установить IDE.

Существует несколько популярных сред разработки, но в данном курсе мы остановим свой выбор на Eclipse IDE и соответствующем для нее плагине Android Development Tools (ADT).

Android Software Development Kit (SDK) содержит множество инструментов и утилит для создания и тестирования приложений. Например, с помощью SDK Manager можно установить Android API любой версии (Рис. 1.1), а также проверить репозиторий на наличие доступных, но еще не установленных пакетов и архивов.


Рис. 1.1. Окно SDK Manager, в котором разработчику предоставляется возможность выбрать версии Android API для установки

Android Native Development Kit (NDK) позволяет осуществлять разработку Android-приложений на языке C/C++. Зачем это может потребоваться? Есть несколько причин. Например, необходимость использовать код, который уже написан для нативной платформы, или ускорение выполнения критических кусков кода.

 

2.3 Особливості функціонування застосовань на базі ОС Android

 

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

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

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

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

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

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

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

Обратим внимание на организацию исполнения приложений в ОС Android. Как уже было отмечено приложения под Android разрабатываются на языке программирования Java, компилируется в файл с расширением.apk, после этот файл используется для установки приложения на устройства, работающие под управлением Android. После установки каждое Android приложение "живет" в своей собственной безопасной "песочнице", рассмотрим, как это выглядит:

  • операционная система Android является многопользовательской ОС, в которой каждое приложение рассматривается как отдельный пользователь;
  • по умолчанию, система назначает каждому приложению уникальный пользовательский ID, который используется только системой и неизвестен приложению;
  • система устанавливает права доступа ко всем файлам приложения следующим образом: доступ к элементам приложения имеет только пользователь с соответствующим ID;
  • каждому приложению соответствует отдельный Linux процесс, который запускается, как только это необходимо хотя бы одному компоненту приложения, процесс прекращает работу, когда ни один компонент приложения не использует его или же системе требуется освободить память для других (возможно, более важных) приложений;
  • каждому процессу соответствует отдельный экземпляр виртуальной машины Dalvik, в связи с этим код приложения исполняется изолировано от других приложений.

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

Однако, в случае необходимости приложения могут получить доступ к данным других приложений и системным сервисам (услугам). В случае, когда двум приложениям необходимо иметь доступ к файлам друг друга, им присваивается один и тот же пользовательский ID. Для экономии системных ресурсов такие приложения запускаются в одном Linux процессе и делят между собой один и тот же экземпляр виртуальной машины, в этом случае приложения также должны быть подписаны одним сертификатом. В случае же, когда приложению требуется доступ к системным данным, например, контактам, SMS сообщениям, картам памяти, камере, Bluetooth и т. д., пользователю необходимо дать приложению такие полномочия во время установки его на устройство.

Архитектура Android приложений основана на идее многократного использования компонентов, которые являются основными строительными блоками. Каждый компонент является отдельной сущностью и помогает определить общее поведение приложения.

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

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

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

Активности (Activities). Активность - это видимая часть приложения (экран, окно, форма), отвечает за отображение графического интерфейса пользователя. При этом приложение может иметь несколько активностей, например, в приложении, предназначенном для работы с электронной почтой, одна активность может использоваться для отображения списка новых писем, другая активность - для написания, и еще одна - для чтения писем. Несмотря на то, что для пользователя приложение представляется единым целым, все активности приложения не зависят друг от друга. В связи с этим любая из этих активностей может быть запущена из другого приложения, имеющего доступ к активностям данного приложения. Например, приложение камеры может запустить активность, создающую новые письма, чтобы отправить только что сделанную фотографию адресату, указанному пользователем.

Сервисы (Services). Сервис - компонент, который работает в фоновом режиме, выполняет длительные по времени операции или работу для удаленных процессов. Сервис не предоставляет пользовательского интерфейса. Например, сервис может проигрывать музыку в фоновом режиме, пока пользователь использует другое приложение, может загружать данные из сети, не блокируя взаимодействие пользователя с активностью. Сервис может быть запущен другим компонентом и после этого работать самостоятельно, а может остаться связанным с этим компонентом и взаимодействовать с ним.

Контент-провайдеры (Content providers). Контент-провайдер управляет распределенным множеством данных приложения. Данные могут храниться в файловой системе, в базе данных SQLite, в сети, в любом другом доступном для приложения месте. Контент-провайдер позволяет другим приложениям при наличии у них соответствующих прав делать запросы или даже менять данные. Например, в системе Android есть контент-провайдер, который управляет информацией о контактах пользователя. В связи с этим, любое приложение с соответствующими правами может сделать запрос на чтение и запись информации какого-либо контакта. Контент-провайдер может быть также полезен для чтения и записи приватных данных приложения, не предназначенных для доступа извне.

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

Все рассмотренные компоненты являются наследниками классов, определенных в Android SDK.


Рис. 3.1. Иерархия классов Android SDK

На рис. 3.1 показана иерархия основных классов Android SDK, с которыми обычно имеет дело разработчик. На самом деле классов намного больше, желтым цветом выделены классы, с которыми разработчик работает непосредственно, наследует от них свои классы. Остальные классы не менее важны, но они реже используются напрямую. Для начала рассмотрим классы Intent и View.

Класс View является основным строительным блоком для компонентов пользовательского интерфейса (UI), он определяет прямоугольную область экрана и отвечает за прорисовку и обработку событий. Является базовым классом для виджетов (GUI widgets), которые используются для создания интерактивных компонентов пользовательского интерфейса: кнопок, текстовых полей и т. д. А также является базовым классом для класса ViewGroup, который является невидимым контейнером для других контейнеров и виджетов, определяет свойства расположения компонентов пользовательского интерфейса. Интерфейс Android-приложения представляет собой иерархию UI компонентов (см. рис. 3.2), можно описать эту иерархию программно, но более простым и эффективным способом задать расположение элементов интерфейса является XML файл, который предоставляет удобную для восприятия структуру компоновки (layout file). Во время исполнения XML файл автоматически превращается в дерево соответствующих объектов.


Рис. 3.2. Иерархия компонентов, определяющая компоновку интерфейса пользователя

Объекты-экземпляры класса Intent используются для передачи сообщений между основными компонентами приложений. Известно, что три из четырех основных компонентов: активности, сервисы и приемники широковещательных сообщений, могут быть активированы с помощью сообщений, которые называются намерениями. Такие сообщения являются инструментом позднего связывания компонентов одного или нескольких приложений. Экземпляр класса Intent представляет собой структуру данных, содержащую описание операции, которая должна быть выполнена, и обычно используется для запуска активности или сервиса. В случае с приемниками широковещательных сообщений объект Intent содержит описание события, которое произошло или было объявлено.

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

  • Чтобы запустить активность или вызвать у работающей активности новое действие, необходимо передать объект-намерение в метод Context.startActivity() или Activity.startActivityForResult().
  • Чтобы запустить сервис или доставить новые инструкции работающему сервису, необходимо передать объект-намерение в метод Context.startService(). Также объект-намерение может быть передан в метод Context.bindService(), чтобы связать между собой вызывающий компонент и сервис.
  • Чтобы доставить объект-намерение всем заинтересованным приемникам широковещательных сообщений, необходимо передать его в любой из широковещательных методов: Context.sendOrderedBroadcast(), Context.sendStickyBroadcast(), Context.sendBroadcast().

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


Рис. 3.3. Передача намерений (Intent)

На рис. 3.3 можно увидеть как происходит передача намерений (Intent), в данном случае одна активность запускает другую. [6] Активность А создает намерение (Intent) с описанием действия и передает его в метод startActivity(). [7] Система Android проверяет все приложения на совпадение с намерением, когда совпадение найдено, [8] система запускает соответствующую активность, для чего вызывает метод onCreate() и передает в него объект-намерение Intent.

 

2.4 Висновки

 

Сучасні мобільні додатки для платформи Android вимагають застосування ефективних методологій розробки програмного забезпечення, таких як TestDrivenDesign, широкого використання шаблонів програмування (MVC), організації процесів тестування за допомогою модульних тестів, проводити тестування функціоналу мобільного додатку за допомогою скриптів автоматизованого тестування, чітко організовувати збір інформації про помилки роботи додатків, проводити поетапне впровадження мобільного додатку до фаз тестування і використання. У подальшому описані методи та засоби створення мобільних додатків будуть інтегруватися в середовище розробки IDE, таких як Eclipse, AndroidStudio та інші.

 

 


Дата добавления: 2015-01-18 | Просмотры: 1445 | Нарушение авторских прав



1 | 2 |



При использовании материала ссылка на сайт medlec.org обязательна! (0.017 сек.)