Програмна система збору та аналізу статистичних даних про контакти користувача на основі ОС Android

Проблема розробки інтелектуального агента. Вибір і обґрунтування аналогу. Реалізація програмної системи збору та аналізу статистичних даних про контакти користувача. Створення файлів, встановлення додатків Android (APK) з файлів скриптів на мові Python.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 05.10.2012
Размер файла 2,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Міністерство освіти, науки, спорту та молоді України

Національний університет «Львівська політехніка»

Бакалаврська кваліфікаційна робота

На тему

Програмна система збору та аналізу статистичних даних про контакти користувача на основі ОС Android

Виконав: студент гр. КІ-44

Волох Ю.А

Керівник: Кремінь В.Т

Львів 2011р.

Завдання

Створити програмну систему збору та аналізу статистичних даних про контакти користувача на основі ОС Android 2.2.

Вимоги:

- використання телефонної книжки, з кількістю записів до 300.

- Швидкість роботи: не більше 2 сек.

Анотація

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

Вступ

За останні кілька років технічний прогрес розвинувся настільки, що ті функції, якими володіли настільні ПК, стали доступні на екранах кишенькових пристроїв. Часом, мобільний термінал оснащений такою кількістю функцій і можливостей, що його власникові позаздрять навіть власники деяких ноутбуків.

Людські потреби росли паралельно з нарощуваними потужностями виробників, ресурси неохідні для Java-машини вдалось вмістити в кишенькових компютерах, смартфонах.

Сьогодні смартфон є практично у кожного. Це мікро ЕОМ яка завжди з тобою. Ні для кого не буде новиною розміщення у смартфоні Будильника, органайзера та ін. Тобто програм які допомагають людині справлятись з завданнями які виникають перед нею щодня. Деякі аналітики стверджують, що в найближчі 5-10 років персональні комп'ютери і ноутбуки відійдуть в минуле. А комп'ютер буде виглядати як великий монітор, що стоїть на слолі, клавіатура, маніпулятор. Люди будуть приходити в офіс, підключати свій смартфон, і працювати на звичній великій клавіатурі, з великим екраном, а всі операції буде обробляти смартфон.

До речі, в минулому 2010 році кількість проданих смартфонів у США, більша аніж кількість проданих персональних компютерів.

В майбутньому смартфони будуть як засобом звязку, так і пристроями обробки інформації.

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

Армія США останні декілька років прагне використовувати смартфони в умовах війни. Більше того вона вкладає кошти в розвиток гаджетів для смарфона. Вони вважають, що це дозволить їм вирішувати наступні завдання: передавати цифрову інформацію про стан лінії фронту, переглядати відео з камер спостереження, завантажувати інформацію з віддалених з віддалених баз даних. Вони розробляють додаток SoldierEyes, яке перетворює смартфон в навігаційни пристрій. Програма має декілька цікавих можливостей. Наприклад, розрахунок напрямку і відстані до мішені на полі бою або ідентифікація людини через відбиток пальця на смартфоні.

І наступним кроком буде створення Електронного помічника, тобто програми котра буде робити що небуть заміть власника. Ці програми будуть обладнані системами штучного інтелекту, тому власника навіть не обовязково про це повідомляти. У людини зявиться більше вільного часу. А час це найдорогоцінніший ресурс в сучасному світі. Программа Inteligent Personal Assistant - це спроба створити щось подібне.

Інтелектуальний програмний помічник - це програмний агент, який виконує завдання з мінімально специфічними напрямами від користувачів. Він розвивається з концепції "віртуальний особистий помічник", це когнітивний помічник, який вчиться і само організовується. Інтелектуальний програмний помічник поєднує в собі традиційні ізольовані підходи до штучного інтелекту , щоб спробувати створити особистий помічник-програму, яка самопокращується, взаємодіючи з користувачем.

Він використовує інтелектуальні методи і методи дослідження поведінки користувачів, для створення «розумного» комп'ютера. Метою розвитку інтелектуальних помічників програмного забезпечення є набуття неймовірного досвіду, який допоможе людям бути більш ефективним у своєму житті, у вирішенні проблем і завдань.

Віртуальний цифровий помічник (від англ Virtual -. Віртуальний, Digital - цифровий помічник - помічник, скорочено VDA) - веб-сервіс та / або додаток для смартфонів і ПК, фактично виконує роль особистого секретаря для користувача. Вирішує задачі планування графіка, організації і виконання повсякденних справ і контекстного пошуку інформації для людини, потреб конкретного. Основна мета віртуального цифрового помічника - полегшити та оптимізувати діяльність людини, дозволяє віднести його до розряду питально-відповідних систем.

Одним з найважливіших відмінностей від попередніх поколінь планувальників (Personal Digital Assistant - персональний цифровий помічник, скорочено КПК, наприклад, комунікатор) та інформаційних менеджерів є врахування контексту, в якому діє користувач. У першу чергу, його поточного положення в просторі, що тісно пов'язує віртуальних цифрових помічників з геолокаційні сервісами.

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

При цьому він має більш широкі застосування, ніж планувальники минулого покоління. Можливість розширювати функціонал віртуального цифрового помічника, вводячи додаткові можливості.

Популярною ідею таких сервісів зробила публікація в авторитетній Нью-Йорк Таймс від 28 червня 2010 року. Однак ще в 2008 році те ж видання писало про прототипи віртуальних помічників нового покоління. А 3 червня 2010 TechCrunch описав гео-планувальники майбутнього, по одній команді здатні ініціювати декілька паралельних дій, щоб вирішити потрібну задачу. Наприклад, якщо користувач вкаже, що летить у відрядження, така система сама запропонує варіанти броні квитків на літак, замовлення таксі і номери в готелі, виходячи з відомих їй переваг людини.

Зараз деякі компанії і стартапи розробляють сервіси нового покоління, які за функціоналом будуть відповідати формату віртуального цифрового помічника.

Приклади того, що міг би зробити сьогодні такий помічник є: допомога зробити попереднє замовлення у ресторанах , перевірити статус польоту, перевірити у вихідні дні плани заходів.

Такий тип програм також називають "Інтелектуальний програмний агент".

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

Розглядаючи інтелектуальні агенти як сутності в контексті комп'ютерної науки йдуть від старої парадигми використання комп'ютера як інструменту до нової парадигми, в рамках якої комп'ютер розглядається як середовище в якій живуть і розвиваються деякі програмні сутності.

Агент - це система, здатна досягти мети, що привноситься зовнішньою інтелектуальною системою. Кожен програмний агент повинен мати:

1. Мету.

2. Базу знань.

3. Характер - метазнання.

4. Активність - властивість, що дозволяє агенту взаємодіяти з іншими агентами і навколишнім середовищем.

5. Реактивність - реакція на вхідні впливи.

6. Ресурс для досягнення поставленої мети.

Журнал MIT Technology Review поставив проблему створення «Інтелектуального програмного помічника» в якості однієї з 10 нових технологій в 2009 році, на спеціальній доповіді.

Бакалаврська робота складається з: 3 розділів розробки, одного економічного та одного з охороною праці. Нижче подано короткий опис кожного з них.

1. Аналіз задачі розробки програмної системи збору та аналізу статистичних даних про контакти користувача

1.1. Проблема розробки інтелектуального агента

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

Найважливішими проблемами для створення інтелектуальних агентів є:

· розробка стандартної мови спілкування агентів;

· розробка методів ефективної обробки знань, класифікації та розпізнавання;

· розробка “живого“ користувацького інтерфейсу (“природна мова“).

Головною серед цих проблем є розробка стандартів обміну знаннями в процесі спілкування агентів. Зараз існує щонайменше два подібні стандарти в цій галузі: Knowledge Query Manipulation Language та Knowledge Interchange Format, які до цього часу мають масу недоробок. Те саме можна сказати і відносно другої проблеми. Дійсно ефективних методів, що здатні стати базою побудови промислової технології світового масштабу, на сьогодні немає. Відносно останньої проблеми варто підкреслити, що саме проблема створення інтерфейсу, близького до природної мови, зруйнувала проект ESPRIT, який передбачав створення комп'ютера п'ятого покоління до 90-тих років. Проте зрушення в цьому напрямку є.

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

1.2. Програми аналоги

Сьогодні існує ряд уже створених програмних агентів помічників. Найдосконалішими з яких є:

Особистий помічник для iOS - Siri

Siri є особистим помічником для iPhone OS, iOS. Програма використовує обробку природньої мови , щоб відповісти на питання, давати рекомендації, а також виконувати дії з передачі запитів для розширення безлічі веб-сервісів. Ця iPhone програма - перший публічний продукт її творців, що зосереджені на штучному інтелекті додатків.

Siri пристосовується до індивідуальних переваг користувача з плином часу і персоналізує результати, а також виконання завдань, таких як готувати обід, бронювання і резервування столів в ресторані.

Siri працює через Інтернет. Ми говоримо Siri, що ми хочемо зробити, і це відноситься до різноманітних послуг та інформаційних джерел, щоб допомогти виконати наше завдання. Як справжній помічник, VPA є особистим, він використовує інформацію про людину та історію взаємодії з іншими людьми, щоб допомогти вирішити конкретні завдання користувача, і це стає досвідом для Сірі, що покращує роботу Siri. Siri є першим за кількістю споживачів VPA.

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

Віртуальний помічник дає різні відповіді залежно від індивідуальних уподобань та особистих контекстів (місце, час, історія). Інформація, яку ви передали Сірі в одній області (наприклад, фільми) застосовується автоматично до можливостей зростання з інших областей.

Siri є продуктом злиття SRI International's Artificial Intelligence Center, і створеним Darpa проектом CALO, що є напевне найгучнішим проектом штучного інтелекту в історії.

Як приклад роботи сервісу його автори наводять завдання: «Знайти поруч з роботою італійський ресторан з романтичною обстановкою ». Siri використовує технологію голосового пошуку, перетворюючи введене користувачем голосове або текстовеповідомлення в пошуковий запит. Результат видається у вигляді списку закладів з італійською кухнею неподалік від місцязнаходження користувача, у відгуках на які фігурує словосполучення «романтична обстановка».

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

Siri працює з наступними сервісами:

§ По системам OpenTable, Gayot, CitySearch, BooRah, Yelp, YahooLocal, ReserveTravel, Localeze Siri може задавати запити і виконувати певні дії, що стосуються ресторанів та бізнесу.

§ Eventful, StubHub, і LiveKick для запитів за подіями та концертами

§ MovieTickets, RottenTomatoes, New York Times для запитів про фільми та їх огляди.

§ True Knowledge, Bing Answers, і Wolfram Alpha для відповідей на запитання

§ Bing і Google для веб-пошуку

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

Проект CALO

CALO була програмою штучного інтелекту , в якій намагались інтегрувати численні технології AI technologies в когнітивного помічника. ЇЇ розробка почалася в травні 2003 року і проводилась протягом п'яти років, таким чином, закінчившись в 2008 році.

Програма CALO була найамбітним проектом штучного інтелекту в історії США. За фінансової підтримки DARPA, було розпочато розробку Персонального помічника що навчається, за ці п'ять років було залучено разом 300+ дослідників з 25 університетів комерційних дослідницьких інститутів, з ідеєю побудови нової генерації когнітивних помічників, що мають відмінність, навчатись з досвіду, говорити, що робити, пояснювати, що роблять вони (помічники) і рішуче реагувати на несподіванки. Незалежний і некомерційний дослідний інститут SRI International (Каліфорнія, США) відомий як колишній підрозділ Стенфордського університету, що реалізувує комерційні успішні технологічні інновації, такі як комп'ютерна миша, і який розробила прототип мережі Інтернет. SRI International є провідним інтегратором і відповідає за координацію зусиль витрачених на помічника, який може жити і вчитися у своїх користувачів, а потім передати дані системі, яка визначає, наскільки добре помічник навчився робити роботу користувача.

CALO це акронім для "Cognitive Assistant that Learns and Organizes" (Когнітивний помічник що навчається та організовується). Назва була запозичена з латинського слова "calonis", що означає "слуга солдата".

CALO допомагає своїм користувачам з 6ма високорівневими функціями:

1. Організація та встановлення приорітету інформації: Коли користувач працює з електронною поштою, веб-сторінками, файлами CALO використовує машину для навчання алгоритмів щоб побудувати таблицю запитів моделі хто працює з яким проетом, яку роль вони відіграють, наскільки вони є важливими, як документи і результати мають відношення до цього.

2. Підготовка структури інформації: CALO може допомагати користувачу зберігати разом нові документи, такі як PowerPoint презентації, вивчаючи структуру і вміст з попередніх документів, до яких відбувався доступ в минулому.

3. Бути посередником між людьми: CALO аналізує кореспонденцію користувача (електронні листи) вивчає взаємовідносини між людьми та може допомагати у спілкуванні, (наприклад відправити листа, «Зараз я не вдома. Сьогодні в мене важлива зустріч») meeting progresses.

4. Керування завданнями: CALO може автоматизувати ваші рутинні завданні, а може навчитись новим процедурам і завданням, спостерігаючи і взаємодіючи з користувачем.

5. Планування часу користувача: CALO може навчитись ваших уподобань, і допомагати Вам у вашому щільному графіку.

6. Розподіл ресурсів: У рамках функції «Керування завданнями», CALO може навчитись здобувати нові ресурси (електронні сервіси і реальні люди) щоб допомогти отримати роботу.

Проект сприяв активній появі наукових дискусії і публікацій, а основною його метою було зібрати поточні та ініціювати появунових ідей і технологій у галузі створення штучного інтелекту для потреб військових. У рамках програми дослідники з провідних ВНЗ і підрозділів комерційних компаній США висували ідеї і представляли прототипи сервісів, здатних вчитися і розуміти завдання, підлаштовуватися під звички і переваги конкретної людини, планувати за нього розклад, систематизувати інформацію, розставляти пріоритети при зборі даних, самостійно шукати нові джерела інформації.

Офіційно про завершення робіт над проектом CALO булоповідомлено в 2009 році. За даними журналістів, у нього буловкладено $ 150 000 000, і в результаті було отримановіртуальний цифровий помічник для армії США, що вмієрозбирати пошту, складати звіти за змістом електронних листів іформувати графіки зустрічей і засідань.

Реальним результатом програми стала поява комерційної розробки Siri, створеної учасниками проекту CALO.

Веб сервіс Rearden Personal Assistant

Rearden Personal Assistant - веб-сервіс для ПК і мобільних платформ від компанії Rearden Commerce, запущений в 2008 році для корпоративних клієнтів в США і Великобританії. Віртуальний помічник дозволяє співробітникам компаній-клієнтів організувати ділову поїздку і замовити всі супутні послуги. Він об'єднує розрізнену інформацію з сервісів туристичних компаній, аеропортів, орендодавців машин, ресторанів, допомагає розпланувати графік поїздки і власні витрати.

Сервіс автоматично відстежує положення користувача, виконання завдань і вносить зміни до розпису ділових активностей. Наприклад, якщо ваш рейс затримується, сервіс сповістить партнерів в іншому місті про перенесення зустрічі.

Геолокаційний сервіс ePythia

ePythia - це геолокаційні сервіс і менеджер завдань для смартфонів, створений в 2010 році. Розрахований на массового користувача. Дозволяє прив'язати завдання до конкретної точки на карті, а не на часі. Таким чином, сервіс надсилає користувачеві нагадування про завдання, коли той опиняється в певному місці.

Прикладом використання сервісу є завдання «Купити молока». У поточній версії нагадування встановлюється на точку, в якій розташований потрібний продуктовий магазин, і вибирається радіус видалення (від 100 до 1000 метрів), на якому спрацює оповіщення про завдання.

З червня 2010 знаходиться в стадії відкритого бета-тестування. Веб-сервіс, тісно інтегрований з продуктами Google, доступний для мобільних пристроїв на платформах Android, BlackBerry, iPhone, Symbian і Windows Mobile. Проект домігся резонансу в Росії, ставши переможцем стартап-турніру Harvest @ GreenfieldProject, і на Заході, увійшовши в топ-16 конкурсу університетських проектів Global Business Plan 2010 від Draper Fisher Jurvetson і Cisco.

1.3 Частотний аналіз слів у текстових повідомленнях

В розробленій програмі було використано частотний аналіз слів у повідомленях, що базується на частотному словнику. Частотний словник -- словник, у якому кожне слово характеризується певним числом, що вказує на кількість вживань цього слова в обстеженому масиві текстів, тобто на його абсолютну частоту в цих текстах. У багатьох словниках частота кожного слова в обстежених текстах оцінюється статистично: обраховується відносна похибка, коефіцієнт стабільності чи інші статистичні показники.

Історія укладання частотних словників налічує менше століття. За цей порівняно невеликий час такі словники створено майже для всіх індоєвропейських мов, а також для мов інших сімей. Уже видано понад 400 частотних словників, а кількість тих, над якими ведеться робота, значно більша.

Навіть просте спостереження над текстом показує, що слова щодо їх частоти вживаються не однаково: одні повторюються мало не в кожному абзаці, інші -- рідше, деякі -- надзвичайно рідко. Для відображення цієї закономірності мовознавці користуються такими поняттями, як «поширене», «малопоширене», «маловживане», «непоширене», «рідковживане» тощо. Проте ці поняття не можуть дати уявлення про науково _бґрунтовану міру вживаності слів, про сфери їх переважного використання, про істотні відмінності у вживанні слів чи груп слів у стильових різновидах текстів. Розкрити всі ці закономірності функціонування лексики (чи інших одиниць мови) можна лише за допомогою статистичних методів. Саме тому вони набули такого широкого застосування у мовознавчих дослідженнях за останні десятиліття.

Без статистичних обстежень великих масивів текстів, що належать до різних функціональних стилів і жанрів, не можна було б виявити хоча б такі закономірності, як обмеженість реєстру слів у будь-якому тексті чи масиві текстів, закон переваги, за яким невелика кількість мовних одиниць вживається дуже часто, а решта -- з невеликою частотою. Зараз встановлено багато статистичних закономірностей та параметрів, які показують функціонування лексики в різножанрових текстах. Всі вони знайшли практичні застосування, такі, як відбір лексичного мінімуму при вивченні іноземних мов, створення ефективних систем стенографії, атрибуція непідписаних рукописів, створення економних алгоритмів кодування текстів для ЕОМ, а також систем машинного опрацювання текстів -- машинний переклад, інформаційний пошук, автоматичне реферування й анотування літератури. Практичні потреби статистичного обстеження текстів для опрацювання їх на ЕОМ набувають особливо великої ваги в період науково-технічної революції. Тому якщо перші частотні словники створювалися з метою вдосконалення систем стенографії та для відбору лексичного мінімуму, то в наші дні частотні словники створюються в основному для потреб інформаційного пошуку та машинного перекладу.

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

1.4. Використання концепцій соціальної психології для розробки програмної системи

Для розробки програми доцільно спиратись на існуючі концепції соціальної психології, зокрема: теорія поля Курта Левіна та соціометрія Якоба Морено.

Згідно Курта Левіна, людина живе і розвивається в «психологічному полі» оточуючих його предметів. Кожен предмет має для людини свою валентність - свого роду енергетичний заряд, викликає у людини специфічне напруга, яка потребує розрядки.

Поведінка людини ділиться на вольове і польове. Вольове - викликано внутрішніми потребами і мотивами, а польове - впливом зовнішніх об'єктів. Теорія поля пояснює поведінку як явище, що може бути отримане від тотального співіснування фактів. Ці співіснуючі факти виробляють «динамічне поле», яке означає, що стан будь-якої частини поля залежить від стану будь-якої іншої частини цього поля. Поведінка залежить від теперішнього стану поля, а не минулого чи майбутнього.

Поняття «польової поведінки» було введене Левіном для опису сукупності імпульсивних відповідей зовнішні стимули (стимули оточуючого середовища), які характрезуються низьким рівнем випадковості і переважанням орієнтації суб'єкта на ситуативно значимі об'єкти середовища, яке сприймається (на відміну від орієнтації на прийняту ціль діяльності, тобто на таку ціль, досягнення якої пов'язано із задоволенням наявних у індивідума внутрішніх потреб і мотивів). Така поведінка, наприклад, спостерігається у дітей раннього віку.

У теорії поля Левін намагався застосувати топологію для створення геометрії психологічного опису поведінки людини - годологіі.

Згідно Якоба Морено соціометрія - теорія вивчення міжособових відносин[1]. Рідше соціометрією називають методику вивчення внутрішніх групових звязків та ієрархії в маленьких групах осіб.

Тому часто під соціометрією розуміють методи дослідження структури міжособистісних відносин в малій соціальній групі шляхом вивчення виборів, зроблених членами групи по тих чи інших соціометричних критеріях. Одним з основних соціометричних методів є соціометричне опитування, а соціометричним критерієм - запитання соціометричної анкети (тесту), в якій респондентам пропонується обрати одного або декількох членів досліджуваної групи (найчастіше для спільної діяльності в прожективній ситуації). Таким опитуванням є, наприклад, опитування членів виробничої бригади за допомогою анкети, що включає запитання типу “Кого з членів вашої бригади ви залишили б у ній, якби вона формувалася наново?” У відповідь на кожне таке запитання респонденти повинні вказати номери членів бригади з врученого їм разом з анкетою списку.

Соціометричне опитування істотно відрізняється від інших видів соціологічного опитування за характером вихідних даних, способами їхнього представлення, процедурою опитування та методах аналізу зібраної інформації. На відміну від інших видів опитування результатом виміру тут є не характеристика респондента (тобто значення ознаки, виміряної в тому чи іншому типі шкали), а взаємини між респондентами. Якщо в інших видах опитування відповідь усіх респондентів на будь-яке запитання породжує розподілення опитаних за ознакою, що відповідає даному запитанню, то відповіді всіх членів групи на дане соціометричне запитання породжують структуру відносин. Ця відмінність призводить до виникнення спеціальних способів представлення зібраних даних:отримана структура представляється у вигляді спеціального малюнку (соціограми) або таблиці (соціоматриці).

Подальший розвиток соціометричних методів здійснюється насамперед шляхом уточнення інтерпретації результатів, отримуваних з їхньою допомогою (такі роботи проводилися в рамках так званої "стратометричної” концепції малих груп. По-друге, створюються різні модифікації процедури збору даних, що дозволяють розширити клас відносин, досліджуваних за допомогою соціометрії. Зокрема, нові методи дозволяють вивчати не тільки емоційні міжособові відносини, а й інші відносини між членами групи, а способи отримання інформації включають всі основні способи збору даних, що використовуються в соціології (опитування, спостереження, аналіз документів). До таких модифікацій відноситься, наприклад, “рефренометрія”, що дозволяє визначати для кожного респондента тих членів групи, думка яких його особливо цікавить, методика “вибору в дії” (наприклад, при дослідженні школярів молодших класів або дошколят кожній дитині дають декілька листівок і просять подарувати по одній листівці своїм товаришам) тощо. По-третє, розширюється клас об'єктів, відношення яких вивчаються з допомогою соціометричних методів. За їхньою допомогою вивчається, наприклад, структура складних організацій, відносини між родинами в селах та районах міста, мереді цитування в наукових публікаціях, аналіз особливостей п'єс різнивх авторів, де вивчається напруженість відносин героїв п'єси, тощо. Розвиток соціометрії у вказаних напрямках призвів до формування більш широкого її визначення: під соціометричними методами розуміються методи дослідження структури відносин між будь-якими соціальними об'єктвми. З цього визначення витікає і основне обмеження області використання соціометрії: досліджувані соціальні об'єкти (це може бути мала група, підприємство чи організація) являють собою певну систему, вивчення якої зовсім не вичерпується описом структури відносин між її елементами. Зокрема очевидно, що вивчення малих груп, окрім вивчення структури міжособистісних відносин, має включати вивчення групових норм та цінностей, соціально-демографічних та інших характеристик групи, а також зв'язків між різними класами характеристик. Важливим розділом соціометрії є моделювання соціальних процесів.

Соціометрія - у вузькому сенсі - область соціальної психології, пов'язана з вивченням міжособистісних відносин в малих соціальних групах.

Специфічними і особливо ефективними при вивченні малих груп є методи соціометрії. Термін «соціометрія» в перекладі з латини означає вимірювання міжособистісних взаємин у групі. У суспільних науках він постав наприкінці XIX ст. у зв'язку зі спробами застосування математичних методів до вивчення соціальних явищ.

Соціометричний метод опитування -- один із різновидів опитування, який використовують для вивчення внутріколективних зв'язків шляхом виявлення стосунків між членами колективу. Цей метод застосовують для дослідження міжособистісних стосунків і міжгрупових відносин з метою їх поліпшення.

Технічний апарат соціометрії застосовують у різних сферах мікросоціології. Грамотне використання арсеналу соціометричних методів є передумовою для ґрунтовних теоретичних висновків про функціонування і розвиток груп, досягнення значних практичних результатів у комплектуванні колективів, підвищенні ефективності їх діяльності.

Мала група -- реально існуюче утворення, в якому люди об'єднані певною спільною ознакою, спільною діяльністю або живуть а ідентичних умовах, обставинах і певним чином усвідомлюють свою належність до цього утворення. Головною рисою малої групи є відчуття спільності, яке цементує взаємини у групі й відрізняє одну групу від іншої. Оскільки чисельність малої групи обмежена, то суспільні відносини в ній виступають у формі безпосередніх особистих контактів. Вважається, що «нижня» межа чисельності малої групи становить три, а «верхня» -- п'ятнадцять--двадцять осіб.

Соціометричний критерій повинен: а) націлювати суб'єкт на вибір іншого члена групи для спільного вирішення того чи іншого завдання чи відхилення його; б) не допускати обмежень щодо вибору відхилення будь-кого з членів чітко окресленої групи; в) бути зрозумілим усім членам групи, а також цікавим, якщо не всім, то більшості з них; г) переконувати людину в практичній спрямованості опитування.

Соціометричні критерії поділяють на два основні класи: комунікативні і гностичні.

Комунікативні критерії використовують для того, щоб виміряти реальні або уявні стосунки в групі, з'ясувати, як кожний член групи бачить своє безпосереднє оточення. Гностичні критерії призначені для відображення уявлень людини щодо її ролі, позиції в групі, а також для з'ясування того, хто, на її думку, обере її для спільного вирішення певного завдання, хто -- знехтує. Приклад комунікативного критерію: «Кого б ви обрали своїм старостою?» А гностичний варіант звучав би так: «Хто з Вашої групи, на Вашу думку, хотів би обрати Вас старостою?» В обох випадках критерії сформульовані у позитивній формі, тобто орієнтовані на з'ясування вибору. Але існують і заперечні критерії, які фіксують негативне ставлення однієї людини до іншої.

Ще один різновид соціометричних критеріїв -- критерії ранжування. Вони забезпечують можливість для ранжування суб'єктом своїх стосунків з членами групи. Наприклад: «Вкажіть по порядку, з ким із членів Вашого колективу Ви хотіли б створити мале підприємство у першу чергу, у другу чергу, у третю чергу і т.д.?» Соціометрична процедура, за якої респондент обирає відповідно із заданим критерієм стільки осіб, скільки він вважає за необхідне, називається непараметричною. Параметрична процедура передбачає вибір із завчасно заданими кількісними обмеженнями. Наприклад, за сформульованим критерієм пропонують обрати із 8 осіб одного, двох чи трьох. Це знижує вірогідність спонтанних реакцій, непродуманих відповідей.

При соціометричному опитуванні кожному респондентові вручають соціометричну анкету (карточку) і список членів соціометричної групи. Прізвища членів групи кодують, наприклад, номером у списку групи. Соціометрична карточка, як і будь-яка соціологічна анкета, починається із звернення, в якому пояснюють мету опитування, викладають правила заповнення карточки, гарантують анонімність. У кінці після запитань дякують респонденту за співробітництво. У карточці повинно бути 7--8 критеріїв. Результати опитування заносять у соціоматрицю, яка компактно подає первинну інформацію і спрощує математичне опрацювання зібраних даних. Соціоматриця -- це таблиця, у якій в рядках розміщують відповіді кожного із членів групи.

1.5 Алгоритм роботи програми збору та аналізу статистичних даних про контакти користувача

При запуску програми (рис.1.5.1) виводиться головне меню програми де перераховані основні функції програми: рейтинг контактів, статистика слів, графік дзвінків, соціоматриця, де користувачу пропонується зробити вибір. Головне меню предствлене окремим модулем та окремим _рограм. Для кожної з функцій реалізовиний окремий модуль та _рогр. Кожен модуль є окремою _рограммою, що може виконуватись незалежно. Це досягається шляхом створення для кожного модуля своєї власної головної функції. Модуль contacts_stat.py є надбудовою для всіх інших модулів. Він приймає вибір користувача та відповідно імпортує потрібний модуль та запускає головну функцію модуля. Програма contacts_stat є об'єктна орієнтованою програмою, де класи використовуються повторно. Зв'язок між всіма класами представлений у вигляді агрегації, тобто створення екземпляра класу всередині деякого класу.

Якщо користувач обрав рейтинг контактів то програма спочатку отримує контакти з телефонної книги Android через Python API, а потім впорядковує його певним чином. Після цього викликається графічний інтерфейс модуля якому на вхід передаються отримані дані.

Якщо користувач обрав статистику слів то програма спочатку отримує всі повідомлення що містяться на пристрої Android через Python API, а потім проходить через усі повідомлення підраховуючи при цьому частоту зустрічання слів та зберігає ці дані в словнику. Список всіх ключів впорядковується за частотою зустрічання слів. Після цього викликається графічний інтерфейс модуля якому на вхід передаються отримані дані.

Якщо користувач обрав графік дзвінків то програма спочатку отримує контакти з телефонної книги Android через Python API, а потім створюється запит до http://chart.googleapi.com. Результат відображається в бровзері.

Якщо користувач обрав соціоматрицю то програма спочатку отримує контакти з телефонної книги Android через Python API, а потім впорядковує його певним чином. Після цього викликається графічний інтерфейс модуля якому на вхід передаються отримані дані.

Рис. 1.5.1 Алгоритм роботи програми збору та аналізу статистичних даних про контакти користувача

2. Вибір інструментів розробки програмної системи збору та аналізу статистичних даних про контакти

2.1. Вибір мови програмування та середовища

Розробники Android надали можливість створювати додатки для їхньої ОС, через використання Android SDK (Software Development Kit). Як і Android, SDK написаний на мові Java, тому розробка під Android відбувається виключно на мові Java[3]. Проте існує проект, який дозволяє програмувати на багальтьох інших мовах, таких як Python, PHP, Lua, Perl тощо. Він називається SL4A.

У двох словах, SL4A[15] є інфраструктурою для включення взаємодії сценаріїв мов двигунів, які були перенесені на платформу Android з Android API за допомогою віддаленого викликупроцедур (RPC) до сервера, що реалізований у вигляді стандартного додатка Android Java.

Як і Android, SL4A є open source і розповсюджується під Apache License Version 2.0, як і більшість програм Android.

Система SL4A підходить для наступних видів завдань:

1. RAD програмування: З SL4A можна використовувати швидку розробку застосувань (RAD). Ви можете швидко створити прототип додатка для того аби перерити правильність ідеї. Якщо ідея правильна Ви можете створити повноцінну програму під Android

2. Написання тестових скриптів. SL4A, може бути використана для створення тестових сценаріїв для інших програм

3. Створення утиліт: Можна досить легко і швидко написати утиліту , яка робить малу роботу або автоматизує певне завдання. Такі утиліти не вимагають складних дій від користувача. Для них достатньо простого діалогу для взаємодії з користувачем.

SL4A дозволяє взаємодіяти між сценаріями мов двигунів Android і Android API. Як ви побачите пізніше,вона не обмежена лише скриптовими мовами. Будь-яка програма, яка реалізує сумісні на основі JSON RPC8 модулі або набір процедур може потенційно викликати Server SL4A RPC.

Всередині, SL4A використовує JavaScript Object Notation (JSON) формат даних для обміну повідомленнями та даними між SL4A RPC Server та його клієнтами. Цей формат є основою для роботи тому нижче подамо короткий огляд JSON.

Акронім JSON спочатку використав Дуглас Крокфорд. Формат даних JSON описаний в RFC 4627,9

Цитата з специфікації про JSON:

«JavaScript Object Notation (JSON) являє собою легкий, текстовий, незалежний від мови формат обміну даними. Вона булла взята з ECMAScript стандарту мови програмування. JSON визначає малі набір правил форматування для представлення структурованих даних в портативних пристроях. JSON може представляти чотири примітивні типи (рядки, числа, логічні,змінні і нуль) і два структуровані типи (об'єкти та масиви).»

Щоб дати уявлення про цей формат даних навдем приклад JSON об'єкта. (лістинг 2.4.1)

Лістинг 2.4.1 Приклад JSON об'єкта

{

"Image":

{

"Width":

800,

"Height":

600,

"Title":

"View

from

15th

Floor",

"Thumbnail":

{

"Url":

"http://www.example.com/image/481989943",

"Height":

125,

"Width":

"100"

},

"IDs":

[116,

943,

234,

38793]CHAPTER 5: Introducing SL4A: The Scripting 210 Layer for Android

}

}

SL4A надає доступ до Android API функції для своїх клієнтів. Це досягається шляхом впровадження сумісного модуля, який створює запити та відповіді на них до і від сервера RPC, що реалізований у вигляді додатка Android Java. Це дозволяє RPC серверу мати прямий доступ до Android API і він веде себе як віддалений проксі, який інкапсулює і надає обраний Android API.

Мови сценаріїв портуються, через крос-компіляцію, або інакше, для Android платформи в їх чистому вигляді уникаючи будь-яких змін вихідного коду. Це означає, що скриптова мова не має відомостей про платформу Android. Він отримує доступ до Android API за допомогою спеціального модуля зазвичай реалізується на мові сценаріїв, та має доступ до Android API на віддаленому сервері SL4A RPC.(рис.2.1.1).

Рис.2.1.1 Архітектура SL4A

Серед усіх мов які підтримуються SL4A, було обрано Python, через:

- кросплатформовість[6]

Python працює практично на усіх сучасних платформах. Існує досить багато модифікацій[12]. Найбільш популярні - це CPython (під x86), Jython (під Java), IronPython (під .NET), PyS60 (під Symbian)[14].

- код написаний на Python в рази менший за еквівалент на Java[7]

§ Python не використовує окремих лексем для виділення блоку.[9]

§ Python використовує динаміну типізацію.[10]

§ Python використовує спрощений, інтуїтивно зрозумілий, синтаксис.[11]

- гнучкість і швидкість розробки[8]

Швидкість розробки програми на мові Python значно вища аніж на Java[13].

2.2. Встановлення Android SDK

Android SDK - це набір програм необхідних для розробки програм для Android[4]. Містить емулятор, утиліти передачі файлів між емулятором та комп'ютером.

Завантажити Android sdk можна з зображеного на рис. 2.2.1.

Рис.2.2.1 Сайт

Процес завантаження зображений на рис.2.2.2.

Рис.2.2.2 Завантаження Android sdk

1. Стартуєм програму AVD Manager з пакету Android SDK. Як це зробити зображено на рис.2.2.3.

Рис.2.2.3 Запуск AVD Manager

2. Тепер потрібно встановити сам пакет під конкретну платформу. В списку Avaliable Package вибираєм SDK Platform 2.2. (рис.2.2.4)

Рис.2.2.4. AVD Manager: Avaliable Packages

3. Створюєм віртуальний пристрій з ОС Android 2.2 (рис.2.2.5)

Рис.2.2.5 Створення віртуального пристрою

4. Стартуєм віртуальний пристрій. (рис.2.2.6)

Рис.2.2.6 Запуск віртуального пристрою

2.3 Встановлення SL4A

Для запуску програми (рис.2.3.1) наобхідно написнути на посилання в головному меню ОС Android.

Рис. 2.3.1 Запуск SL4A

Після запуску зявиться вікно (рис.2.3.2) зі списком файлів скритів та діями над ними.

Рис.2.3.2 Головне вікно програми

Для перегляду всіх встановлених інтерпретаторів необхідно натиснути кнопку View і вибрати пункт Interpretators (рис.2.3.3)

Рис.2.3.3 SL4A перегляд інтерпретаторів

Перед нами зявився список всіх інтерпретарів встановлених в середовищі(рис.2.3.4). Як бачимо середовище містить лише інтерпретатор командного рядка Linux - Shell.

Рис. 2.3.4 SL4A інтерпретатори: Shell

Інтерпретатор можна запустити клікнувши на ньому (рис.2.3.5.) Як видно з рисунку в інтерпретаторі була введені команди

$echo $PATH

та

$top

Рис.2.3.5 Команди Shell

Це означає що середовище SL4A було успішно встановлене. Проте для написання програм на мові Python необхідно встановити інтерпретатор Python.

З вікна Інтерпретатори (рис.2.3.4) натискаєм кнопку Add. У списку, що зявився вибираєм пункт Python.(рис.2.3.6)

Рис.2.3.6 Додавання Інтерпретатора

Після цього запуститься завантаження APK файлу інтерпретатора Python з сайту SL4A (рис.2.3.7).

Рис.2.3.7 SL4A Додавання інтерпретатора: Python завантажений

Вибираєм файл python_for_android.apk. Після чого зявиться вікно встановлення Python (рис.2.3.8).

Рис.2.3.8 SL4A Додавання інтерпретатора: встановлення Python

Необхідно натиснути на кнопку Install.

Процес встановлення може зайняти певний час. Протягом встановлення буде відображатись вікно встановлення Python for Android (рис.2.3.9).

Рис.2.3.9 SL4A Додавання інтерпретатора: встановлення Python

Якщо інсталяція завершиться успішно то на екрані зявиться вікно з повідомленням Application Installed(рис.2.3.10).

Рис.2.3.10 SL4A Додавання інтерпретатора: Python встановлений

Отже середовище SL4A встановлено, інтерпретатор мови Python встановлено. Що ще? Ще можна встановити файли підтримки до інтерпретатора Python. Для цього необхідно натиснути кнопку Open (рис.2.3.11). Інакше натиснути Done, щоб вийти.

Рис.2.3.11 Додавання інтерпретатора: Встановлення файлів підтримки

Встановлення файлів підтримки проводиться через інтернет тому спочатку буде проводитись завантаження файлів підтримки(рис.2.3.12), а потім встановлення.

Рис.2.3.12 Додавання інтерпретатора: Процес встановлення файлів підтримки

Якщо встановлення пройшло успішно то на екрані повинне зявитись вікно Python for Android (рис.2.3.12). Не наскати кнопку Uninstall.

Рис. 2.3.13 Додавання інтерпретатора: Встановлення файлів підтримки завершене

Повертаємось назад до SL4A список інтерпретаторів. Тепер у списку інтерпретаторів має зявитись ще один пунк - Python -<version> (рис.2.3.14).

Рис.2.3.14 Додавання інтерпретатора: Встановлення інтерпретатора завершене

Встановлення SL4A та Python успішно завершене. Тепер можна запустити Python у відлагоджувальному режимі.

Рис.2.3.15 SL4A. Python діалоговий режим

Для демонстрації взаємодії з Android API наберіть лістинг програми 2.3.1.

Лістинг.2.3.1

import android

andy=android.Android()

andy.makeToast('Hello Practical Android Projects!')

На екрані повинно зявитись повідомлення (рис.2.3.16).

Рис.2.3.16 Результат лістингу 2.3.1

2.4 Створення файлів, встановлення додатків Android (APK) з файлів скриптів на мові Python (*.py)

Середовище SL4A надає доступ до інтерпретора Python. Програми на мові Python представлені у вигляді *.py файлів що містять код програми. Це дуже зручно при розробці та відлагодженню програми, так як це дозволяє зекономити багато часу. Проте рано чи пізно виникає необхідність переносу програми на інший пристрій. Якщо в наявності є лише файл *.py то для переносу на інший пристрій необхідно на нбому, пристрої, встановлювати SL4A та Python, що є дуже незручно. Тому зявляється необхідність в конвертуванні *.py файлу в готовий додаток Android (*.apk)[5].

Для того, щоб це зробити необхідно виконати наступні кроки.

Перш за все необхідно завантажити та встановити Java Development Kit (JDK) з сайту Oracle,

Наступним кроком є завантаження та встановлення Eclipse Helios.

Далі нам необхідно завантажити та встановити Android Software Development Kit (SDK).

При запуску Eclipse створити робочу директорію та встановити ADT Plugin.

В Eclipse Window/Preferenses/Android вказати директорію з Android SDK.

Завантажити та встановити Mercurial

Створити робочу директорію sl4a командою: hg clone

Імпортувати в Eclipse проект директорію sl4a через File/Import/General/Existing Project

Включити ANDROID_SDK в списку Classpath Variable що знаходиться вWindows/Preferences/Java/BuildPathVariables/New.

Натиснути Project/Build Automatically, потім Project/Clean/Clean all Projects/OK.

Далі необхідно додати скрипт в директорію з проектом. Виділіть правою кнопкою миші файл build.xml /Run As/Ant Build. Перейменувати проект на свій смак через Refactor/Rename та /Refresh/Clean/Build the project.

Підєднати телефон до PC Натисніть settings/Connect to PC/Default connection type/Charge only/Done/Home

На телефоні слід натиснути /Applications/Development/USB debugging/OK/

З Eclipse встановити клон SL4A на телефон натисканням ScriptingLayerForAndroid щоб підсвітити, а потім Run/Run/AndroidApplication/OK.

Після встановлення SL4A клікнути на проекті, а потім Run/Run/AndroidApplication/OK.

Подвійний клік на пректі /res/drawable. Замінити Script_logo_48.png на зображення 48x48 що буде логотипом програми.

В файлі strings.xml. змінити Dummy Script на імя програми. Правий клік на екрані, щоб зберегти зміни.

Через Refactor/Rename змінити script.py на your_script_name.py тоді подвійний клік src/com.dummy.fooforandroid/Script.java щоб змінити R.raw.script на R.raw.your_script_name та зберегти зміни.

Подвійний клік src і перейменовуєм Refactor/Rename імя пакету com.dummy.fooforandroid на your.package.name

Через Project/Properties/Android вибрати версію Андроїда та натиснути OK

Подвійний клік на AndroidManifest.xml. Змінюємімя пакету в маніфесті з com.dummy.fooforandroid на your.package.name. Змінюєм minSdkVersion з "8".

Правий клік на your_script_name для відкиття його в текстовому редакторі. Виділяєм скрипт по замовчуванню, замінюєм його своїм власним і зберігаєм. Тоді Clean/Build/Refresh у проекті та запускаєм його. Якщо все пройшло успішно натискаєм File/Export для експорту в apk. Копіюєм apk на телефон та встановлюєм його.

3. Реалізація програмної системи збору та аналізу статистичних даних про контакти

3.1 Загальна структура програми

Загальна структура структура програми представлена на схемі (рис.3.1.1).

Рис.3.1.1 Структура програми

Програма розділена на 5 незалежних модулів. Кожен модуль, окрім contacts_stat, виконує збір та аналіз статистичних даних про контакти або повідомлення виконує специфічних аналіз та відображає результати. Програма є високорівнева. Першим рівнем є Android API на мові Java, що надається через Android SDK. Наступним рівнем є середовище SL4A, що є написане на Java, яка надає API для Python. Саме з цього інтерфейсу отримується функції для роботи з контактами та повідомленнями.

3.2. Діаграма класів

При розробці програми мною також було створено діаграму класів (Рис.3.2.1). Діаграма класів це статичне представлення структури моделі[16]. Вона відображає статичні (декларативні) елементи, такі як: класи, типи даних, їх зміст та відношення. Також, діаграма класів може містити позначення деяких елементів поведінки, однак, їх динаміку розкрито в діаграмах інших типів[17].

Рис. 3.2.1 Діаграма класів

Як видно з діаграми класів між класами є лише один тим зв'язку - агрегація. Тобто деякий клас використовує об'єкт іншого класу. Це дало змогу створити чітку модульну ієрархію класів. Що є дуже важливим при створенні будь-якого ПЗ.

Як видно з рисунку всього програма налічує 5 класів. Кожен клас має певну тематику. Кожен модуль представляє власний графічний інтерфейс, тому у кожному модулю є екземпляр класу android.Android. Кожен клас має зміннну contacts_name так як усі вони працюють з списком контактів. Усі поля є публічними (доступними), так як в мові Python усі поля є доступними.

Клас sociogramm та contacts_exchange не релізований. Призначення contacts_exchange - обмін між двома користувачами контактами. Це дасть змогу збільшити кількість вузлів в соціограмі та більш повно відображати соціо матрицю. Клас sociogramm призначений для графічної побудови соціограми.

3.3. Опис збору та аналізу даних

Модуль contacts_reiting.py виконує збір даних про контакти, так як показана в лістингу 3.3.1.

Лістинг 3.3.1 Збір даних про контакти в contacts_reiting.py

def collect_contacts(self):

"""collect usefull information about contacts from Android"""

contacts_length = self.droid.contactsGetCount().result

if contacts_length == 0:

print "Error: You have not contacts yet"

sys.exit(1)

contacts = self.droid.contactsGet(['name','times_contacted'])

for i in range(len(contacts.result)):

self.contacts_name = self.contacts_name + [[contacts.result[i]['name'],

contacts.result[i]['times_contacted']]]

return self.contacts_name

Після чого аналізує їх (сортує за кількістю дзвінків) так, як показано в лістингу 3.3.2.

Лістинг 3.3.2 Аналіз контактів в contacts_reiting.py

def sort_contacts(self):

"""sort contacts by times_colled"""

for i in range(len(self.contacts_name)):

tmp = []

for j in xrange(1, len(self.contacts_name)):

tmp = self.contacts_name[j]

if self.contacts_name[j][1] > self.contacts_name[j-1][1]:

self.contacts_name[j] = self.contacts_name[j-1]

self.contacts_name[j-1] = tmp

return self.contacts_name

Модуль activity_chart.py виконує збір даних про контакти, так як показана в лістингу 3.3.3. Тут використовується клас contact_managment з contact_reiting.py, оскільки збір відбувається аналогічно.

Лістинг 3.3.3 Збір даних про контакти в wordstat.py

contacts = contact_reiting.contacts_managment(droid)

contacts_all = contacts.get_contacts()

Після чого створює запит до http://chart.googleapi.com так, як показано в лістингу 3.3.4.

Лістинг 3.3.4 Створення запиту activity_chart.py

def get_chart_url(self):

"""generate url for http://chart.googleapis.com/ service"""

#generate labels

for i in range(0,len(self.contacts_name),2):

if (i != len(self.contacts_name) - 1):

self.chart_labels += self.contacts_name[i] + "|"

else:

self.chart_labels += self.contacts_name[i]

#generate data

for i in range(1,len(self.contacts_name),2):

if (i != len(self.contacts_name) - 1):

self.chart_data += str(self.contacts_name[i]) + ","

else:

self.chart_data += str(self.contacts_name[i])

url = self.base_url + self.chart_type + "&" + self.chart_data + "&"

url += self.chart_size + "&" + self.chart_labels

Модуль wordstat.py виконує збір даних про повідомлення, так як показана в лістингу 3.3.5.

Лістинг 3.3.5 Збір даних про повідомлення в wordstat.py

self.droid = android.Android()

self.messanges = self.droid.smsGetMessanges(False).result

Після чого аналізує дані так, як показано в лістингу 3.3.6.

Лістинг 3.3.6 Аналіз повідомлень в wordstat.py

words = []

self.stat = {}

if self.messanges != None:


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.