950 likes | 1.09k Views
Mopoid. Andreas Jakl munkafüzete alapján készítette Szabóné Nacsa Rozália. Okos telefonok. erős processzor nagyméretű kijelző viszonylag nagy memória információ kezelő programok egyéni alkalmazások. egyszerű kezelhetőség megbízhatóság
E N D
Mopoid Andreas Jakl munkafüzete alapján készítette Szabóné Nacsa Rozália
Okos telefonok • erős processzor • nagyméretű kijelző • viszonylag nagy memória • információ kezelő programok • egyéni alkalmazások • egyszerű kezelhetőség • megbízhatóság • erőforrásaival nem pazarló (memória, szolgáltatások, energia fogyasztás) • gyors reakcióidő • folyamatos üzemmód
Elvárosok • megbízható • nincs adatvesztés • nem dobja el a vonalat • optimális a memória felhasználás • nincs memória szivárgás • minden hibát „értelmesen” kezel • nyitott a külső fejlesztések irányába
Symbian operációs rendszer • SIBO – Psion Computers (1980) • EPOC - irodai kisszámítógép (1980-1998) • Symbian OS – (alapítva 1998 : Nokia, Motorola, Psion, Ericsson, 2002: Sony-Ericssson, Siemens) • Mérföldkő: 2000-ben megjelent 6.0-ás verzió
Előkészületek Perl 5.6.x (Set thepathvariable!) –5.8 /5.10 nem jó!http://downloads.activestate.com/ActivePerl/Windows/5.6/ActivePerl-5.6.1.638-MSWin32-x86.msi SDK(s)(S60 3rd Ed. MR + újabb)http://www.forum.nokia.com/Resources_and_Information/Tools/Platforms/S60_Platform_SDKs/ Carbide.c++ 2.0 Developer Edition (vagy újabb)http://www.forum.nokia.com/main/resources/tools_and_sdks/carbide/index.html Eszközök telepítése a felsorolás sorrendjében történjen Az eszközöket ugyanarra a meghajtóra kell telepíteni, ahol az SDK van.(javasolt: C:\. Ne használjon hálózati meghajtót! Fájl nevekben ne hasnáljon helyközt.)
Segédanyagok • www.symbian.com/books • www.symbian.com/developer • www.symbian.developer/public/index.html • http://forum.nokia.com/main.html • SDK online dokumentáció:C:\S60\devices\S60_3rd_FP2_SDK_v1.1\docs\eclipse.exe
S60 és UIQ S 60 Applicationsuites UIQ UI implementation MOAP UI framework Symbian OS HW adaptation Hardware
Új projekt létrehozása 1 3 2 4
A fordítás és szerkesztés folyamata .bmp Bmp konverter <.h> „.h” .rsg .hrh .rh .rls .rss .bmp .mbm .rss .cpp C++ fordító Erőforrás fordító Bmp konverter Aif fordító .obj .lib .rsc .pkg .mbm .aif linker Sis készítő .exe; .dll .sis
A projekt tesztelése 1 3 2 4
Hibakezelés Window -> Preferences -> Carbide.c++ -> Build
Menüpont paraméterezése EAknCmdExit: Előre definiált parancs azonosító
Címke felirat módosítása Dupla katt.
Eseménykezelés 2 3 1 4
Eseménykezelő eljárás megadása TBoolCMopoidContainerView::HandleAboutMenuItemSelectedL( TIntaCommand ) { // TODO: implementselectedeventhandler RunNoteAboutL(); returnETrue; }
new (Eleave) operátor CCat* InitalizeCat() { CCat* cat = newCCat(); if(cat) { cat->Initialize(); return(cat); } else return (NULL); } CCat* InitalizeCatL() { CCat* cat = new (ELeave) CCat(); cat->Initialize(); return(cat); }
C++ Symbian Kivételkezelési konvenciók • Throw • Catch • Függvénydeklaráció: Throw • new operátor: nullát ad vissza • User::Leave • TRAP, TRAPD • záró L • new (ELeave): kivételt dob, ha nincs memória
Leave mechanizmus CCat* InitalizeCatL() { CCat* cat = new (ELeave) CCat(); cat->Initialize(); return(cat); } Leaveléskor a CleanUpStack-be bejegyzett objektumok tárhelye felszabadul. Nem biztonságos! CCat* InitalizeCatL() { CCat* cat = new (ELeave) CCat(); cat->InitializeL(); return(cat); } TIntUseCat(CCat* aCat); CCat* InitalizeCatL() { CCat* cat = new (ELeave) CCat(); CleanUpStack::PushL(cat); cat->InitializeL(); User::LeaveIfError(UseCat(cat)); CleanUpStack::PopCat); return(cat); }
Leavelő függvények: *LC, * LD, * L /** * Show thepopupnotefornoteAbout * @paramaOverrideTextoptionaloverride text */ voidCMopoidContainerView::RunNoteAboutL( constTDesC* aOverrideText ) { CAknInformationNote* note = new ( ELeave ) CAknInformationNote(); if ( aOverrideText == NULL ) { HBufC* noteText = StringLoader::LoadLC( R_MOPOID_CONTAINER_NOTE_ABOUT ); note->ExecuteLD( *noteText ); CleanupStack::PopAndDestroy( noteText ); } else { note->ExecuteLD( *aOverrideText ); } }
Könyvtárak megadása 1 3 bitgdi.lib mediaclientaudio.lib mediaclentimage.lib 2
Erőforrás fájl, többnyelvűség Mopoid.rls xxx.cpp #include <Mopoid.rsg> Mopoid.rss
Saját hang és adatfájlok Minden alkalmazásnak van egy privát könyvtára, amelyet az ő egyedi azonosítója (uid3) azonosít. Az alkalmazáshoz szükséges fájlokat itt kell elhelyezni.
Fájlok elhelyezése a készüléken Mopoid.pkg ;Language - standard languagedefinitions &EN ; standard SIS file header #{"Mopoid"},(0xEA90DC99),1,0,0 ;LocalisedVendorname %{"Vendor-EN"} ;UniqueVendorname :"Vendor" ;Supports Series 60 v 3.0 [0x101F7961], 0, 0, 0, {"Series60ProductID"} ;Filestoinstall ;Youshouldchangethesourcepathstomatchthat of yourenvironment ;<source> <destination> "$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\Mopoid.exe" -"!:\sys\bin\Mopoid.exe" "$(EPOCROOT)Epoc32\data\z\resource\apps\Mopoid.r01" -"!:\resource\apps\Mopoid.r01" "$(EPOCROOT)Epoc32\data\z\private\10003a3f\apps\Mopoid_reg.r01" -"!:\private\10003a3f\import\apps\Mopoid_reg.r01" "$(EPOCROOT)epoc32\data\z\resource\apps\Mopoid_aif.mif" -"!:\resource\apps\Mopoid_aif.mif" "$(EPOCROOT)epoc32\data\z\resource\apps\Mopoid.mbm" -"!:\resource\apps\Mopoid.mbm" ; Add anyinstallationnotesifapplicable ;"Mopoid.txt" -"!:\private\0xEA90DC99\Mopoid.txt" "$(EPOCROOT)epoc32\data\z\resource\apps\MopoidGraphics.mif" -"!:\resource\apps\MopoidGraphics.mif" • "..\gfx\hit.wav" -"!:\private\EA90DC99\hit.wav" • "..\gfx\bounce.wav" -"!:\private\EA90DC99\bounce.wav" • "..\gfx\levels.dat" -"!:\private\EA90DC99\levels.dat" ; Requiredfortheapplicationto be coveredby backup/restorefacility • "..\sis\backup_registration.xml" -"!:\private\EA90DC99\backup_registration.xml" ! jelentése: Telepítéskor megkérdezi, hová tegye a fájlokat.