Cuprins I. Prezentarea Sistemului de Operare Windows Phone Magazin Windows Phone



Yüklə 79.11 Kb.
tarix03.11.2017
ölçüsü79.11 Kb.

Prezentare platforma

Mobila Windows Phone

Elevi: Palaga Cosmin

Pavel Victor-Cristian

Stoian Stefan

432A
Cuprins

I. Prezentarea Sistemului de Operare Windows Phone

- Magazin Windows Phone – Stoian Stefan

- Caracteristici ale Windows Phone 8 din punct de vedere al nucleului -Pavel Victor

- Mediul de dezvoltare si limbajul Visual C# - Pavel Victor

- Arhitectura Windows Phone – Palaga Cosmin

- Tipurile de Aplicatii -Palaga Cosmin

- Prelucrarea in fundal -Stoian Stefan

- Servicii de sistem de fundal -Stoian Stefan

- Nucleu comun -Stoian Stefan

- Windows runtime -Stoian Stefan

II.Programarea unei aplicatii de tip "Hello World" – Pavel Victor

III. Aplicatie Demo -Palaga Cosmin

I. Prezentarea Sistemului de Operare Windows Phone

Windows Phone este un sistem de operare pentru dispozitive mobile dezvoltat de Microsoft, iar in momentul actual versiunea cea mai noua versiune de pe piata este Windows Phone 8, lansat in Octombrie 2012, in aprilie 2014 fiinnd anuntat oficial si Windows Phone 8.1,care aduce o serie de imbunatatiri versiunii precedente insa fara modificari majore din punct de vedere al structurii acestuia .



Magazinul Windows Phone

Magazinul Windows Phone (anterior Windows Phone Marketplace) este o platforma de distributie digitala dezvoltata de Microsoft pentru platforma Windows Phone, care permite utilizatorilor sa caute si sa descarce aplicatii care au fost dezvoltate de parti terte. Asemanator celor mai noi produse Windows, aceasta are interfata grafica „Metro UI”, interfata ce este prezentata intr-o vedere panoramica, unde utilizatorul poate cauta printe categorii si tile-uri, poate sa vada elementele prezentate si poate obtine detalii, pareri, specificatii, capturi de ecran si informatii de pret despre aplicatii.

Dezvoltatorii trebuie sa plateasca o taxa de abonament de 99 de dolari pentru a deveni membru App Hub si sa poata prezenta aplicatii catre Magazinul Windows Phone. Nu exista nici o limita pentru inregistrarea aplicatiilor cu plata. Exista, in schimb, o limita de 100 de inregistrari de aplicatii fara plata, de aceea, exista o taxa de 19,99 dolari per inregistrare de aplicatie gratuita.

Dezvoltarea de aplicatii in Windows Phone 7 se bazeaza pe Silverlight, XNA, si NET Compact Framework. Instrumentele principale folosite pentru dezvoltarea aplicatiilor sunt Microsoft Visual Studio 2010 si Expression Blend. Cu exceptia dispozitivelor deblocate ale dezvoltatorilor, pe Windows Phone 7 pot rula doar aplicatii care au fost aprobate mai intai de Microsoft si sunt disponibile numai prin Windows Phone Marketplace. Dezvoltatorii vor castiga in mod normal 70 % din veniturile realizate de catre aplicatii si pot include un model de publicitate in acestea, cu toate ca, in unele tari, ponderea este de doar 56,1 %. Studentii pot inregistra aplicatii in mod gratuit, prin programul DreamSpark de la Microsoft.

Dezvoltarea de aplicatii in Windows Phone 8 se poate realiza cu ajutorul Visual C#, Visual Basic si Visual C++.La lansarea sdk-ului de Windows Phone 8, Microsoft a oprit dezvoltarea XNA in Februarie 2013, permitand dezvoltatorilor sa programeze jocuri inntr-un limbaj .Net Framework. XNA framework (un invelis in jurul lui DirectX) a fost intrerupt in favoarea DirectX pentru Windows Runtime si aplicatiile de Windows Phone, fortand astfel dezvoltatorii sa foloseasca coduri native pentru a construi jocuri. Exista terte parti alea XNA, cum ar fi MonoGame, care permite dezvoltatorilor sa utilizeze in continuare XNA in Windows Runtime, Windwos Phone 8 si in alte platforme. Emulatorul a fost schimbat pentru a folosi Hyper-V ca hypervisor si acum necesita Windows 8 Pro sau Windows Server 2012 64 biti si un sistem care suporta hardware de vizualizare asistata pentru a rula. Windows Phone 8 accepta un subset de obiecte pentru reutilizarea codului sursa intre Windows 8 si Windows Phone 8. Supportul pentru codul nativ a fost adaugat in Windows Phone 8 dar acesta poate fi folosit pentru a construi jocuri DirectX sau componente pentru Windows Runtime. Aplicatiile care utilizeaza XAML trebuie sa fie in continuare construite cu .NET Framework. Un suport limitat de subseturi de API-uri ale Win32 au fost adaugate in Windows Phone SDK. Dezvoltatorii vor putea in continuare sa construiasca aplicatii pentru Windows Phone 7 care vor fi disponibile in Windows Phone 8.

Caracteristici ale Windows Phone 8 din punct de vedere al nucleului

Windows Phone 8 sprijina procesoarele multi-core pana la cele cu 64 de nuclee, rezolutiile de 1280 x 720 (720p) sau 1280 x 768 (WXGA) fata de Windows Phone 7 care suporta nativ doar rezolutia de 800 x 480 (WVGA) si este primul sistem de operare mobil de la Microsoft care utilizeaza un kernel bazat pe Windows NR, care este același nucleu pe care ruleaza si Windows 8. Sistemului mobil de operare i se adaugă si sistemul de fișiere îmbunatatit, drivere, stive de retea, componente de securitate, suport mass-media si motor grafic (DirectX).

Mediul de dezvoltare si limbajul Visual C#

Mediul de dezvoltare al aplicatiilor pus la dispozitia programatorilor de catre cei de la Microsoft este Microsoft Visual Studio, cea mai recenta versiune a acestuia fiind Microsoft Visual Studio 2013 iar limbajul de programare utilizat pentru programarea aplicatiilor in acest IDE este Visual C#, o implementare proprie Microsoft a limbajului C#.

Sintaxa limbajului este similara limbajului C++ sau Java , toate cele 3 fiind limbaje de programare orientate pe obiect. Cele mai importante parti ale aceste sintaxe sunt variabilele iar Visual C# utilizeaza operatori pentru a modifica valorile variabilelor, pentru a crea clase si metode si pentru a trimite date catre aceste metode.

Arhitectura Windows Phone

Diagrama de mai sus reprezinta arhitectura aplicatiilor din cadrul Windows Phone.

In fruntea diagramei se afla cele doua modele distincte de aplicatii. Cea din stanga, „TaskHost” reprezentand modelul XAML, care a si fost modelul principal inca de la lansarea Windows Phone. In partea dreapta se afla „CoreApplication”, un nou model pentru aplicatii, care deriva din modelul pentru Windows 8. De la lansarea Windows Phone 8, acest model de aplicatii suporta doar aplicatiile native ce folosesc Direct3D pentru interfata vizuala.

Desi Win32/COM API apare in diagrama in sectiunea CoreApplication, ele sunt apelabile de catre aplicatiile de gestionare atat timp cat fac parte dintr-o componenta Windows Runtime.

Cele doua modele de aplicatii se bazeaza pe un set de servicii principale ale platformei.

Packet Manager – este responsabil pentru instalarea/dezinstalarea aplicatiilor si mentinerea datelor aplicatiei pe tot parcursul „vietii” acesteia. Nu tine cont doar de aplicatiile instalate si licentiate, ci tine informatii despre oricare tile al aplicatiei pe care userul le pune pe ecranul de start.

Execution Manager – controleaza toate operatiile logice asociate unei aplicatii. Creeaza procesul de hosting pentru ca aplicatia sa ruleze si declanseaza evenimentele asociate aplicatiei in materie de startup, shutdown sau dezactivare. De asemenea, realizeaza sarcini similare pentru procesele din background.

Navigation Server – se ocupa de toate mutarile dintre aplicatiile foreground din telefon. Cand apesi pe un tile al aplicatiei, navighezi din ecranul de start catre aplicatia pe care ai selectat-o, iar Navigation Server este responsabil de adresarea acestei sarcini catre Execution Manager astfel incat aplicatia aleasa sa fie pornita. In aceeasi masura, cand tinem apasat lung pe butonul de back, Navigation Server se ocupa si reactivarea aplicatiilor.

Resource Manager – se asigura ca telefonul este mereu rapid si fluent in comenzi, monitorizand utilizarea resurselor (in special procesorul si memoria) de catre toate procesele active si fortand un set de limitari asupra lor. Daca o aplicatie sau un proces din background depaseste resursele care ii sunt alocate, este terminat automant pentru a mentine o rulare optima a telefonului.

Toate acestea sunt construite pe un nucleu comun de Windows (Windows 8 si Windows 8.1)



Tipurile de Aplicatii

XAML – cel mai cunoscut tip pentru aplicatiile dezvoltate sub Windows Phone 7.x; acestea sunt scrise exclusiv in XAML. Suporta limbajele C# si Visual Basic, API-urile Microsoft .NET, Windows Phone API, Windows Runtime API, framework-ul fiind XAML

Mixed Mode – folosesc structura XAML dar permit si includerea de cod nativ impachetat intr-o componenta Windows Runtime. Este potrivita pentru aplicatiile in care se doreste reutilizarea unor librarii native fara a rescrie codul. Este utila si in cazurile in care se doreste scrierea exclusiva in cod, dar este nevoie si de accesul catre frameworkul XAML si de unele instrumente care sunt disponibile doar in XAML, cum ar fi editarea tileurilor din start screen. Suporta limbajele C#, Visual Basic, C/C++, API-urile Windows Phone API, Windows Runtime API, Win32/COM API si framworkurile XAML si Direct3D

Direct3D – cea mai buna alegere pentru dezvoltarea de jocuri, Direct3D ofera optiunea de a folosi cat mai mult din hardware-ul pus la dispozitie de catre dispozitiv. Suporta limbajul C++ si API-urile Windows Runtime API, Win32/COM API.

Prelucrarea in fundal

Cand vine vorba de executie de fundal pe un dispozitiv mobil, utilizatorii au de multe ori obiective conflictuale. Pe de o parte, ei doresc ca aplicațiile lor sa ofere date chiar daca utilizatorul nu interacționează direct cu ele-streaming de muzică de pe Internet, actualizarea tile-ului Live cu cele mai noi date meteorologice, sau furnizarea de instrucțiuni de navigare. Pe de alta parte, ei doresc ca bateriile dispozitivelor sa tina pana la sfarsitul zilei si aplicatiile pe care le ruleaza sa nu fie incetinite de aplicatiile de fundal care folosesc o mica parte din puterea de calcul.

Windows Phone încearcă să echilibreze aceste cerințe contradictorii si se foloseste de un scenariu concentrat pe prelucrarea de fundal. In loc sa permita aplicatiilor sa ruleze in mod arbitrar, platforma ofera un set de reguli de rulare a aplicatiilor in asa fel incat sa acopere toate cazurile posibile. Datorita acestor constrangeri, telefonul va rezista la utilizarea pe parcursul unei zile intregi si nu va incetini celelalte procese care ruleaza in paralel.

Servicii de sistem de fundal

Windows Phone oferă un set de servicii de fundal care pot efectua sarcini uzuale în numele altor aplicații.



Serviciul de transfer de fundal

Serviciul de transfer de fundal (BTS) face posibile pentru aplicatii transferurile HTTP, utilizand aceeasi infrastructura pe care sistemul de operare o foloseste pentru a efectua operatiuni ca descarcarea de muzica. BTS se asigura ca descarcarile nu se opresc atunci cand dispozitivul se restarteaza si ca nu are impact asupra traficului de retea folosit de celelalte aplicatii.



Alarme

Cu API-ul Alarme, aplicațiile pot crea memento-uri specifice care se pot adapta cerintelor utilizatorului. Spre exemplu, o aplicatie de retete ar putea oferi posibilitatea de a adauga o alarma care se va inchide atunci cand mancarea trebuie scoasa din cuptor. S-ar putea oferi, de asemenea, un link care odata apasat, te va duce catre urmatorul pas al retetei.



Sarcinile programate

Există două tipuri de sarcini planificate pe care o aplicatie le poate crea, fiecare dintre acestea fiind programate și gestionate de sistemul de operare, în funcție de anumite condiții:

sarcini periodice – ruleaza o perioada scurta de timp in interiorul unui interval – configuratia curenta este de 25 de secunde la fiecare 30 de minute( atat timp cat telefonul nu se afla in modul de Economisre energie). Acestea ajuta aplticatiile mici care sunt folosite foarte des: o aplicatie de vreme are nevoie de actualizari cat mai dese pentru a afisa in timp real prognoza.

sarcini consumatoare de resurse - pot rula o perioada lunga de timp, dar nu dupa un program prestabilit. Deoarece ele pot avea un impact mai mare asupra performantelor dispozitivului, ruleaza numai atunci cand dispozitivul este pus la incarcat, cu bateria aproape plina, numai pe WI-fi si nu in utilizare activa. Aceste sarcini sunt destinate operatiunilor solicitante cum ar fi sincronizarea unei baze de date cu un server la distanta.



Nucleu comun

De departe cea mai semnificativă schimbare de arhitectura din Windows Phone 8 este adoptarea unui nucleu comun cu Windows. Dar ați putea sa va întrebați ce înseamnă de fapt un "nucleu comun"? In esenta, acesta contine doua componente distincte. In partea de jos este Windows Core System, functiile de baza ale sistemului de operare Windows, incluzand (printe altele), nucleul (kernel) NT, sistemul de fisiere NT(NTFS), si stiva de retea. Structura redusa a nucleului este rezultatul multor ani de rafinament arhitectural, a carui scop a fost de a oferi o baza comuna care ar putea alimenta mai multe dispozitive, incluzand smartphone-uri. Deasupra lui Core System este Mobile Core. Avem un set de functii care nu fac parte din Core System dar sunt totusi necesare unui smartphone. Acestea includ componente cum ar fi: multimedia, Core CLR si Trident, motorul de randare pentru Internet Explorer.

Figura de mai sus ilusteaza unele componente pe care Windows si Windows Phone se bazeaza. Este de retinut faptul ca Mobile Core este doar o entitate arhitecturala distincta in Windows Phone. Windows contine aceleasi componente ca Mobile Core, dar ele sunt doar o parte din numeroasele functii. Acest lucru este reprezentat printr-o linie punctata in jurul componentelor Mobile Core in partea de tabel pentru Windows 8.

Sistemele Core si Mobil Core reprezinta doar partile in care Windows si Windows 8 executa exact acelasi cod. Exista un numar foarte mare de zone diferite in care API-urile si functiile sunt comune, desi cu cateva diferente de implementare pentru fiecare mediu in parte. De exemplu, API-ul de locatie in Windows Phone incorporeaza in mod automat date provenind de la releele de telefonie mobila si retelele de Wi-fi pentru a imbunatati acuratetea localizarilor, optimizare care nu face parte din conceptele de baza ale Windows 8.

Windows runtime

Pentru utilizatori, modificarea majora cu care vine Windows Phone este noua interfata grafica cu utilizatorii (GUI) . Pentru dezoltatorii de aplicatii,pe de alta parte, modificarea tine de noul model de programare si noul set de API-uri, care impreuna sunt cunoscute sub numele de Windows Runtime. In ciuda faptului ca Microsoft a oferit de-a lungul anilor o varietate destul de mare de medii de dezolvare (cea mai notabila fiind .NET ), nucleul modelului de programare pe Windows nu s-a schimbat prea mult de-a lungul timpului. Windows Runtime nu reprezinta doar un set nou caracteristici si capabilitati, ci o modalitate fundamental diferita de a contrui aplicatii si componente.

Platforma Windows Runtime are la baza o versiune de Component Object Model (COM) la care se adauga metadate ce descriu fiecare componenta in parte. Aceste metadate fac posibila proiectarea tipurilor si metodelor din Windows Runtime in diverse medii de programare ce ruleaza deasupra acestuia. In Windows Phone, sunt doua astfel de medii de dezvoltare: o versiune CoreCLR bazata pe .NET (C# sau Visual Basic) sau cod nativ pur (C/C++) .

Desi arhitectura nucleului Windows Runtime si majoritatea API-urior sunt aceleasi pentru Windows si Windows Phone, ce doua platforme oferta versiuni diferite ale API Framework ce stau deasupra acestui nucleu. De exemplu , in WIndows Phone nu este implementata clasa Windows.System.RemoteDesktop insa exista cateva clase specifice telefonului precum Windows.Phone. Networking.Voip. Termenul Windows Phone Runtime este destul de des folosit in documentatie si in proiectele de Visual Studio pentru a accentua aceste diferente.



II.Programarea unei aplicatii de tip "Hello World"

Odata ce am instalat in calatorul pe care dorim sa programam aplicatia mediul de dezvoltare al celor de la Microsoft: Microsoft Visual Studio si SDK-ul pentru windows phone 8.0 suntem gata sa incepem programarea aplicatiei "Hello World".

Mai intai creem un nou proiect in Microsoft Windows Visual Studio 2013,asa cum avem in poza de mai jos:

Apoi selectam versiunea sistemului de operare al telefonului pentru care vrem sa programam aplicatia. Avand in vedere ca in cadrul acestei teme , ne-am axat pe Windows Phone 8.0, vom programa aplicatia pentru acest SO:



In momentul in care selectam sistemul de operare, mediul de dezvoltare generaza automat un template de proiect destul de complex, cu o multime de elemente pentru a ajuta programatorul. De asemenea, prin intermediul interfetei grafice, Microsoft face posibila programarea unei mari parti din aplicatie prin intermediul aplicatiei grafice care genereaza automat codul. In poza de mai jos putem vedea structura template-ului generat automat de mediul de dezvoltare :



Vom lua fiecare dintre aceste elemente pe rand si le vom explica:

- The Reference : acest folder contine, asa cum ii spune si numele, referintele tuturor asambloarelor utilizate in cadrul proiectului.

-The Assets : acest folder contine toate imaginile utilizate in cadrul proiectului. La crearea unui nou proiect, sunt generate automat cateva imagini : 5 imagini cu Tiles,specifice Windows Phone,un grid de aliniere si o iconita default a aplicatiei.

* ApplicationIcon este o imagine de dimensiunile 100x100 pixeli ce reprezinta imaginea pe care utilizatorii o vad pe telefoanele lor atunci cand vor sa acceseze aplicatia programata de noi. Aceasta imagine se poate inlocui cu orice imagine reprezentativa pentru aplicatie.

*AlignmentGrid ,asa cum ii spune si numele, este un Grid folosit pentru alinierea perfecta a obiectelor in interiorul display-ului. In mod implicit codul pentru introducerea acestui Grid este comentat in interiorul fisierului MainPage.xaml . Daca lasam codul necomentat, vom putea observa si grid-ul in interfata grafica, asa cum putea vedea in imaginea de mai jos:



-Assemblyinfo.cs este un fisier ce contine informatia legata de asamblare de care are nevoie proiectul precum AssemblyVersion, AssemblyCopyright, AssemblyTitle etc. ce reprezinta practic toata informatia publica utilizata in cadrul asamblarii acestei aplicatii.

-WMAppManifest este cel mai important fisier din cadrul acestei aplicatii. El contine toate setarile de configurare si proprietatile aplicatiei. Totodata defineste culoarea background-ului , modul de orientare, si toate drepturile pe care aplicatia le are asupra diverselor functii ale telefonului : senzori, bluetooth etc.



-AppManifest.xaml este un fisier al carui scop este de a genera Application Package (XAP)

-App.xaml este primul fisier incarcat in momentul in care aplicatia noastra in Windows Phone este deschisa si contine informatia legat de resurse si setari la nivelul aplicatiei.

-App.xalm.cs este fisierul cod din spatele fisierului App.xaml. Contine toate metodele difinite la la pornirea aplicatiei precum Application_Launching(), Application_Deactivated() etc.

-MainPage.xaml.cs este fisierul care se comporta precum un "home page" al aplicatiei noastre, aceasta fiind pagina care este afisata prima data utilizatorului atunci cand se deschide aplicatia. Putem personaliza aceasta pagina in functie de nevoile proprii sau de scopul aplicatiei.



-Mainpage.xalm.cs este fisierul cod din spatele fisierului MainPage.xaml si contine metodele pentru controlul evenimentelor precum Button_Click.












  1.  





  2.  





Vom modifica in fisierul MainPage.xaml interfata grafica a aplicatiei noastre (GUI= Graphical User Interface). Noi am adaugat un textbox, un buton si un textblock pentru afisarea mesajului iar codul pentru acest GUI este afisat mai jos. Deasemenea putem adauga toate aceste detalii in GUI prin intermediul prin modulul grafic pus la dispozitie de Microsoft Visual Studio cu ajutorul principiului "Drag & Drop" .

Apoi trebuie sa creen un Event Handler pentru a gestiona momentul in care se apasa pe buton. Atunci cand este apasat butonul, se citeste textul din textbox si apoi se afiseaza "Hello, text". Codul pentru acest event handler este :




  1. private void Button_Click(object sender, RoutedEventArgs e)

  2. {

  3. namemsg.Text = "Hello, " + nameInput.Text + "!";

  4. }


Aplicatia noastra este gata acum si o putem testa cu ajutorul unui emulator, pus la dispozitia programatorilor in cadrul mediului de dezoltare.



Odata ce este lansat emulatorul, telefonul se deschide cu "Home Page" -ul aplicatiei noastre. Tastam numele nostru si apoi apasam pe buton. Rezultatul poate fi vazul in imaginea din dreapta a simulatorului. Observam ca programul functioneaza exact asa cum ne dorim:





III Aplicatie Demo - Calculator

Am dezvoltat un calculator simplu ce aduna numerele introduse si afiseaza rezultatul alaturi de cateva mesaje de intampinare sau eroare (cand este cazul)

Programul este realizat in Visual Studio Express 2012 for Windows Phone si are doua componente principale: componenta grafica, MainPage.xaml si componenta de handlere, MainPage.xaml.cs.

In fisierul MainPage.xaml se gaseste codul sursa pentru definirea functiilor folosite de aplicatie, a orientarii si culoarea fundalului. Totodata aici vom defini interfata grafica vazuta utilizator, compusa din butoanele calculatorului si afisajul acestuia.

Codul pentru definirea interfetei grafice a unui buton este :



Dostları ilə paylaş:



Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2017
rəhbərliyinə müraciət

    Ana səhifə