Symbian Programming Overview - PowerPoint PPT Presentation

About This Presentation
Title:

Symbian Programming Overview

Description:

Installation file (.sis) via makesis tool ... Class* self = new(ELeave) Class(aInt) CleanupStack::PushL(self) self- Construct(aObj) ... – PowerPoint PPT presentation

Number of Views:137
Avg rating:3.0/5.0
Slides: 25
Provided by: csgCsa
Learn more at: http://csg.csail.mit.edu
Category:

less

Transcript and Presenter's Notes

Title: Symbian Programming Overview


1
Symbian Programming Overview
2
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
Getting App onto Phone
  • Compile application into .app
  • Create package file (.pkg)
  • resources files, libraries
  • including a digitally signed certificate --
    authentication -- and authors key (.cer and
    .key)
  • Installation file (.sis) via makesis tool
  • Transfer to phone via email or bluetooth and
    then user installs

4
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
A little history
  • Started in early days of C
  • Goal to be
  • real-time
  • small footprint
  • small touch-screen
  • integrated
  • secure reliable

6
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
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
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
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
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
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
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
Cleanup Stack
  • Cleanup Stack resides in heap
  • what if Construct causes exception?
  • Class self new(ELeave) Class(aInt)
  • CleanupStackPushL(self)
  • self-gtConstruct(aObj)
  • CleanupStackPop(self)

14
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
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
Throwing exceptions
  • UserLeave()
  • of allocation runs out of memory in a
  • new(ELeave)

17
Descriptors
  • TBuf
  • TBufC
  • HBufC
  • TPtr
  • TPtrC

18
Active Scheduler
  • Non-preemptive scheduler
  • Create a scheduler
  • Post wait for event(s)
  • Return to scheduler
  • Handle event

19
(No Transcript)
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
O2S Planner
  • Better support for publish-subscribe
  • Easier to piece together application
  • Better Human support

22
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
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
Mosquito
Write a Comment
User Comments (0)
About PowerShow.com