VÝVOJ APLIKACÍ PRO SYMBAIN OS připravil Karel Pechanec

Transkript

VÝVOJ APLIKACÍ PRO SYMBAIN OS připravil Karel Pechanec
Ú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

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. ...

Více

Rozhraní pro data zásilek MPSEXPDATA / MPSEXPDATA

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...

Více

1. Seznámení s C++ Builderem

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á...

Více

Stáhnout PDF

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 ...

Více

Matching tables

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...

Více

Diplomová práce Veroniky Černohorské

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...

Více

Předvolby - Trinom.org

Předvolby - Trinom.org Nejběžnější funkce prohlížeče a editoru.................... 127 Aplikace Quickword.................................................... 128 Aplikace Quicksheet .........................................

Více

Manuál v PDF - Mobils.wz

Manuál v PDF - Mobils.wz shodě s příslušnými předpisy, jednejte vždy podle následujících pokynů.

Více