symbian programming overview l.
Skip this Video
Loading SlideShow in 5 Seconds..
Symbian Programming Overview PowerPoint Presentation
Download Presentation
Symbian Programming Overview

Loading in 2 Seconds...

play fullscreen
1 / 24

Symbian Programming Overview - PowerPoint PPT Presentation

  • Uploaded on

Symbian Programming Overview 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 Getting App onto Phone Compile application into .app

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

Symbian Programming Overview

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
how to program cellphone
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
getting app onto phone
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
overview of symbian
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
a little history
A little history
  • Started in early days of C++
  • Goal to be
    • real-time
    • small footprint
    • small touch-screen
    • integrated
    • secure & reliable
biggest security flaws
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
biggest programming issue
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
why will there be memory leaks
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
keep track of all allocated objects
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
  • 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
heap allocation
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
pointer to object not on stack
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”
cleanup stack
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);
exception handling
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
in the days before try
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
throwing exceptions
Throwing exceptions
  • User::Leave()
  • of allocation runs out of memory in a
  • new(ELeave)
  • TBuf
  • TBufC
  • HBufC
  • TPtr
  • TPtrC
active scheduler
Active Scheduler
  • Non-preemptive scheduler
  • Create a scheduler
  • Post wait for event(s)
  • Return to scheduler
  • Handle event
o2s how it helps you
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
o2s planner
O2S Planner
  • Better support for publish-subscribe
  • Easier to piece together application
  • Better Human support
more on o2s
More on O2S
  • Branch in O2S CVS directory
    • easier to ask for help
  • Name stuff based on group name
    • can easily find each other
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