VÝVOJ APLIKACÍ PRO SYMBAIN OS připravil Karel Pechanec
Transkript
ÚVOD K VÝVOJI APLIKACÍ PRO SYMBIAN OS připravil Karel Pechanec [[email protected]] Co je Symbian OS? Moderní operační systém pro novou generaci mobilních telefonů vzešel z uznávaného systému EPOC Poskytuje standardní API a framework pro vývojáře nativních aplikací pro mobilní telefony Zajišťuje aplikacím bezpečný přístup ke všem I/O funkcím telefonu (display, klávesnice, paměť, GSM,SMS,...) Systém vyvíjí a podporuje sdružení výrobců mobilních telefonů - Symbian (Sony Ericsson, Nokia, Siemens, Samsung...) Součastná situace Verze 7 Mobilní telefony s podporou SymbianOS Ericsson R380 Smartphone (v5.0 - první telefon) Nokia Communicator ( v6.0 Crystal SDK) Nokia 7650 (v6.1 Series60 SDK) Ericsson P800 (v7 UIQ SDK) Nokia 3650 (v7 Series 60) Co nabízí Symbian OS vývojáři? vývoj nativních aplikací pro mobilní telefon v C/C++ přináší standart - definuje API, datové typy, třídy a knihovny přístup ke všem vlastnostem a informacím na telefonu kontakty, zprávy, kalendář, hovory... networking - TCP/IP, HTTP,POP3,SMTP GSM/GPRS phoning - hlasový&datový přenos,WAP, SMS, EMS, MMS communication - Infrared, bluetooth, serial port multimedia support - podpora pro audio,video a zpracování grafiky a obrázků rozšiřitelné UI - klávesnice, ovládání aplikace, menu,... popora Javy - PersonalJava 3.0, JVM a JavaPhone 1.0 API SDK od výrobce Symbian OS mobilní telefon architektura „klasického počítače“ ARM RISC 32bit procesor, MMU,Cache System-On-Chip architektura ( timer, řadič, UART seriový port...) Periferní zařízení telefonu (LCD, keyboard, Audio, pamět ROM/RAM,flash, infrared...) výrobce zajišťuje portaci Symbian OS na svůj telefon k hardware přistupuje přímo kernel a ovladač Symbian OS aplikace Nokia Series 60 phone Series60 definuje UI a funkční nabídku pro telefony Nokia (7650, 3650) Symbian OS je funkčně portován a rozšířen o podporu Series60 telefonů Symbian Series 60 SDK je plnohodnotné prostředí na vývoj Symbian OS aplikací pro Nokia7650 + Symbian = OS + Series60 Series60 SDK obsahuje Symbian OS API v6.1 gcc kompilátor aplikací a resources pro platformu ARMI a WINS (pro testování) dll a lib knihovny pro ARMI a WINS (emulator) nástroje a perl scripty pro tvorbu Makefile (bldmake, abld,...) nástroje pro integraci do prostředí MS Visual C++ 6.0 nástroje pro tvorbu základní struktury aplikace (MEAD) nástroj pro tvorbu instalačních balíčků SIS (makesis) nástroj pro konverzi bitmap BMP na MBM (bmconv) emulátor Series60 telefonu pro platformu WINS (EPOC) Architektura OS Subsystem BASE Obsahuje základní součásti sytému jako je kernel, ovladače a knihovny. Definuje následující typy, třídy a API: základní datové typy (numerické, znakové, logické),pole, seznamy, řetězce,... funkce a třídy pro práci s poli a řetězci funkce, typy a třídy pro práci s časem funkce pro práci se speciálními soubory (resources) funkce a třídy pro práci se soubory a pamětí matematické funkce funkce pro práci s thready C Standart Library BASE - základní datové typy definovány v <e32def.h> Numerické (celočíselné): TInt, TInt32 (long int), TInt16 (short int), TInt8 (signed int) Numerické (real): TReal, TReal64 (double) , TReal32 (float) - práce s desetinou čárkou podle normy IEEE754 Znakové: TText, TText8(unsigned char), TText16 (signed char) Logické: TBool (int) - nabývá hodnoty ETrue, EFalse) BASE - řetězce I v Symbian OS jsou označovány jako „Descriptors“ 8bit nebo 16bit (Unicode) Base - řetězce II dva základní abstraktní typy: TDes (modificable) a TDesC (non-modificable) TDes může být typu: TBuf (stack buffer) - obsahuje data, která můžou být měněna, délka je známa v době kompilace maximální TPtr (pointer) - odkazuje se na nějaký buffer. TDesC odvozené obsahují funkce pouze pro čtení a přístup ke znakům, nelze měnit jejich obsah. TBufC (constant stack buffer) - obsahuje data, ktera jsou známa v době překladu, a nemůže být změněn. TPtrC (pointer to constant) Subsystem GRAPHICS obsahuje API pro klasické „deskové kreslení oken, fontů a obrázků obsahuje rozhraní Window Server Client API, pro přístup, vykreslování, a práci s okny Definuje následující typy, třídy a API: třídy pro přístup ke grafickému zařízení a kreslící ploše (CGraphicsDevice a CGraphicsContext) třídy pro práci s bitmapami (CBitmapContext, CFbsBitmap) třídy pro práci s fonty a psaní (CFont,...) třídy a funkce pro podporu low-level grafických akcí a animací (bit bliting, offscreen bitmapy,...) Application Framework I definuje strukturu aplikace a vzájemné vztahy uvnitř mezi aplikací, daty, grafickým výstupem a UI model „document-view“ používá se pro vytvoření základní struktury aplikace Application Framework II Životní cyklus aplikace s použitím AF: • Operační systém po spuštění aplikace volá funkci EXPORT_C CApaApplication* NewApplication(), která vytváří instanci třídy CEikApplication. • Při inicializaci třídy se volá virtuální funkce CreateDocumentL() která vytváří a vrací dokument aplikace. • Vytvořený dokument při své inicializaci volá virtuální funkci CreateAppUiL(), která vytváří a vrací UI dokumentu CEikAppUi(). • Instance UI obsahuje třídy pohledů (views) odvozené od základní třídy CCoeControl. • Instance CCoeControl obsahuje virtuální funkci Draw(const TRect& aRect) const, kterou systém volá při každém požadavku na překleslení pohledu (např. funkcí DrawNow(). • Běžící instance UI dává pokyn k ukončení aplikace voláním funkce Exit(),dochází k volání destruktorů jednotlivých částí frameworku. Application Framework III CEikApplication (CAknApplication) zapouzdřuje inicializaci aplikace a low-level objekty, vytváří hlavní aplikační thread slouží jako zdroj „dokumentu“ CEikDocument (CAknDocument) pro file-based aplikace poskytuje rozhraní mezi UI a fyzickým souborem obsahuje instanci UI CEikAppUi (CAknAppUi) základní handler pro uživatelský vstup a akce nad aplikací (zkrz toolbar, menu, pop-up menu, klávesové zkratky,...) aplikace může mít pouze jedno UI, ale více pohledů CCoeControl základní třída pro všechny grafické prvky (okna, dialogy, pohledy, tlačítka, editboxy, listboxy, popisky,...) může být použit jako základní pohled aplikace Application Engines používají se pro přístup k základním datům a aplikacím které jsou součástí telefonu CContactDatabase zajišťuje přístup k databázi kontaktů, vyhledávání, přidávání kontaktů i popisků. CContactItem představuje jeden kontakt, CContactItemField jednotlivý popisek agenda (kalendář a plánovač) COMMS Infrastructure obsahuje framework a systémové služby pro přístup a práci se síťovým rozhraním a internetem CommDb - systémové rozhraní pro práci s komunikačními protokoly(IAP,ISP, GPRS, modem, WAP,proxies). CCommsDatabase NifMan - poskytuje funkce pro základní práci se sítí (navazování spojení IAP,ISP, routovaní,...). Plug-in architektura zajišťuje přidávání jednotlivých funkční modulů (např. Generic Agent pro DialUp připojení ) Sockets Client - obsahuje klientskou podporu pro EPOC sockety (obdoba BSD), TCP/IP protokol a IrDA sokety (dále viz networking) Sockets Server - obsahuje funkce pro vytváření síťových služeb (TCP/IP server, IrDA server...) Networking Generic Agent - zajišťuje dial-up připojení k ISP (nahrazuje NetDial). TCP/IP - přístupné přes rozhraní RSocket DNS - přístupné přes rozhraní RHostResolver IP adresa - typ TInetAddr použití v client/server internetových aplikacích WAP Stack I podpora WAP 1.1 (protokoly WSP, WTP, WDP) EPOC Wap server je označení rozhraní s přístupem k Wap funkcím telefonu. (RWAPServ) WSP (Wireless Session Protocol) je přístupný pomocí rozhraní RWSPCLConn (RWSCLConn::Open()) WDP (Wireless Datagram Protocol) přístupný pomocí rozhraní RWDPConn(RWDPConn::Open(), Send(), Recv()) použití ve wap browserech, pro předávaní dat přes wap,atp. WAP Stack II RWAPServ ecpocws; //connect to epoc wap server epocws.Connect(); ... _LIT8(wapserver,"http://wap.oskarmobil.cz"); TPort port=80; //standart http port RWDPConn wdpconn; //openning wap session with wapserver wdpconn.Open(epocws,wapserver,port,TBearer::EAll,Efalse); ... TDesC8<255> sendbuff=_L8("GET http://wap.oskarmobil.cz/index.wml HTTP/1.1"); //send HTML request wdpconn.Send(sendbuff); //start time counting - multithreading ... TRequestStatus status; TDesC8<255> recvbuff; //receive HTML response wdpconn.Recv(wapserver,port,recvbuff,status); //stop time counting ... //analysing time, status and recvbuff... ... Serial ports & Infra Red I podpora IrDA (Infrared Data Association) serial portů a IrDA socketů k infrared se přistupuje přes EPOC Serial Port (RComm) a EPOC COMM Server (RCommSrv) s modulem IrCOMM (ovladač ircomm.csy) používá se ke komunikaci s PC nebo jiným zařízením Infra Red II LIT8(KTxtIRCOMM,"IRCOMM"); _LIT8(KTxt0,"IrCOMM::0"); TInt ret; TRequestStatus stat; RCommServ commserv; // // CONNECT TO COMMSERV // commserv.Connect(); // // LOAD IRCOMM.CSY // if (commserv.LoadCommModule(KTxtIRCOMM) ==KErrNone) { // OPEN IrCOMM SERIAL PORT // RComm ircomm; ret = ircomm.Open(cs,KTxt0,ECommExclusive); //SEND HELLO TO PC _LIT8(KTxtData,"hello PC!\f"); ircomm.Write(stat,KTxtData); User::WaitForRequest(stat);} Messaging podpora pro práci s SMS, EMS, MMS podpora pro odesílání a příjem emailů (SMTP,POP3, IMAP) Message type module (MTM) zajišťuje prácí s low-level rozhraním (GSM/GPRS, TCP/IP,...) MTM moduly: Fax, IMAP4, POP3, SMTP, SMS CBaseServerMtm zajišťuje přenos daného typu zprávy přes odpovídající protokol CBaseMtmUi zajišťuje jednoduchý přístup na GUI telefonu pro práci se zvoleným typem zprávy Message Server (MSV) zajišťuje přístup ke zprávám a komunikaci s MTM CMsvSession zajišťuje přístup a vytvoření session s MSV CMsvStore zajišťuje přístup k systémovému souboru se zprávami a přístup k jednotlivým položkám CMsvEntry obsahuje funkce pro manipulaci se zprávou TMsvEntry - struktura pro popis zprávy 3 typy message aplikací:message aware, inter-process, fullfeatured Messaging II Telephony I EPOC Telephony (ETel) zajišťuje přístup k funkcím klasickému „telefonu“ - umožňuje vytáčet a přijímat telefoní hovory, analyzovat je, atp. Root Session (RTelServer) - navazuje spojení s ETel serverem a vytváří session RPhone - rozhraní pro přístup k informacím „telefonu“ a jeho funkcím RLine - presentuje telefoní linku (1-n) RCall - presentuje „volání (hovor) na lince“ (0-n). Rozhraní pro ovládání hovoru - zvednutí/položení sluchátka, informace o délce hovorů, atp. TSY moduly - ovladače pro ruzné typy a funkce telefonů Telephony II Architektura OS: Review Series60 SDK obsahuje Symbian OS API v6.1 gcc kompilátor aplikací a resources pro platformu ARMI a WINS (pro testování) dll a lib knihovny pro ARMI a WINS (emulator) nástroje a perl scripty pro tvorbu Makefile (bldmake, abld,...) nástroje pro integraci do prostředí MS Visual C++ nástroje pro tvorbu základní struktury aplikace (MEAD) nástroj pro tvorbu instalačních balíčků SIS (makesis) nástroj pro konverzi bitmap BMP na MBM (bmconv) emulátor Series60 telefonu pro platformu WINS Instalace SDK http://www.forum.nokia.com/tools nastavení systémové proměnné EPOCROOT = \Symbian\6.1\Series60\ PATH = %PATH%; C:\Symbian\6.1\Shared\epoc32\gcc\bin;C:\Symbian\6. 1\Shared\epoc32\tools instalace „AppWizardu“ - Visual C++ modulu pro rychlé vytvoření základní kostry aplikace (aplikačního frameworku) copy C:\Symbian\6.1\Series60\Series60Tools\ApplicationWizard\* C:\Program Files\Microsoft VisualStudio\Common\MSDev98\* Důležité adresáře EPOCROOT .\epoc32\build\ - obsahuje makefiles a project files aplikace .\epoc32\include - obsahuje hlavičkové soubory .\epoc32\release - obsahuje image systému a zkompilované verze aplikací pro různé platformy (ARMI, WINS) .\Epoc32\Release\ARMI - obsahuje zkompilované binárky aplikací pro ARMI .\epoc32\release\wins\UDEB\Z - obsahuje „c disk“ emulátoru .\epoc32Ex, .\Series60Ex - obsahuje vzorové aplikace SymbianOS v6.1 kompatibilní ..\shared\Epoc32\gcc, ..\shared\epoc32\tools - obsahuje C++ kompilátor a nástroje pro tvorbu aplikací Symbian OS aplikace Typy projektových souborů ./group/myFirst.MMP - definuje projekt, co a kam se má zkompilovat, definuje INCLUDE adresáře, SOURCE zdrojové soubory - může definovat MBM bitmapy které se mají vytvořit a AIF soubor ./data/myFirst.RSS, ./data/*.RSS - zdrojový soubor resources - definuje menu, popup menu, status bar, dialogy, popisky, textové konstanty - může definovat AIF soubor (název aplikace, ikony, atp.) ./include/*.HRH - hlavičkové soubory pro resources ./include/*.LOC - definice řetězců pro lokalizaci ./install/MyFirst.PKG - definuje instalační balíček SIS - jak, co a kam se má nainstalovat Build process Tvorba instalací pro tvorbu instalačních SIS balíčků se používá utilita makesis # makesis myFirst.pkg definice aplikace v souborech *.PKG - určení co a kam se má nainstalovat instalaci lze podepsat a ověřit digitálním podpisem SIS soubor lze instalovat z PC i přímo z mobilního telefonu &jazyk #{„Nazev¨_aplikace"},(APPLICATION_UID), VERSION,SUBVERSION,SUBVERSION (0x101F6F88), 0, 0, 0, {"Series60ProductID"} "local_file1" - “!:\destination_file1“ "local_file2" - “!:\destination_file2“ ... Důležité odkazy http://www.symbian.com - oficiální stránka sdružení symbian http://www3.symbian.com/faq.nsf - symbian developer network, praktické zkušenosti vývojářů http://www.forum.nokia.com/ - stránky věnované produktům Nokia
Podobné dokumenty
LEVÉ KŘÍDLO PRŮMYSLOVÉHO PALÁCE
SIMPSON STRONG-TIE s.r.o.
SORTIM PRAHA, s.r.o.
SOUKUP s.r.o.
STAR OKNA s.r.o.
STAVEX Kutná Hora s.r.o.
Stavokonzult – René Růžička
Střední škola stavební a zahradnická
STAVONA s.r.o. ...
Rozhraní pro data zásilek MPSEXPDATA / MPSEXPDATA
Sloupec DELIVERYDATE přesunut z HEADER do subtypu DELIVERY a
rozšířen o interval (DELIVERYDATE_FROM, DELIVERYDATE_TO)
Přidán MSGLANG1-5 v subtypu MSG pro podporu NLS
ILN číslo (International Locati...
1. Seznámení s C++ Builderem
5. Nejdůležitější vlastností je vlastnost Name (jméno). Pomocí této vlastnosti se odkazujeme na formulář, případně na jiné objekty umístěné na formuláři. Hodnota této vlastnosti musí být identifiká...
Stáhnout PDF
19x2mm 22x0,45mm 22x1mm 22x2mm 28x2mm
42x2mm 54x2mm 405x0,45mm 405x1mm
405x2mm 22x0,45mm lep.
19x2mm 22x0,45mm 22x1mm 22x2mm 23x2mm
28x2mm 42x1mm 42x2mm 54x2mm 405x0,45mm
405x1mm 405x2mm 22x0,45mm ...
Matching tables
22x0,45mm 22x0,8mm 22x2mm 42x2mm 260x2mm
275x0,45mm 275x0,8mm 22x0,45mm Preglued
22x0,45mm 22x1mm 22x2mm 28x2mm 42x2mm
340x1mm 405x0,45mm 405x2mm 22x0,45mm
Preglued
22x0,45mm 22x0,8mm 22x2mm 42x2mm...
Diplomová práce Veroniky Černohorské
Tato diplomová práce se zabývá návrhem a implementací edukační hry pro děti s diabetem I. typu. Zahrnuje analýzu existujících vzdělávacích materiálů určených pro diabetické
děti. Popisuje tvorbu hr...
Předvolby - Trinom.org
Nejběžnější funkce prohlížeče a editoru.................... 127
Aplikace Quickword.................................................... 128
Aplikace Quicksheet .........................................
Manuál v PDF - Mobils.wz
shodě s příslušnými předpisy, jednejte vždy podle následujících pokynů.