SM3121 Software Technology
Download
Report
Transcript SM3121 Software Technology
SM3121
Software Technology
Mark Green
School of Creative Media
Introduction
How
do we develop applications for small
devices?
What types of software are available?
What software can we use to build stuff for
these things?
The production process is somewhat
different due to the small size of the
devices
Embedded Software
The
technical CS term for this
Not using a general purpose computer
Content / software not developed on the
device itself
Limited to no tools available on the device
Device can be a hostile environment
For
PCs we can develop, test and use on
the same computer, simplifies the
production process
Embedded Software
Can’t
write programs or edit videos on a
mobile phone – just doesn’t work
We need to use a computer to produce the
content and then transfer it to the device
Develop on the computer and test on the
device, involves switching back and forth
Must be able to easily transfer content
between the devices
Problems
Things
don’t look the same, something
that looks good on PC screen might not
display very well on a phone
Expensive / time consuming to send
content to the device
Hard to get information off of the device
May not be able to determine what went
wrong
Solutions
– simulate the device on a PC
Easy and quick to transfer the content
Can get extra information from the
emulator, provide assistance with testing
Don’t need to switch between devices
Emulator can simulate situations that are
hard to produce with real devices,
communications failures, noise, etc
Emulators
Solutions
Problems
with emulators:
Someone needs to write the emulator
May not be very realistic, may run much faster
than real device, have more storage than the
real device
Don’t get the same feel / experience as using
the real device
Doesn’t
start
solve all the problems, but a good
Solutions
Development
platform: special version of
the device that supports content
development
Better communications with the PC, easier
to transfer content
More storage and support for testing and
debugging content
Closer to the real thing
Solutions
Development
platform is better than an
emulator, but still has its problems
Usually very expensive, many times more
expensive than the device
Still need to switch between devices
Has more resources than real device, so
still may have problems when you switch
to the real device
Java
Java
was originally developed by Sun in
the early 1990s for programming small
devices
The original version was a failure
In 1995 with the web becoming popular it
was revived for web programming
This was quite successful, and Java
become extremely popular
Java
Basic
ideas:
Produce a language that will run anywhere,
use an interpreter, not a compiler
Remove language features that make it hard
to program, produce an “easier to use
language”
Try to be everything to everyone, support
everything so language will be widely used
A secure web language
Java
For
small applications Java works quite
well, it also works well in dynamic
environments
For large programs / applications it was a
complete disaster, to the point of almost
destroying several major companies
Some problems are hard, need to have
complex language features, otherwise
programming become very difficult
Java
Became
far too large, tried to do far too
much
Produced a system that worked poorly
everywhere
For PCs and workstations the generic
approach just didn’t work
Easier to port good applications from one
platform to another
Java
Becoming
popular on mobile phones
A very good fit, where it really belongs
Large number of different phones:
Similar outward appearance, all work
basically the same from user’s point of view
Inside they can be quite different, use different
processors and software
Java
makes it possible to develop for a
range of phones
Java
Problem:
standard Java (J2SE) is far too
big, won’t fit on a phone, can take up most
of a PDA
Need a smaller version: J2ME – Java 2
Micro Edition
Aimed at embedded devices, not just
phones, but also set top boxes and
appliances
Java
J2ME
supports a range of devices, so
there are multiple versions
Attempt to keep things sort of standard
while addressing different devices
We are interesting in the CLDC
configuration, Connected Limited Device
Configuration using the MIDP profile,
Mobile Information Device Profile
Java
CLDC
is aimed at small devices (a few
Mbytes of memory) that are sometimes
connected to a network, assumes slow
network
MIDP provides the features required for
applications on mobile phones and PDAs
This is a reasonably good solution and we
will look at it further later in the course
Windows CE
One
of the best places to start
The version of Windows for small devices,
can be used on:
PDA
Mobile phone
Appliances
Cars
Set top boxes
Windows CE
A cut
down version of Windows, aimed at
different markets
A different version of Windows CE for
each market area, two most interesting
Pocket PC – aimed at PDA market
SmartPhone – aimed at high end mobile
phone market
All
have the same basic structure, same
as PC
Windows CE
Advantages
A familiar environment, not a major change
from what they are used to
Already know how to use it, not as much to
learn
Advantages
for user:
for developers:
Not a new environment, can use previous
skills
Easier to transfer content and applications
Windows CE
Has
familiar file structure
Applications developed in basically the
same way, using same or similar tools
Easy to get content onto the devices
Most important: easier to determine what
went wrong
Not a closed environment, can see what is
happening
Windows CE
– used on most mobile devices,
update files on mobile devices
Have PC with main copy of files, update
files on PC (easier to do)
Periodically transfer files from PC to
mobile device
Can go other direction as well
Not usually a fast operation
Sync
Windows CE
Windows CE
On
most mobile devices a simple file
transfer
On Windows CE can see the mobile
device’s file system from PC
Can use drag and drop to send files
between devices
Can do standard file operations from PC
on mobile device’s files
Windows CE