Imbunatatirea Caracteristicilor Dispozitivelor Mobile cu Sistemul de Operare Windows Phone (gps)

CUPRINS :

1. INTRODUCERE 1

2. PREZENTAREA GENERALĂ A ARHITECTURII WINDOWS PHONE 2

2.1. Prezentarea Sistemului de Operare Windows Phone 2

2.2. Prezentarea Software Development Kit (SDK) 3

3. PREZENTAREA GENERALĂ A SISTEMELOR DE LOCALIZARE 8

3.1. Prezentarea Sistemului GPS 8

3.2. Prezentarea sistemului GLONASS 9

3.3. Prezentarea Sistemului A-GPS 10

4. DESIGN-UL ȘI FUNCȚIONAREA APLICAȚIEI 11

4.1. Design-ul Aplicației 11

4.1.1. Schema Bloc 11

4.1.2. Interfața grafică 12

4.1.3. Blocul de start 13

4.1.4. Blocul de afișare și selecție 16

4.2. Funcționarea aplicației 20

4.2.1. Funcționarea blocului de start 20

4.2.2. Funcționarea blocului de afișare și selecție 23

5. TESTAREA APLICAȚIEI 27

5.1. Testarea aplicațiilor pentru dispozitive mobile 27

5.2. Testarea Aplicației 30

5.3. Testarea Beta 34

6. CONCLUZII 35

7. BIBLIOGRAFIE 36

1. INTRODUCERE

Lucrarea propusă are ca scop dezvoltarea unei aplicații pentru dispozitivele mobile cu sistem de operare Windows Phone, modul de recepție GPS și o conexiune la internet. În cadrul acestei aplicații se doreste localizarea poziției pe hartă a dispozitivului mobil cu ajutorul modulului de recepție GPS, iar prin intermediul conexiunii la internet se vor cauta poze in apropierea locatiei dispozitivului pentru a fi descarcate si utilizate ca imagini pentru respectivul dispozitiv.

La pornirea aplicației va fi afișată harta lumii până când dispozitivul va fi localizat, moment în care harta se va apropia de locația dispozitivului pe o raza de aproximativ 500m. Înainte de căutarea de poze în împrejurimi se poate introduce un topic de căutare pentru a nu fii afișate decât pozele care corespund acestui topic.

Într-un studiu efectuat, pe piață mai există aplicații în acest domeniu, dar această aplicație vine cu unele îmbunătățiri. Aplicația pune la dispoziția utilizatorului posibilitatea de a utiliza pozele descărcate ca imagini de fundal pentru respectivul dispozitiv.

Încă de la început, am organizat proiectul în cele patru faze ale ingineriei software : analiză, proiectare, implementare și testare.

În prima fază am definit cerințele sistemului, independent de tehnologia folosită pentru implementarea acestuia. Cerințele au fost realizate pe bază de logică, descrierea obiectelor din sistem și acțiunii care pot fi realizate cu ajutorul acestor obiecte.

Aplicația este dezvoltată în limbajul C# si Visual Basic .NET utilizându-se Windows Phone SDK. Mediul de dezvoltare este Visual Studio 2012.

Imaginile sunt descărcate de pe www.Flickr.com în mod automat prin intermediul internetului, utilizând un cont de developer și respectând termenii și condițiile site-ului, afișându-se doar pozele cu caracter public.

2. PREZENTAREA GENERALĂ A ARHITECTURII WINDOWS PHONE

2.1. Prezentarea Sistemului de Operare Windows Phone

Microsoft a început lucrul la o noua platformă pentru dispozitivele mobile din anul 2004; însa dezvoltarea acestei noi platforme era foarte lenta așa că lucrul a fost intrerup. În 2008 Microsoft reorganizează grupul Windows Mobile pentru crearea unui nou sistem de operare. Acest nou sistem de operare trebuia sa fie lansat în 2009 sub numele de Windows Phone, însă din cauza întârzierilor au fost nevoiți să lanseve o versiune intermediară numită Windows Mobile 6.5.

Noul sistem de operare, Windows Phone, nu a mai fost creat să fie compatibil cu aplicațiile precedentelor sisteme de operare ( Windows Mobile ), din cauza schimbărilor apărute la dispozitivele mobile, ecranul tactil capacitiv a luat locul celui rezistiv și a cerintelor mult mai mari de performanțe ale utilizatorilor. Windows Phone 7 a fost dezvoltat rapid, fiind prezentat la începutul anului 2010 și lansat pe piață in toamna aceluiași an. În primavara anului urmator Microsoft lanseaza actualizarea acestui sistem de operare numită Windows Phone Mango ( 7.5 ) pentru a rezolva unele proble și pentru a îmbunătații sistemul. Actualizarea includea integrarea unei versiuni mobile a Internet Explorer 9, utilizarea simultană a mai multor aplicații (multi-tasking) și accesul la stocarea în cloud-ul Microsoft numit, la vremea respectivă, SkyDrive.

Windows Phone 8 a fost lansat spre sfârșitul anului 2012 ca fiind următoarea evolutie a sistemului de operare pentru telefoanele mobile. Acest nou sistem de operare împarte kernel-ul și multe API-uri cu Windows 8 ceea ce face posibilă utilizarea in mare parte a codului, de către programatori, pe telefoane mobile, tablete, laptop-uri si desktop-uri, ducând la costuri mai mici de producție a aplicațiilor și la migrarea acestora de pe o platformă pe alta mult mai ușoară.

2.2. Prezentarea Software Development Kit (SDK)

Înainte de a putea crea aplicații pentru Windows Phone 8 trebuie instalat Windows Phone 8 Software Development Kit. Acesta poate fi instalat doar pe computere care rulează Windows 8 ediția pe 64 de biți (Fig.1). Motivul pentru care este necesar acest sistem de operare este Emulatorul de Windows Phone care rulează ca o mașină virtuală în Hyper-V, platforma de virtualizare a Microsoft, asta însemnand că sistemul de operare Windows Phone 8 va rula pe desktop-ul calculatorului într-o fereastră care arată ca un telefon mobil, pentru testarea aplicațiilor în timp ce înca nu sunt finalizate.

Fig.1

Următorul pas este descărcarea și instalarea Windows Phone 8 SDK (http://developer.windowsphone.com/en-us/downloadsdk ), care contine următoarele componente:

Microsoft Visual Studio 2012 Express pentru Windows Phone

Microsoft Blend 2012 Express pentru Windows Phone

Emulatorul de echipamente Windows Phone

Template-uri de proiecte.

Windows Phone 8 SDK conține o versiune noua de emulator pentru testarea plicațiilor direct pe ecranul PC-ului. Noul emulator este inclus în ultimele versiuni de Microsoft Hyper-V, care necesită un procesor cu arhitectura pe 64 de biti și are inclusa tehnologia SLAT (second level adress translation), tehnologie pentru virtualizarea memoriei.

Se pot crea aplicații pentru Windows Phone 8 și pe computere care nu suportă tehnologia SLAT, doar că testarea se poate face doar pe un aparat cu Windows Phone 8 nu si pe computer, unde pot fi emulate diferite aparate, cu putere mai mare sau mai mica de procesare.

După instalare începerea creării unei aplicații este usoară, se accesează Visual Studio unde se selectează "File" și apoi "New Project"(Fig.2).

Fig.2

În fereastra apărută se selectează "Windows Phone", apoi "Windows Phone App" și se pune numele dorit pentru aplicația care va fi creată (Fig.3).

Fig.3

După apăsarea butonului „OK” va apărea o nouă fereastră in care va trebui să selectăm versiunea sistemului de operare pentru care dorim sa creăm aplicația ( Windows Phone OS 7, sau Windows Phone OS 8) (Fig.4).

Fig.4

După câteva momente noul proiect va fi creat, iar pe ecran va apărea în partea stângă Designerul Grafic, iar în dreapta codul pentru „MainPage.xaml” aceasta fiind prima pagină a aplicașiei (Fig.5).

Fig.5

3. PREZENTAREA GENERALĂ A SISTEMELOR DE LOCALIZARE

3.1. Prezentarea Sistemului GPS

Sistenul de poziționare globală este un sistem de radio-navigație prin intermediul sateliților. Acesta a fost dezvoltat de Statele Unite ale Americii, la început cu scop militar, numele complet fiind Navigation System with Timing and Ranging – Global Positioning System (NAVSTAR GPS). În acest moment sistemul GPS este disponibil tuturor utilizatorilor de receptoare, fiind alcătuit dintr-un număr de 24 de sateliți care orbiteaza Pământul pe 6 planuri (Fig.6) astfel oferind posibilitatea de conexiune la cel putin 4 sateliți oriunde și în orice moment al zilei.

Fig.6

3.2. Prezentarea sistemului GLONASS

GLONASS (Global’naya Navigatsionnaya Sputnikovaya Sistema) traducerea acesteia fiind Sistem Global de Navigație prin Satelit a fost creat de către forțele militare ruse. Sateliții GLONASS au orbite circulare cu o altitudene mai mica decît cea a sateliților GPS cu aproximativ 1000 km. Constelația de sateliți pentru sistemul GLONASS constă tot în 24 de sateliți dar aceștia sunt dispuși pe 3 planuri orbitale (Fig.7), astfel oferind posibilitatea de conexiune la minimum 5 sateliti in orice locație de pe Pămînt.

Fig.7

3.3. Prezentarea Sistemului A-GPS

A-GPS (Assisted Global Positioning System) după cum îi spune și numele este un sistem care îmbunătățește performanțele GPS-ului, mai ales cele de localizare inițială la pornirea aparatului. Acesta folosește conexiunea la internet pentru a descărca almanahul GPS și pentru a trimite datele provenite de la receptorul GPS către un server de asistență unde acestea sunt prelucrate mai rapid și cu mai mare acuratețe decât pe un dispozitiv portabil, oferind o localizare mai buna și mai rapidă. Acest sistem se mai folosește de triangulația între turnurile de telefonie celulară și de sistemul de poziționare prin Wi-Fi.

4. DESIGN-UL ȘI FUNCȚIONAREA APLICAȚIEI

4.1. Design-ul Aplicației

4.1.1. Schema Bloc

Sistemul este bazat pe modelul arhitectural client-server pe trei niveluri (Fig.8). Cele trei niveluri sunt interfață grafică, nivelul logic și nivelul acces de date.

Interfața grafică reprezintă nivelul superior al sistemului, fiind compus din elementele care îi dau posibilitatea utilizatorului să vizualizeze datele.

Nivelul logic este nivelul care se ocupă de prelucrarea datelor de localizare primite de la sateliți prin intermediul receptorului GPS și a datelor primite de la utilizator prin intermediul interfeței grafice.

Nivelul acces de date se ocupa cu conectarea la baza de date pentru vizualizarea și salvarea rezultatelor.

Interfața grafică a aplicației este o interfață dinamică, care nu depinde de rezoluția ecranului.

Fig.8

4.1.2. Interfața grafică

Interfața grafică a fost gândită să fie ușor de folosit de către utilizator, fiind interactivă și intuitivă. Aplicația a fos concepută să utilizeze două blocuri de imagine (Fig.9).

Primul bloc numit blocul de start, conține harta în care se face localizarea GPS, o cutie de text in care se va introduce topicul de căutare și butonul de căutare.

Cel de-al doilea bloc, numit blocul de afișare și selecție, conține două pagini. Prima pagină este pagina de afișare, în care se afișează toate pozele returnate prin căutarea topicului setat în împrejurimile locației. A doua pagină coincide cu prima dar prin intermediul acesteia se face selecția de imagini, se poate vizualiza care din acele imagini a fost selectată și care nu, pot fi deselectate immaginile selectate și se face salvarea ca imagine de fundal a pozelor selectate.

Fig.9

4.1.3. Blocul de start

Blocul de start este pagina de pornire a aplicației (Fig.10). Acesta conține trei text block-uri, harta intercativă, un text box interactiv și un buton de căutare.

În partea de sus a ecranului va fi afișat numele aplicației, creat printr-un „TextBlock” după cum urmează:

„<TextBlock

Text="AROUND ME"

Style="{StaticResource PhoneTextNormalStyle}"

Margin="12,0"/>”.

Imediat după numele aplicației urmează numele paginii „My Location”, și acesta fiind creat tot printr-un text block astfel:

„<TextBlock

Text="pictures near …"

Margin="9,-7,0,0"

Style="{StaticResource PhoneTextTitle1Style}"/>”.

Ambele text block-uri sunt create într-un stack panel cu ajutorul comenzii „<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">”. Acesta este urmat de hartă, care este creată într-un grid cu numele de „ContentPanel” astfel:

„<Grid x:Name="ContentPanel"

Grid.Row="1"

Margin="12,0,12,0" >

<Grid.RowDefinitions>

<RowDefinition />

<RowDefinition Height="Auto" />

</Grid.RowDefinitions>

<maps:Map Name="AroundMeMap" Loaded="AroundMeMap_Loaded" />”.

În partea de jos este creat încă un stack panel astfel:

„<TextBlock

Text="pictures near …"

Margin="9,-7,0,0"

Style="{StaticResource PhoneTextTitle1Style}"/>”.

Ambele text block-uri sunt create într-un stack panel cu ajutorul comenzii „<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">”. Acesta este urmat de hartă, care este creată într-un grid cu numele de „ContentPanel” astfel:

„<Grid x:Name="ContentPanel"

Grid.Row="1"

Margin="12,0,12,0" >

<Grid.RowDefinitions>

<RowDefinition />

<RowDefinition Height="Auto" />

</Grid.RowDefinitions>

<maps:Map Name="AroundMeMap" Loaded="AroundMeMap_Loaded" />”.

În partea de jos este creat încă un stack panel, care conține text block și un text box, astfel:

„<StackPanel Grid.Row="1">

<TextBlock

Foreground="{StaticResource PhoneSubtleBrush}"

Text="Topic" />

<TextBox

Name="SearchTopic"

Margin="-12, 0" />

</StackPanel>”.

Text box-ul este interactiv, iar la atingerea câmpului acesta deschide o tastatură in partea de jos a ecranului prin intermediul căreia utilizatorul va putea introduce topicul de căutare (Fig.11).

Fig.10 Fig.11

Butonul de căutare este creat în limbajul C# prin intermediul următoarelor comenzi:

„ApplicationBar = new ApplicationBar();

ApplicationBarIconButton appBarButton =

new ApplicationBarIconButton(

new Uri("/Assets/feature.search.png", UriKind.Relative));

appBarButton.Text = "Search";

appBarButton.Click += SearchClick;

ApplicationBar.Buttons.Add(appBarButton);”.

4.1.4. Blocul de afișare și selecție

Acest bloc apare imediat după apăsarea butonului de căutare din partea de jos a paginii de start. În acest bloc vor fi afișate imaginile din locațiile apropiate (Fig.12) și se va face selecția de poze pentru a fi setate ca imagini pentru fundal. În partea de sus a ecranului va fi afișat numele aplicației într-un text block. Acesta este urmat de numele paginii la rândul său creat tot cu ajutorul unui text block. Ambele text block-uri sunt așezate pe poziție fiind incluse într-un stackpanel, după cum urmează:

„<StackPanel Grid.Row="0" Margin="12,17,0,28">

<TextBlock

Text="AROUND ME"

Style="{StaticResource PhoneTextNormalStyle}"/>

<TextBlock

Text="pick for background"

Margin="9,-7,0,0"

Style="{StaticResource PhoneTextTitle1Style}"/>

</StackPanel>”.

Fig.12

Acestea sunt urmate de locul în care vor apărea pozele care corespund cu criteriile selectate (locație GPS, topic). Imaginile vor fi așezate sub formă de grid, acestea având dimensiunea de 105×105.

Tot aici este facuta și setarea în cazul în care nu sunt găsite poze care să corespundă criteriilor setate, ca aplicația să transmită aces lucru mesajul „No photos found 🙁 ” scris într-un textblock (Fig.13).

În același grid mai sunt introduse și comenzile pentru selecția pozelor, aceasta facându-se prin atingerea fiecărei poze dorite de către utilizator. Această atingere va îndoi colțul din dreapta sus al imaginii afișând o bifă in interiorul lui (Fig.14).

Fig.13 Fig.14

Toate cele de mai sus sunt create cu ajutorul următoarelor linii de cod:

„<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

<TextBlock

x:Name="NoPhotosFound"

Visibility="Collapsed"

Style="{StaticResource PhoneTextTitle2Style}">

<Run Text="No photos found :("/>

</TextBlock>

<toolkit:LongListMultiSelector

Name="PhotosForLockscreen"

LayoutMode="Grid"

ItemsSource="{Binding}"

GridCellSize="105, 105"

EnforceIsSelectionEnabled="True"

SelectionChanged="PhotosForLockscreen_SelectionChanged">

<toolkit:LongListMultiSelector.ItemTemplate>

<DataTemplate>

<Image

Opacity="0"

Source="{Binding Image320}"

Stretch="UniformToFill"

ImageOpened="Image_ImageOpened" />

</DataTemplate>

</toolkit:LongListMultiSelector.ItemTemplate>

</toolkit:LongListMultiSelector>

<StackPanel VerticalAlignment="Center" x:Name="Overlay" Visibility="Collapsed">

<TextBlock HorizontalAlignment="Center">

<Run Text="Loading …"/>

</TextBlock>

<ProgressBar x:Name="OverlayProgressBar" IsIndeterminate="True" />

</StackPanel>.”

Butonul de setare ca imagine de fundal este creat în C# folosind funcția „aplication bar” în care se va afla aces buton:

„private void BuildLocalizedApplicationBar()

{

ApplicationBar = new ApplicationBar();

ApplicationBar.IsVisible = false;

ApplicationBarIconButton appBarButton =

new ApplicationBarIconButton(

new Uri("/Toolkit.Content/ApplicationBar.Check.png",

UriKind.RelativeOrAbsolute));

appBarButton.Text = AppResources.AppBarSet;

appBarButton.Click += appBarButton_Click;

ApplicationBar.Buttons.Add(appBarButton);

}”.

4.2. Funcționarea aplicației

4.2.1. Funcționarea blocului de start

Blocul de start este cuprins din harta interactivă, câmpul de introducere a topicului de căutare a pozelor și butonul de căutare.

Harta, la deschiderea inițială a aplicației, afișează întreaga hartă a lumii până modulul GPS efectuează localizarea. În acel moment harta se va deplasa la locația indicată de modulul GPS, această locație fiind afișată in centrul hărții. Utilizatorl, prin atingere și tragere, poate deplasa harta pentru vizualizare, însă acest lucru afectează locația în care se caută pozele deoarece acestea sunt căutate cu ajutorul coordonatelor oferite de centrul harții, acest lucru lăsând utilizator să aleagă locația dorită pentu pozele care vor fi folosite ca imagini de fundal.

Localizarea se face folosind următorul set de instrucțiuni scris în limbajul C# în pagina „MainPage.xaml.cs” a aplicației:

„private async void UpdateMap()

{

Geolocator geolocator = new Geolocator();

geolocator.DesiredAccuracyInMeters = 70;

SetProgressIndicator(true);

SystemTray.ProgressIndicator.Text = "Getting GPS Location";

try

{

Geoposition position =

await geolocator.GetGeopositionAsync(

TimeSpan.FromMinutes(1),

TimeSpan.FromSeconds(30));

SystemTray.ProgressIndicator.Text = "Acquired";

var gpsCoorCenter =

new GeoCoordinate(

position.Coordinate.Latitude,

position.Coordinate.Longitude);

AroundMeMap.Center = gpsCoorCenter;

AroundMeMap.ZoomLevel = 15;

SetProgressIndicator(false);

}

catch (UnauthorizedAccessException)

{

MessageBox.Show("Location is disable in phone settings.");

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

}”.

Câmpul de introducere a topicului de căutare este următorul obiect al blocului de start al aplicației. La atingerea acestui câmp (TextBox) se va derula din partea de jos a ecranului telefonului o tastatură pentru a putea introduce textul dorit pentru căutare. După introducerea textului, sau dacă nu se doreste un anumit topic nu se introduce nici un text, se apasă butonul de căutare, care va căuta sub forma latitudine, longitudine, topic, rază:

„string topic = HttpUtility.UrlEncode(SearchTopic.Text);

string navTo = string.Format(

"/SearchResults.xaml?latitude={0}&longitude={1}&topic={2}&radius={3}",

AroundMeMap.Center.Latitude,

AroundMeMap.Center.Longitude,

topic,

5);

NavigationService.Navigate(new Uri(navTo, UriKind.RelativeOrAbsolute));”

Această căutare se face cu ajutorul paginii „FlickrImage” a aplicației. Căutarea returnează aceeași imagine de două ori, prima fiind la o rezoluție mică și cea de-a doua la rezoluție mare. Cea de rezoluție mica este folosită pentru afișarea pozelor pentru selecție și in cazul în care este selectată va fi folosită ca imagine pentru iconița aplicației. Poza de rezoluție mare se folosește pentru a fi setată ca imagine de fundal pentru telefonul mobil.

Cererea de poze se face către server-ul Flickr cu ajutorul unui url creat astfel:

„string url = "http://api.flickr.com/services/rest/" +

"?method=flickr.photos.search" +

"&license={0}" +

"&api_key={1}" +

"&format=json" +

"&nojsoncallback=1";

var baseUrl = string.Format(url,

license,

flickrApiKey);

if (!string.IsNullOrWhiteSpace(topic))

baseUrl += string.Format("&text=%22{0}%22", topic);

if (!double.IsNaN(latitude) && !double.IsNaN(longitude))

baseUrl += string.Format("&lat={0}&lon={1}", latitude, longitude);

if (!double.IsNaN(radius))

baseUrl += string.Format("&radius={0}", radius);

return baseUrl;”.

4.2.2. Funcționarea blocului de afișare și selecție

Acest bloc reprezintă pagina în care se vizualizează și se selecteză imaginile primite din locația dorită și cu topicul dorit. Vizualizarea pozelor se face într-un grid cu dimensiunea poze de 105×105 pixeli.

Până la încărcarea pozelor se afișează un progressbar și mesajul „loading”. În cazul în care nu se va găsi nici o poză care să corespundă cerințelor de topic și locație, se va afișa mesajul „No photos found :(”.

Derularea pozelor, în cazul în care numărul acestora depășește ecranul, se face prin atingerea display-ului și tragere în sus și în jos.

Selecția pozelor se face prin atingere, acele poze care vor fi selectate vor fi marcate afișând o bifă în colțul din dreapta sus al fiecăreia. Pentru deselectarea unei poze selectate și nedorită se atinge din nou acea poză aceasta devenind neselectată, nu va mai afișa bifa în colțul din dreapta sus. Pâna la selecția primei poze butonul pentru setere ca imagine de fundal nu va fi vizibil.

Pentru ca imaginile selectate să fie folosite ca imagini de fundal trebuie mai întâi să golim directorul în care se salvează pozele pentru fundal în telefon astfel:

„private static void TryToDeleteAllFiles(IsolatedStorageFile storageFolder, string directory)

{

if (storageFolder.DirectoryExists(directory))

{

try

{

string[] files = storageFolder.GetFileNames(directory);

foreach (string file in files)

{

storageFolder.DeleteFile(directory + file);

}

}

catch (Exception)

{

// could be in use

}

}

}”.

După ce directorul a fost șters, acesta este creat din nou și se salvează imaginile selectate în el, astfel:

„public static void SaveSelectedBackgroundScreens(List<FlickrImage> data)

{

var stringData = JsonConvert.SerializeObject(data);

using (var storageFolder = IsolatedStorageFile.GetUserStoreForApplication())

{

using (var stream = storageFolder.CreateFile(LockScreenData))

{

using (StreamWriter writer = new StreamWriter(stream))

{

writer.Write(stringData);

}

}

}

}”.

Setarea ca imagine de fundal a pozelor se face aleator de către aplicație. Pentru schimbarea permanentă a imaginilor de fundal, adică și atunci când aplicația nu este pornită se crează un agent programat „ScheduledAgent”. Acesta transmite sistemului de operare datele necesare de pornire a aplicației, aceasta rulând în background. Sistemul dă voie la acest lucru aproximativ o dată la 30 de minute la toate aplicațiile care au fost setate de către utilizator cu dreptul de rulare în background pentru a economisii baterie. În funcție de numarul de aplicții care sunt folosite pornirea aplicației variază între 20 și 40 de minute, deci și schimbarea imaginii de fundal se va face tot în acest interval. Agentul programat trebuie făcut în așa fel încât să transmită sistemului de operare când aplicația a terminat de facut modificările și dacă s-a încheiat cu succes sau nu. Dacă se va raporta o eroare de trei ori sistemul de operare nu va mai inițializa acea aplicație pâna când utilizatorul nu o va reseta. Agentul programat arată astfel:

„namespace AroundMe.Scheduler

{

public class ScheduledAgent : ScheduledTaskAgent

{

static ScheduledAgent()

{

Deployment.Current.Dispatcher.BeginInvoke(delegate

{

Application.Current.UnhandledException += UnhandledException;

});

}

private static void UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)

{

if (Debugger.IsAttached)

{

Debugger.Break();

}

}

protected async override void OnInvoke(ScheduledTask task)

{

await LockScreenHelpers.SetRandomImageFromLocalStorage();

NotifyComplete();

}

}

}”.

5. TESTAREA APLICAȚIEI

5.1. Testarea aplicațiilor pentru dispozitive mobile

Există două tipuri de testare pentru dispozitivele mobile:

testaraea hardware,

testarea software.

Testarea hardware, se referă la testarea dispozitivul în sine, adică procesorul, memoria RAM, memoria internă, display-ul, rezoluția, modulul GSM, modulul GPS, WiFi, bluetooth ș.a. .

Testarea software, se referă la testarea funcționalității aplicațiilor de pe dispozitivele mobile. Aplicațiile dispozitivelor mobile se împart în 3 categorii:

aplicații native; acest tip de aplicații sunt create pentru o anumită platformă

aplicații web mobil; acest tip de aplicații sunt accesate cu ajutorul browserelor și necesită o conexiune la internet fie aceasta de tip mobila sau wifi

aplicații hibrid; acestea sunt o combinație între aplicațiile native și cele de tip web. Acestea rulează pe dispozitiv cu sau fără acces la internet și sunt create cu ajutorul tehnologiilor web ( HTML5, CSS).

Aplicațiile native funcționează pe o singură platformă și sunt create cu ajutorul SDK-urilor, cele web funcționează pe mai multe platforme și sunt create folosind tehnologii cum ar fi html, css, asp.net, java. Aplicațiile native necesita instalarea din magazine de aplicații cum ar fi Google Play, Windows Store, App Store și tot de aici se și actualizează. Aplicațiile web mobil nu necesită instalre și se actualizează in mod centralizat, dar sunt accesibile doar prin intermediul internetului.

Testarea aplicațiilor pentru dispozitivele mobile este mai laborioasa decât cea pentru computer deoarece:

există diferite configurații de dispozitive mobile ( dimensiuni de ecran diferite, cu tastatura sau cu tastatură virtuală, ecran tactil, trackball)

multe varietăți de dispozitive ( HTC, Samsung, Apple, LG, Nokia,…)

diferite sisteme de operare ( iOS, Android, Windows, Blackberry)

diferite versiuni ale sistemelor de operare ( iOS 6.x, 7.x; Android 2.x, 3.x, 4.x; windows 7.x, 8.x)

diferite rețele ale operatorilor (GSM, CDMA)

Ca orice aplicație, testarea aplicațiilor pentru dispozitive mobile este foarte importantă deoarece o aplicație cu probleme nu este apreciată și poate duce la pierderea de bunuri (bani, timp) sau pentru firmele mari chiar pierderea pieței.

Tipuri de testare a aplicațiilor pentru dispozitive mobile:

testul de utilizare, pentru a asigura că aplicația este ușor de folosit;

testul de compatibilitate, testarea se face pe diferite dispozitive, brousere, dimensiuni de display, versiuni ale sistemului de operare;

testarea interfeței, se testează meniul, butoanele, obțiunile, setările și cursivitatea funcționării ;

testarea serviciilor, se testează cu și făra conexiune la internet;

testarea resurselor minime, se verifică consumul de memorie, creșterea dimensiunii bazei de date locale;

testarea performanței, se testează în rețele 2G, 3G, wifi viteza de transfer și consumul de baterie;

testarea operațională, se testează recuperarea datelor în cazul pierderii de baterie și a updatării aplicației di magazin;

testul de instalare, se testează dacă aplicația se instalează și dezinstaleză corect pe dispozitiv;

testarea securității, se testează dacă datele sunt protejate sau nu.

Strategia de testare trebuie efectuată în așa fel încât toate standardele de calitate și performanță să fie îndeplinite. Testarea se face de obicei pe dispozitivele cele mai utilizate de către clienți ale sistemului de operare în care rulează aplicația. Este recomandată testarea aplicațiilor și în emulatoare, mai ales în partea inițială a dezvoltării aplicațiilor, deoarece acestea reprezintă o modalitate ușoară și rapidă de testare. Există 3 tipuri de emulatoare:

emulatoare de dispozitive, oferite de către producătorii dispozitivelor;

emulatoare de brousere, simulează brouserele dispozitivelor mobile

emulatoare de sisteme de operare, oferite de către producătorii de sisteme de operare.

După ce testarea în emulatoare atinge rezultatele dorite se poate trece la testarea pe dispozitive pentru o testare mai reală. Este posibilă și testarea în cloud tot prin intermediul simulatoarelor. Câteva avantaje a testării în cloud ar fi accesibilitatea (posibilitatea de a accesa și testa aplicația de oriunde), se poate testa pe mai multe dispozitive în același timp, costuri reduse de testare. Dezavantajele testării în cloud ar fi problemele de conexiune la internet, mai puțin control asupra funcțiilor emulatoarelor și probleme de securitate deoarece testarea se face prin intermediul internetului care nu poate fi complet securizat.

Procesul de testare a aplicațiilor mobile urmează urmatorii pași:

Identificarea tipurilor de testare;

Testarea manuală sau automată, testarea automată se face de obicei atunci când procesul de testare durează foarte mult timp;

Testarea Beta, după ce testarea de către echipa de testare a fost finalizată aplicația trece în UAT (User Acceptence Testing) care este făcută de către clienți;

Testarea Performanței, echipa de testare a performanței face încercări cu diferite încărcături a aplicației;

Planul de lansare, testarea finală înaintea lansării aplicației și retestarea periodică a acesteia pe toată durata de viață.

5.2. Testarea Aplicației

Testarea aplicației a fost făcută pe întreg parcursul dezvoltării acesteia urmând următorul plan:

a fost efectua manual,

a fost efectuată în emulatorul de dispozitive Windows Phone oferit de către Microsoft prin intermediul SDK-ului,

a fost efectuată pe un dispozitiv,

a fost lansată o versiune Beta și testată de 4 utilizatori cu dispozitive diferite.

Testarea în emulator pe tot parcursul dezvoltării aplicației a fost făcută simulând un dispozitiv cu 512MB RAM, rezoluție WVGA (480×800) și sa funcționeze cu orice procesor cunoscut de emulator. A fost folosită această configurație deoarece simulează cele mai mici performanțe ale unui dispozitiv mobil cu sistemul de operare Windows Phone 8.0 și 8.1. După finalizarea aplicației aceasta a mai fost testată în simulator și pe dispozitive cu rezoluție WXGA (768×1280) și 720p. Aplicația a funcționat bine în emulator aceasta fiind cursivă și fără erori. Imagini din timpul testelor se pot vedea în figura următoare.

Fig.15

Am continuat cu testarea pe un dispozitiv mobil cu sistemul de operare Windows Phone 8.0, 512 MB memorie RAM, procesor dual core de 1GHz, ecran de 4” cu o rezoluție WVGA. Pe acest dispozitiv am testat aplicația timp de o săptămână, în diferite situații:

în oraș, în interiorul unei clădiri:

cu conexiune de internet prin wifi, aplicația a funcționat normal făra întârzieri foarte mari de localizare ( întârziere de 4-7 secunde datorată locației);

cu conexiune de internet prin 3G, aplicația a funcționat cu întârzieri insesizabile de conectare la server ți descărcare a pozelor (1-2 secunde);

cu conexiune de internet prin 2G, aplicația a funcționat dar cu întarzieri destul de mari la descărcarea pozelor între 50-60 secunde.

În oraș, în afară:

cu conexiune de internet prin wifi, aplicația a funcționat fără erori și întârzieri;

cu conexiune de internet prin 3G, aplicația a funcționat cu întârzieri insesizabile;

cu conexiune de internet prin 2G, aplicația a funcționat dar cu întarzieri destul de mari la descărcarea pozelor între 50-60 secunde.

În câmp deschis:

cu conexiune de internet prin 3G, aplicația a funcționat cu întârzieri insesizabile;

cu conexiune de internet prin 2G, aplicația a funcționat dar cu întarzieri destul de mari la descărcarea pozelor între 50-60 secunde.

Fig.16

Fig.17

Am mai testat și funcționarea aplicației dacă este întreruptă de un apel sau de un sms. Aceasta a funcționat corespunzător adică a permis răspunderea la apel, citirea și răspunsul la sms. După închiderea apelului și a sms-ului aplicația a revenit în stadiul în care rămăsese. Pe tot parcursul testelor aplicația nu a schimbat semnificativ performanțele dispozitivului, aceasta fiind insesizabilă. Nici timpul de viță al bateriei nu a fost modificat sesizabil.

Aceleași teste au fost făcute și pe sistemul de operare Windows Phone 8.1, pe același dispozitiv mobil, iar rezultatele testelor au rămas neschimbate.

5.3. Testarea Beta

Testarea beta a fost făcută în decursul a unei săptămâni, de către patru persoane diferite cu patru dispozitive mobile cu caracteristici diferite. Aceste dispozitive sunt:

Nokia Lumia 520, 512 MB memorie RAM, procesor dual core de 1GHz, ecran de 4” cu o rezoluție WVGA și sistem de operare Windows Phone 8.1;

Nokia Lumia 720, 512 MB memorie RAM, procesor dual core de 1GHz, ecran de 4,3” cu o rezoluție WVGA și sistem de operare Windows Phone 8.1;

Nokia Lumia 925, 1 GB memorie RAM, procesor dual core de 1,5 GHz, ecran de 4,5” cu o rezoluție WXGA și sistem de operare Windows Phone 8.1;

Nokia Lumia 1520, 2 GB memorie RAM, procesor quad core de 2,2 GHz, ecran de 6” cu o rezoluție 1080p și sistem de operare Windows Phone 8.1.

Rezultatele testelor au fost foarte bune, aplicația fiind foarte puțin influențată de dispozitivul pe care era instalată, singurul inconvenient al aplicației fiind descărcarea pozelor prin intermediul conexiunii de internet 2G unde viteza de transfer este foarte mică, acest lucru cauzând întârzieri de aproximativ 1 minut.

Fiecare utilizator a completat câte un test de cauză, acestea sunt atașate în anexa 1.

6. CONCLUZII

Deoarece are diferite interfețe bazate pe model aplicația ar putea avea un număr nelimitat de implementări, bazat pe anumite cerințe și nevoi. Sistemul de operare Windows Phone se afla în continuă expansiune, iar această platformă poate fi considerată potrivită și pe viitor.

De asemenea, pe viitor pot fi create noi blocuri pe lângă cele existente deja. Se poate crea o interfață pentru salvarea pozelor, sau pentru afișarea rutei de transport de la locația curentă la o destinație dorită, localizarea stațiilor de transport în comun din zonă ș.a..

Spre deosebire de aplicațiile existente, aplicația noastră vine cu un plus. Aceasta pune la dispoziția utilizatorului posibilitatea de a alege topicul și locația din care să fie pozele care vor ajunge pe fundalul dispozitivului acestuia și cel mai important utilizatorul își poate alege doar pozele dorite de acesta.

În concluzie aplicația noastră are o gamă largă de dezvoltare.

7. BIBLIOGRAFIE

Andrew Whitechapel, Sean McKenna, Windows Phone 8 Development Internals, 2013, Editura Microsoft

http://msdn.microsoft.com/library/windows/apps/dn726537.aspx

http://msdn.microsoft.com/en-us/library/windows/apps/br211377.aspx

http://msdn.microsoft.com/library/windows/apps/cc189036(v=vs.105).aspx

http://msdn.microsoft.com/en-us/library/windows/apps/cc189018(v=vs.105).aspx

http://msdn.microsoft.com/en-us/library/windows/apps/gg521153(v=vs.105).aspx

http://msdn.microsoft.com/en-us/library/windows/apps/hh202996(v=vs.105).aspx

http://jjserver.net/tag/windows-phone/

http://www.softwaretestinghelp.com/beginners-guide-to-mobile-application-testing/

http://msdn.microsoft.com/en-us/library/system.net.httputility.urlencode(v=VS.95).aspx

http://www.flickr.com/services/api/keys/

https://www.flickr.com/services/api/flickr.photos.licenses.getInfo.html

https://www.flickr.com/services/api/flickr.photos.search.html

http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206968(v=vs.105).aspx

http://msdn.microsoft.com/en-us/library/windowsphone/design/jj662927(v=vs.105).aspx

http://msdn.microsoft.com/en-US/library/windowsphone/develop/microsoft.phone.scheduler.scheduledactionservice.launchfortest(v=vs.105).aspx

BIBLIOGRAFIE

Andrew Whitechapel, Sean McKenna, Windows Phone 8 Development Internals, 2013, Editura Microsoft

http://msdn.microsoft.com/library/windows/apps/dn726537.aspx

http://msdn.microsoft.com/en-us/library/windows/apps/br211377.aspx

http://msdn.microsoft.com/library/windows/apps/cc189036(v=vs.105).aspx

http://msdn.microsoft.com/en-us/library/windows/apps/cc189018(v=vs.105).aspx

http://msdn.microsoft.com/en-us/library/windows/apps/gg521153(v=vs.105).aspx

http://msdn.microsoft.com/en-us/library/windows/apps/hh202996(v=vs.105).aspx

http://jjserver.net/tag/windows-phone/

http://www.softwaretestinghelp.com/beginners-guide-to-mobile-application-testing/

http://msdn.microsoft.com/en-us/library/system.net.httputility.urlencode(v=VS.95).aspx

http://www.flickr.com/services/api/keys/

https://www.flickr.com/services/api/flickr.photos.licenses.getInfo.html

https://www.flickr.com/services/api/flickr.photos.search.html

http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206968(v=vs.105).aspx

http://msdn.microsoft.com/en-us/library/windowsphone/design/jj662927(v=vs.105).aspx

http://msdn.microsoft.com/en-US/library/windowsphone/develop/microsoft.phone.scheduler.scheduledactionservice.launchfortest(v=vs.105).aspx

Similar Posts

  • Phy Layer

    PHY Layer Tehnica OFDM sta la baza nivelului fizic al WiMAX-ului, datorita vitezelor foarte mari oferite privind comunicațiile de date, video sau multimedia. De asemenea este utilizata si datorită capabilității ei de a transmite date la viteze foarte mari, chiar dacă utilizatorul nu se află pe linia de vizibilitate directă, și datorită faptului că suportă…

  • Promovarea Turismului Prin Site Uri Web

    PROMOVAREA TURISMULUI PE SITE-URI WEB CUPRINS INTRODUCERE Capitolul I. SISTEME INFORMAȚIONALE 1.1 Sisteme informationale ale agentiilor de turism 1.2 Sisteme informationale ale unitatilorfurnizoare de serviciituristice Capitolul II. PROMOVAREA MULTIMEDIA 2.1 Promovarea multimedia a agentiilor de turism 2.2 Promovarea multimedia a unitatilor furnizoare de servicii turistice 2.3 Analiza eficienței promovării multimedia (analiza SWOT) Capitolul III. PROPUNERI…

  • Sistеmul Dе Dеtеctаrе Si Suрrаvеghеrеа Tintеlоr Multiрlе Dinаmicе

    Sistеmul dе dеtеctаrе și suрrаvеghеrеа țintеlоr multiрlе dinаmicе CОNTЕNT SАRCINА РЕNTRU TЕZĂ АDNОTĂRI LISTА АBRЕVIЕRILОR INTRОDUCTIОN 1 АNАLУSIS ОF THЕ SITUАTIОN IN THЕ FIЕLD ОF RЕSЕАRCH 1.1 Mоdifiеd mеаn shift trаcking fоr scаlеаnd оriеntаtiоn оf tаrgеt 1.2. Rеcоvеring uрреr-bоdу mоtiоn using а rеinitiаlizаtiоn раrticlе filtеr 1.3. Аn mcmc-bаsеd раrticlе filtеr fоr trаcking multiрlе intеrаcting tаrgеts…

  • Comertul Electornic

    Introducere Contextul tehnologic Comerțul electornic (E-commerce) Ce este? Comerțul electronic reprezintă comercializarea bunurilor și serviciilor prin intermediul tehnologiilor oferite de Internet. Comerțul în stilul clasic presupunea realizarea unei tranzacții ce necesita întâlnirea celor între două persoane, furnizor și cumpărător, care conveneau pe baza negocieri față în față. Pentru a cumpăra un bun sau serviciu, trebuia…

  • Elaborare Paginii Web a Unei Interprinderi

    C U P R I N S INTRODUCERE…………………………….……………………………………………..7 Prezentarea generală a tehnologiei World Wide Web ………………….…………….9 1.1. Definiția tehnologiei World Wide Web ……………………………………….9 1.2. Arhitectura de bază a Web-ului………………………………………………….……9 1.2.1. Protocoalele utilizate …………..…….…………………………………….…10 1.2.2. Modelul de referință ISO/OSI …….……………………………………..……11 1.2.3. Modelul client-server …….……………………………………..….…………11 1.3. Legăturile Web-ului cu HTML…………………………………..……….…………….13 1.4. Definirea unui circuit virtual……………………………………………………..…………14 2. Protocolul…

  • Aplicatii Web Moderne

    Aplicații Web Moderne Cuprins Introducere Capitolul 1. Framework-ul ASP.NET MVC 1.1 Model-View-Controller 1.2 Routing 1.3 Action Filters si Data Annotations Razor View Engine Security. Authentication.Authorization. Membership. Deployment Capitolul 2. MVC vs WebForms 2.1 Prezentare scurta ASP.NET WebForms 2.2 ASP.NET MVC vs ASP.NET Web Forms Capitolul 3. Librarii externe folosite in dezvoltarea aplicatiei 3.1 Entity Framework…