Presentation is loading. Please wait.

Presentation is loading. Please wait.

Symbian Programming Overview. 6.893 Spring 2004: Symbian Larry Rudolph How to program Cellphone? Limited to Series 60 phones Java MidP 2.0 (see wiki,

Similar presentations


Presentation on theme: "Symbian Programming Overview. 6.893 Spring 2004: Symbian Larry Rudolph How to program Cellphone? Limited to Series 60 phones Java MidP 2.0 (see wiki,"— Presentation transcript:

1 Symbian Programming Overview

2 6.893 Spring 2004: Symbian Larry Rudolph How to program Cellphone? Limited to Series 60 phones Java MidP 2.0 (see wiki, forums) compile offline and load limited API C++ full API non-standard C++ Python -- coming soon

3 6.893 Spring 2004: Symbian Larry Rudolph Getting App onto Phone Compile application into.app Create package file (.pkg) resources files, libraries including a digitally signed certificate -- authentication -- and author’s key (.cer and.key) Installation file (.sis) via makesis tool Transfer to phone via email or bluetooth and then user installs

4 6.893 Spring 2004: Symbian Larry Rudolph Overview of Symbian Symbian is a company that produces an operating system Originally developed for handheld Psion and called Epoc Operating System Symbian is 40% owned by Nokia, partly owned by Sony Ericson, partly owned by Psion, and others Require 70% agreement to make basic changes

5 6.893 Spring 2004: Symbian Larry Rudolph A little history Started in early days of C++ Goal to be real-time small footprint small touch-screen integrated secure & reliable

6 6.893 Spring 2004: Symbian Larry Rudolph Biggest Security Flaws Applications must be certified If not certified, user choice to continue Applications either GUI or Server a server app can easily hide File system not fully exposed to user File system has no access control lists despite kernel/user execution, any application can do anything Application can control all keys

7 6.893 Spring 2004: Symbian Larry Rudolph Biggest Programming Issue System may run for years Persistent state across power downs addressbook application may never terminate Small memory leaks accumulate over time Must write perfect leak-free code! unachievable goal try anyway

8 6.893 Spring 2004: Symbian Larry Rudolph Why will there be Memory Leaks No garbage collection No memory protection no page tables No “try”, “throw”, “catch” operating systems calls trap harness and leave Silly naming conventions

9 6.893 Spring 2004: Symbian Larry Rudolph Keep track of all allocated objects Always keep live pointer to anything allocated in heap can use pointer to deallocate extra care when constructing compound classes Deallocate after use

10 6.893 Spring 2004: Symbian Larry Rudolph Stacks Objects allocated at top of stack Top of stack disappears when procedure returns Cannot construct objects on stack since they maybe constructed in procedure Objects go in heap No reference counts on objects

11 6.893 Spring 2004: Symbian Larry Rudolph Heap allocation Within one procedure: Allocate pointer to heap object Allocate (construct) object on heap Use object Deallocate object on heap Deallocate pointer to heap object

12 6.893 Spring 2004: Symbian Larry Rudolph Pointer to object not on stack If pointer is on stack, what happens when there is an exception? may pop out several levels of stack Need to put objects on different type of stack one that does not disappear during exception keep pointers in heap on “cleanup stack”

13 6.893 Spring 2004: Symbian Larry Rudolph Cleanup Stack Cleanup Stack resides in heap what if Construct causes exception? Class* self = new(ELeave) Class(aInt) CleanupStack::PushL(self) self->Construct(aObj); CleanupStack::Pop(self);

14 6.893 Spring 2004: Symbian Larry Rudolph Exception Handling On exception, cleanup stack is popped and objects are removed. (always check for null pointers) Exceptions may be handled far back in time of program execution

15 6.893 Spring 2004: Symbian Larry Rudolph In the days before “try” TRAPD(error, callExampleL() ); void CreateObject() { Object* obj = new (ELeave) Object Trapd is a trap harness It calls proceedure callExample() Normal return, TRAPD continues Exception, has error set to code

16 6.893 Spring 2004: Symbian Larry Rudolph Throwing exceptions User::Leave() of allocation runs out of memory in a new(ELeave)

17 6.893 Spring 2004: Symbian Larry Rudolph Descriptors TBuf TBufC HBufC TPtr TPtrC

18 6.893 Spring 2004: Symbian Larry Rudolph Active Scheduler Non-preemptive scheduler Create a scheduler Post wait for event(s) Return to scheduler Handle event

19 6.893 Spring 2004: Symbian Larry Rudolph

20 O2S How it helps you Overcome firewalls Overcome IP address, Dynamic DNS do not have to program in the names of all services & devices Publish and subscribe facility HUB is useful resource Python based UI independence

21 6.893 Spring 2004: Symbian Larry Rudolph O2S Planner Better support for publish-subscribe Easier to piece together application Better Human support

22 6.893 Spring 2004: Symbian Larry Rudolph More on O2S Branch in O2S CVS directory easier to ask for help Name stuff based on group name can easily find each other

23 6.893 Spring 2004: Symbian Larry Rudolph Eye-toy Playstation 2 game Camera watches user Identify body outline, especially hands and head Hands punch virtual characters Head hits balloon or soccer ball

24 6.893 Spring 2004: Symbian Larry Rudolph Mosquito


Download ppt "Symbian Programming Overview. 6.893 Spring 2004: Symbian Larry Rudolph How to program Cellphone? Limited to Series 60 phones Java MidP 2.0 (see wiki,"

Similar presentations


Ads by Google