Mobile og kompakte enheter blir mer og mer populært i vårt samfunn. Hver av oss ansikter med dem hver dag. Gjerne hver enkelt av oss har mobiltelefon, håndholdte datamaskiner eller andre hi-tech utstyr.
Alle disse enhetene har ulike mobile plattformer. Det er slike kjente plattformer som Windows MobileM, iPhone, Blackberry, Symbian OS, Android, Maemo, OpenMoko etc. Alle har forskjellig historie og fordeler og svakheter.
Innledning
Slike plattformer som Windows Mobile, Blackberry, iPhone er «lukket» nok og begrenset av enten egne enheter (BlackBerry, iPhone) eller utvikling kompleksitet. Blant andre problemer av nevnte plattformene er det begrenset API. Selv Java-plattform for mobile enheter har en del svakheter som for eksempel stort antall begrensninger; svært forskjellige APIer; enheten avhengig kode. Symbian og Windows Mobile plattformer er bedre fra dette punktet så langt som de støtter bredere spekter av enheter og deres APIer gir flere alternativer.
Vanlig problem her er også at det er mange plattformer. Snakker om OpenSource og Cross-Platform løsninger vi skulle si at de fortsatt utvikler for tiden og er ikke utbredt ennå.
I denne artikkelen vil vi betaler vår oppmerksomhet til Windows Mobile-plattformen.
Microsoft Selskapet kom med sin første plattform for innebygde enheter på slutten av den 90.. I 2002 Windows CE.NET plattform dukket opp. Og på den tiden Lomme-PC basert på Windows CE 3.0-plattformen og høyere ble utgitt. Videreutvikling av trådløs kommunikasjonsteknologi klart å kombinere telefon og personlig datamaskin. Dermed Pocket PC 2002 Phone Edition opptrådte som støttet standarder for GSM, GPRS, Bluetooth og trådløse HS nettverkstilgang. På samme tid en annen enhet konseptet ble utviklet som var mye lik de ovennevnte, men var nærmere telefonen deretter til pc. Denne enheten ble kalt SmartPhone 2002. Grunnleggende forskjellen mellom Smartphone og Pocket PC er at Lomme-PC har en berøringsskjerm, mens Smartphone har bare kontroll knapper. De hadde også forskjellige program scopes og støttet ulike standarder og teknologier.
Windows Mobile-plattformen mer tilhører smartphones, kommunikatører og små personlige enheter. Windows CE og Windows Embedded plattformene blir ofte brukt i ulike industrielle utstyr.
Nå har vi Windows Mobile 5 og Windows Mobile 6 generasjoner og Windows Mobile 7 vil bli lansert snart. Moderne enheter basert på Windows Mobile Pocket PC, har 500-600 MHz prosessorer og 64-128 MB RAM som ikke er lite for slike enheter.
En. Utviklingsverktøy
Det er noen modeller for utvikling av applikasjoner for Windows Mobile:
Win32 API MFC. NET Compact Framework.
Microsoft Co gir utviklere alle nødvendige verktøy for utvikling av applikasjoner for PDA, Pocket PC, og Smartphone.
Her er noen råd om ulike kodetype velge.
Bruk egen kode for å oppnå serieopptak, direkte arbeid med maskinvaren, og også for minimering av system ressurser. Bruk Managed Code for utvikling av GUI-applikasjoner som viktigste kravene er utvikling og betingelser. Managed Code er også bra for lett arbeid med web-tjenester. Bruk Server-Side kode for arbeid med ulike enheter via en enkelt kodebase, og også om stort stabilt kommunikasjonskanal med en enhet er til stede.
Nedenfor er vurderinger av dagens utviklingsverktøy for PDA, Pocket PC og Smartphone.
Embedded Visual C + + 4.0
Microsoft Embedded Visual C + + 4.0 utviklingsmiljøet er ment å lage programmer for enheter med Windows CE. NET 4.2 operativsystem og også (med pakke med oppdateringer SP3) for PDA og Smartphones på Windows Mobile 2003 Second Edition plattform. Den utviklingsmiljø Embedded Visual C + + 4.0 er bra for etablering av egen kode for mobile og innebygde enheter med Windows CE. NET 4.2 OS. Den lar utvikleren å utføre Just-In-Time Debugging for diagnostisering av ubehandlet unntak, Fest-til prosessen for den utvidede feilsøking av prosesser, og også samspill med en emulator.
Visual Studio. NET og SDP funksjoner
SDP (Smart Device Programmering) funksjonene på integrert miljø i utviklingen Visual Studio. NET 2003 (2005, 2008) tillater å lage programmer, som bruker mulighetene til Microsoft. NET Compact Framework plattform. Dermed en utvikler kan lage distribuerte mobile data-behandlingssystemer, arbeidsmåter både i scenarier med tilkobling og uten permanent tilkobling. Store klasse bibliotek av. NET Compact Framework plattformen gjør applikasjonsutvikling mye raskere enn med tradisjonelle utviklingsverktøy.
Visual Studio. NET kan lage programmer for Pocket PC 2002 enheter og (med riktig SDK) Pocket PC 2003, 2005 og Smartphone 2003, 2005, bruke de samme verktøyene som de som brukes for utvikling av applikasjoner for stasjonære PCer. Bibliotek. NET Compact Framework er installert sammen med Visual Studio. NET. Dette biblioteket er spesielt utviklet for enheter med begrensede ressurser. Utviklere kan også bruke nye språk C # og Visual Basic. NET for applikasjoner for mobile og innebygde enheter. De er gode i arbeidet med web-tjenester og ADO.NET teknologier.
Kontroll elementer av ASP. NET Mobile Controls utvide sosialdemokratene funksjoner og. NET Compact Framework plattform. De gir muligheter til å bruke mulighetene. NET Compact Framework og Visual Studio. NET for utvikling av mobile web-applikasjoner på grunn av datalevering til ulike mobile enheter ved hjelp av ASP.NET teknologi. Denne tilnærmingen gjør det mulig å opprette én mobile web-applikasjon i Visual Studio. NET miljøet, som utfører automatisk data rendring for visning på ulike enheter: mobiltelefoner, smarttelefoner, PDA, Pocket PC. Den integrerte utviklingsmiljø som gjør det mulig å lage mobile web-applikasjoner ved å flytte kontroll elementer i skjemaer.
ASP.NET System setter ingen komponenter på en klient enhet. For tilpasning av formatering under betong nettlesere server logikk brukes. Det genererer informasjon i formater fra Wireless Markup Language (WML), HTML, og Compact HTML (cHTML).
Microsoft SQL Server
Microsoft SQL Server Compact Edition (SQL Server CE) er en kompakt DBMS for rask utvikling av applikasjoner som øker mulighetene for å arbeide med bedriftens data på grunn av mobile enheter ved hjelp av. SQL Server CE er et verktøy rette for utvikling av mobile applikasjoner på grunn av støtte fra SQL syntaks og bruk av programmet og API-grensesnitt modell som er kompatibel med SQL Server.
SQL Server CE inneholder grunnleggende sett med relasjonsdatabase funksjoner, spesielt optimalisert søket behandleren; støtte av transaksjoner og heterogene typer data - med enkle krav til systemressurser. Ekstern tilgang til dataene og replikering av samløpet gi pålitelig levering av informasjon fra SQL Server baser, mulighet for selvstendig verk med av informasjon og påfølgende synkronisering med serveren. SQL Server CE er bra for systemer med mobile enheter og trådløse nettverk.
SQL Server CE DBMS er utviklet for integrasjon med. NET Compact Framework ved hjelp av Visual Studio. NET. Det forenkler utvikling av applikasjoner for arbeid med databaser på mobile enheter og bygd. Nye data leverandør av SQL Server CE for kode forvaltning i Common Language Runtime Environment bidrar til å utvikle distensible applikasjoner med muligheter til selvstendig arbeide med informasjon i situasjoner uten permanent tilkobling.
Microsoft. NET SqlClient gir API for arbeid av begge. NET Framework og. NET Compact Framework-programmer. For de vanlige Windows-systemer SqlClient Microsoft med SQL Server brukes, og SqlServerCe for Microsoft SQL Server Compact Edition databaser for Compact Framework.
Navn løpet av SqlClient er i begge versjoner. Så vi kan samhandle:
Ved hjelp. NET Compact Framework SqlClient å ha en tilgang til SQL Server fra enheten på skrivebordet. Ved hjelp. NET Compact Framework SqlServerCe å ha en tilgang til SQL Server Compact Edition direkte på en enhet.
Arbeid med databaser på en enhet er lik arbeidet på skrivebordet. For å få tilgang til SQLServer på Desktop systemet SQL bruker TCP / IP forbindelse dermed i dette tilfellet er det mulig ikke å ha SQL Server Compact Edition er installert på en enhet.
Alle de nevnte modellene er implementert på desktop-systemer. Så opplevelsen av søknaden deres kan gjennomføres for utvikling av programmer for Windows Mobile. Bruke Win32 API vi raskt får kompakt kode, og også kan bruke det for utvikling av drivere og system komponenten. Bruke MFC vi har utvidelser av API funksjoner, og også designer for utvikling av grensesnitt. Og bruker Compact Framework vi har til rådighet godt utviklet grensesnitt, automatisk søppelrydding, støtte av XML og andre alternativer. Også er det enda mer avkortet versjon - Micro Framework, hvor det er mindre SDK funksjoner.
Etter SDK for MS Visual Studio installasjon nye konfigurasjoner med å samle vises i tillegg til nye funksjoner for montering under disse plattformene. Drakt inneholder også Emularor for programvareutvikling og testing uten fysisk tilkobling mellom enheten og datamaskinen.
Så langt så mange enheter som er basert på Windows Mobile har ARM prosessor er det også mulig å kompilere enheter som bruker andre kompilatorer: AVR32, ARM (RealView), GNUARM, IAR Systems.
2. Building Windows Mobile applikasjoner for Windows Mobile-enheter som bruker MS Visual Studio. NET
Visual Studio utviklingsmiljø sammen med Compact Framework stand til å utvikle applikasjoner ved hjelp av et stort grafisk grensesnitt, databaser, arkivering og kryptering verktøy, USB, seriell, Bluetooth, og også trådløse nettverkstilkoblinger og telefoni. Alle disse er gitt av SDK, samt bibliotek, og kurs filer fra Platform Builder.
2.1 Brukergrensesnitt
På grunn av tilstedeværelsen av gode designer i VS og SDK kan vi lett utvikle GUI for mobile applikasjoner akkurat de samme som for stasjonære applikasjoner. Den eneste forskjellen er i sett av grafiske komponenter til stasjonære systemer og Windows Mobile. Det er også forskjell mellom komponenter i Smartphone og Pocket PC-versjoner som følge av at Pocket PC har en berøringsskjerm og SmartPhone har ikke. Derfor utvikling av grensesnitt for SmartPhone er mer kompleks. En bør ta hensyn til ved utvikling av programvare for begge plattformer.
Her bør vi også nevne at programvaren bygget for Pocket PC-en vil ikke starte på SmartPhone-plattformen, mens den motsatte situasjonen er mulig - til det øyeblikk da noen spesielle Smartphone funksjonen kalles.
Det er naturlig at mange grafiske komponenter samt flertallet av funksjoner fra full størrelse Framework ble tatt vekk fra Windows Mobile SDK for å redusere størrelsen på SDK på enheten side. Bare de mest nødvendig elementene var igjen. Men produktiviteten og volumer på minnet er økt så antall funksjonen inkludert i SDK blir større. Så forskjellen mellom Compact Framework 1.0 og 2.0 er enorm. Versjon 1.0 ble svært begrenset.
Generelt utvikling av GUI med? Ompact Framework på? # Ligner på utviklingen av den felles Win32-program på C #.
Det er også mulig å utvikle en grafisk grensesnitt ved hjelp av montering av 3D rendering-motorer. De er som GAPI (Game API), OpenGL ES (Embedded System), OPENVG (Vector Graphics), og andre prosjekter. Gjerne det er ganske arbeidskrevende prosessen så langt som det er svært viktig for å skrive en optimal kode på grunn av den relativt lave produktiviteten til mobile enheter.
2.2 Kommunikasjon
Hittil mobile enheter har en rekke alternativer kommunikasjonsutfordringer. De har en tilgang til trådløst høyhastighets nettverk med 802.11 WiFi Connection standard. De bruker også IrDA, Bluetooth og USB host / klient funksjonalitet. Mens bruken av IrDA er gradvis får mindre protokoller og standarder for Bluetooth, WiFi, Edge, GSM, og også USB brukes avslutter ofte.
Microsoft Selskapet tilbyr slike APIer:
ActiveSync API gir funksjonalitet for arbeid med tjenester av synkronisering, arkiv filtre, etc. Bluetooth API inneholder funksjonalitet for trådløs tilgang til mobile og eksterne enheter. Connection Manager API tjener for automatisering av tilkoblingsprosessen, nettverkstilkobling ledelse. Enheter bruker Connection Manager til å opprette forbindelse og også å informere om den antatte forbindelsen (for eksempel Internett). Object Exchange (OBEX) API gir funksjonalitet for arbeid med effektiv, kompakt binær protokoll kun egnet for enheter med begrensede muligheter. Remote API ( RAPI) inneholder funksjoner for administrasjon og eksterne anrop av metoder på enheten side. Slike funksjoner er tilgjengelige: tilgang til registeret, filer, databaser og ulike konfigurasjoner av enheten fra Desktop-systemet. Det viktigste valget er Remote Procedure Call når vi kaller metoden «CeRapiInvoke ()» på skrivebordet siden, overføre navnet DLL på enheten siden og navnet på funksjonen i denne DLL og så bare ringe denne metoden. Pocket Outlook Object Model API gir funksjoner for arbeid med objekter av Pocket Outlook. Det gir grensesnitt for synkronisering og tilgang til objektene: Oppgave, Kalender, Kontakter. Telefoni API (TAPI) inkluderer: Assistert API Utvidet API Telefon API SIM Manager API tekstmeldinger (SMS) API Telefoni Service Provider (TSP) API Wireless Application Protocol (WAP) API.
Også mobile enheter har muligheten til å jobbe med Serial (USB)-porter. Det er noen få COM-porter i mange enheter. Vanligvis den første 3-5 av dem er reservert for IrDA, Bluetooth, SerialPort og andre. Andre porter er tilgjengelige for brukeren. Enkelte enheter har USB-vert funksjonalitet med andre ord er de USB On-The-Go (OTG) enheter som kan fungere både som USB-klient og USB Host. For dette formålet enheten skal ha nødvendig maskinvare og programvare (Device Driver).
Device Driver er en sjåfør som er et mellomsjikt mellom føreren av HOST og nivå av programmer. Slike driver gir «Stream Grenseflate Driver» og må inneholde funksjoner som:
XXX_Init XXX_Open XXX_Close XXX_Write XXX_Read XXX_IOControl
Her «XXX» erstattes med «prefiks» (for eksempel «COM», «DSK»).
Dette prefikset registrerer i registeret når en driver registrene i systemet. Mer detaljert informasjon om Device Driver Interface kan fås fra MSDN.
Også en utvikler kan bruke slike APIene ikke om kommunikasjonsutfordringer seg:
Device Configuration API Arkiv og Application Management API Game API startskjermen API HTML Control API MIDI API Shell API Tale Recognizer API Vibrere API Voice Recorder Control API. 2.3 P / Invoke og Native Interop
Såvidt Compact Framework inneholder grunnleggende funksjoner og metoder fra komplette
Rammene vi har slik funksjonalitet som:
XML-serialisering Kryptografi Security Refleksjon Interop Service et al.
Gjerne Plattform Invoke anrop er tilgjengelig. For dette formålet - samt komplette Framework - vi bruker funksjoner og attributter fra navnerommet System.Runtime.InteropServices og DllImport egenskap for beskrivelse av funksjoner som vil bli kalt fra ikke-forvaltet kode.
Men funksjonaliteten til disse metodene er begrenset. Så Marshal klasse har PtrToStructure, GetComInterfaceForObject, Kopier () og Les () funksjoner, men for eksempel, er det ingen slike funksjon som GetDelegateForFunctionPointer () i den. Så det er umulig å gjøre Marshaling bare med delegat. Den GetFunctionPointerForDelegate funksjonen er bare tilgjengelig. Hvis vi ønsker å overføre en peker til funksjonen fra forvaltet kode vi skulle få sin FunctionPointer, og først etter at oversende den til ikke-administrerte koden for senere kall det derfra. Også vi kan ikke overføre noen objekter fordi Compact Framework ikke kan telle sizeof () for noen objekter. Derfor ofte må vi overføre data over Blitable typer og arrayer av disse typene (int, byte, røye, men ikke bool), og sende og motta klasser og strukturer ved hjelp av IntPtr. Selvfølgelig det er forklart av aspirasjon å øke ytelsen. Det anbefales derfor å bruke primære typer for Marshaling og «GCHandle» klasse for å lagre et objekt i prosessen minnet og å gjøre dette minnet «synlig» for administrerte koden
Gjerne ytelsen til P / Invoke anrop fra C #-program i C + + DLL er nesten dobbelt mindre enn resultatet for metoden samtaler mellom C + + DLLs. Men ytelsen til enhetene vokser og det blir mulig å bruke slike samtaler.
2.4 Feilretting
MS Visual Studio gjør det mulig å foreta feilretting av søknader under
Windows Mobile akkurat de samme som for stasjonære applikasjoner. Vi har Emulator, Device Emulator Manager og andre til funksjonalitet som de svake punktene, tråder, klokker panel etc.
Men for å gjøre feilsøking ved hjelp av Native og administrerte koden er samtidig umulig. Derfor er det mulig å starte enten C + + prosjekter eller Managed seg. Det er også så for «Fest i prosessen». Det er en mulighet for feste til prosesser på enheten siden (eller emulator side). ActiveSync er nødvendig for å tilby kommunikasjon mellom en enhet og systemet, er det installert med SDK. En emulator også kan kobles til datamaskinen ved hjelp av ActiveSync. Vi får nesten komplett emulering av Windows Mobile-enheter. Her er både SmartPhone og Pocket PC (eller Pocket PC Phone Edition) emulatorer. Men bare en Windows Mobile-enhet kan kobles til datamaskinen samtidig øyeblikk. Derfor Debug på to enheter samtidig som for eksempel påvirke på noen måte er ganske vanskelig. Gjerne vi snakker bare om Debug av programmer som er utviklet av oss, men ikke om applikasjoner og tjenester av systemet. For slike debugging trenger vi den komplette bygget av systemet skapt ved hjelp av Platform Builder (de siste versjonene av Platform Builder er det inkludert i Visual Studio). Vi kan også lage vår egen SDK for Visual Studio og Windows CE-plattform.
En emulator gjør det også mulig å etterligne forbindelse med GSM nettverk og GPS-støtte. Det gjør det mulig å teste og utvikle stort spekter av applikasjoner uten å ha en fysisk enhet i hendene.
Snakker om Debug med IDA skal nevnes at versjon 5.1 har allerede mulighet til å utføre feilsøking ved hjelp av dette interaktive disassembler med bruk av plugin deres som er installert på en enhet.
Med SDK utseende slike valg som «Distribuer» vises i Visual Studio miljø. Nå er det «Distribuer» element i prosjektet sammenheng meny i tillegg til "Build", "Rent", "Feilsøk". Når du velger dette elementet DLL eller EXE-fil bygget av gjeldende konfigurasjon overføres til enheten. Også ny kolonne vises i Configuration Manager, hvor ikke bare «Bygge» i noen innstilling er tilgjengelig, men også «Deploy». Distribusjon av. NET prosjekter overfører ikke bare enheten men også de som bygger som er avhengige av det (avhengighet).
Tre. Distribusjon og installasjon
Utvikling av applikasjoner for Windows Mobile forutsetter også deres montering og opprettelsen av installasjonspakken. For dette formålet er det slik konseptet som? Abinet (. CAB)-filen i Windows Mobile. Det er en felles arkiv, men det er en installasjonspakke også (en slags MSI-pakke). Den er satt sammen ved hjelp av Cab Wizard (cabwiz.exe) fra MS Visual Studio (eller fra en kommandolinje). Dette verktøyet gir prosessoren avhengig «. CAB»-fil. WinCEApplicationManager sender og starter CAB på en enhet, slik at brukeren kan installere programmet som bruker instruksjonene som vises på skjermen i enheten. Det er også mulig å lage prosjektet av MSI installasjon som inkluderer CAB-filen ved hjelp av Visual Studio. Dette bygget pakken startes på brukerens datamaskin og deretter overføre? AB installasjon på en enhet for å fortsette installasjonen.
Det er spesielt Uninstall Manager på enheten side. En bør legge konfigurasjonen INI-fil til CAB-fil. Dette INI filen inneholder innstillinger for å håndtere installasjonen slik som vei, snarvei navn for å opprette, minimal OS versjon å installere programmet og andre skrevet i spesiell syntaks. Det er også mulig å inkludere din egen DLL i CAB-filen for å utvide installasjonsalternativer. Denne DLL inneholder funksjoner som «Installer_AfterInstall», «Installer_BeforeInstall», «Installer_AfterUnInstall», «Installer_BeforeUnInstall», kode i disse funksjonene vil bli utført på enheten siden i visse øyeblikk av installering eller avinstallering prosess.
Ved utvikling av CAB installasjonen er det mulig å legge ved filer, ulike ressurser, bygget enheter, legge til informasjon i registret. De er utpekt som «Project Output. Det er grunnen til det er ikke nødvendig å restarte noe etter CAB-fil opprettelse: det vil samle alt inkludert prosjekter og filer og samle seg i et arkiv.
4. Sikkerhet Modell for Windows Mobile 5 og Windows Mobile 6
Enheter basert på Windows Mobile motta, sende og analysere potensielt viktig informasjon som bør beskyttes mot usikre programmer. For å beskytte enheten igangsettingen av ukjente programmer er deaktivert, er tilgang til noen API begrenset og noe register deler endring er forbudt. Enheter kan være merket som klarerte og klarert, og systemet bruker denne informasjonen til å hindre igangsetting av uautoriserte programmer og begrense deres tilgang til systemet. Også tilgang til systemet ved hjelp av RAPI (Remote API) gjennom ActiveSync kan begrenses. Sikkerhetssertifikater Sikkerhet Rettigheter brukes for kjørbare enheter (EXE, DLL) og for CAB-filer.
Beskyttelse mot trusler og risiko
De followings alternativene bidrar til å beskytte enheter:
Strenge passordbeskyttelse. PIN-kode beskyttelse. Enheter korrupte slettet informasjon for å hindre tilgang til den (WM 6). Enheter korrupte slettet informasjon på minnekort for å hindre tilgang til den (WM 6). Storages kryptering og Advanced Encryption Standard for SSL (WM 6). Egne sertifikater bruk. Oppdager en enhet via Bluetooth kan være beskyttet (WM 6 Smartphone). 2-lags system av programmet starter (One-lags og to-lags-tilgang). Ingen støtte for makroer, kan derfor virus gjøre mye skade.
Starten av programmer er basert på tillatelser. Windows Mobile-enheter bruker slike modeller:
Privilegert Normal Blokkerte
Priviligerte programmer har det bredeste tilgang. De kan få tilgang til alle API, skriver i det beskyttede områdene av register og har full tilgang til systemet.
De fleste programmer har Normal modellen. De har ikke tilgang til klarerte API og ikke har full kontroll over systemet.
Søknad kan ikke startes i det hele tatt hvis det har "Blokkert"-status. Det betyr at den ikke er signert med riktige sertifikatet eller brukeren forbød starte med riktig varsling av systemet.
Analogisk situasjonen er med Cab-filer. Den kjørbare enheter med normal status kan starte privilegerte DLL men de vil fungere som normalt. Men Privilegert kjørbar enheter kan ikke starte enhetene har Normal status.