SlideShare a Scribd company logo
1 of 31
Download to read offline
Java Micro Edition Platform
                             & 
                          Android

                 Seminar on Small and Mobile Devices
                           May 13th, 2008

                 Dejan Juric (djuric@student.ethz.ch)


May 13th, 2008            Seminar on Small and Mobile Devices
                           Dejan Juric (djuric@student.ethz.ch)   1
Outline
 ●   Motivation & Goal
 ●   Java Micro Edition Platform
 ●   Android
 ●   Java ME vs Android
 ●   Conclusion & Discussion




May 13th, 2008     Seminar on Small and Mobile Devices
                    Dejan Juric (djuric@student.ethz.ch)   2
Motivation
 ●   Number of mobile phone subscribers by 
     November 2007: 3.3 billion. (personal 
     computers: 1 billion)
 ●   Problems with mobile devices:
       –   Heterogeneous: different form factors, features, 
           functions
       –   Resource­constrained



May 13th, 2008           Seminar on Small and Mobile Devices
                          Dejan Juric (djuric@student.ethz.ch)   3
Goal
 ●   Allow customization of devices
       –   Download new services and applications from the 
           Internet
 ●   Development of applications and services
       –   Device­independent
       –   Cost efficient




May 13th, 2008              Seminar on Small and Mobile Devices
                             Dejan Juric (djuric@student.ethz.ch)   4
Java Micro Edition Platform
 ●   Available on most current mobile phones
 ●   Subset of the Java Platform 
       –   for resource­constrained devices

                                                         Java ME


                                  Java SE




May 13th, 2008           Seminar on Small and Mobile Devices
                          Dejan Juric (djuric@student.ethz.ch)     5
Java Platforms




May 13th, 2008    Seminar on Small and Mobile Devices
                   Dejan Juric (djuric@student.ethz.ch)   6
Java Micro Edition ­ Overview




                                                            Profiles




                                                            Configurations

May 13th, 2008      Seminar on Small and Mobile Devices
                     Dejan Juric (djuric@student.ethz.ch)              7
Java ME ­ Configurations
 ●   Configuration: 
     complete Java 
     runtime environment
       –   Defines the minimum 
           set of Java virtual 
           machine features & 
           class libraries




May 13th, 2008          Seminar on Small and Mobile Devices
                         Dejan Juric (djuric@student.ethz.ch)   8
Java ME – Configurations ­ CDC
 ●   Connected Device 
     Configuration
       –   32bit CPU, 2MB of 
           RAM, 2 MB of ROM
       –   Modified Java SE core 
           class libraries
       –   CDC 1.1 matches JDK 
           1.4 APIs


May 13th, 2008          Seminar on Small and Mobile Devices
                         Dejan Juric (djuric@student.ethz.ch)   9
Java ME – Configurations ­ CLDC
 ●   Connected Limited 
     Device Configuration
       –   At least 160 kB of 
           non­volatile memory
       –   At least 32 kB of 
           volatile memory
       –   Minimal host                                                CLDC 1.1
                                                                        java.lang
           operating system or                                       +java.lang.ref
           kernel available                                               java.io
                                                                         java.util
May 13th, 2008            Seminar on Small and Mobile Devices     javax.microedition.io
                           Dejan Juric (djuric@student.ethz.ch)                       10
Java ME – CLDC
 ●   Eliminated features
       –   User­defined class loaders
       –   Thread groups and daemon threads
       –   Finalization of class instances
       –   Asynchronous exceptions
       –   Floating point types (since CLDC 1.1)
 ●   Class file verification
       –   Off­device preverification and runtime verification
May 13th, 2008            Seminar on Small and Mobile Devices
                           Dejan Juric (djuric@student.ethz.ch)   11
Java ME ­ Profiles
 ●   Define a minimum set 
     of APIs available on a 
     “family” of devices
 ●   Applications are 
     written for a particular 
     profile
       –   Portable across 
           devices that support 
           that profile
May 13th, 2008           Seminar on Small and Mobile Devices
                          Dejan Juric (djuric@student.ethz.ch)   12
Java ME ­ MIDP
 ●   Mobile Information Device Profile
       –   Screen of at least 96x54 pixels
       –   Keypad, keyboard or touchscreen input
       –   256 KB of nonvolatile memory 
       –   128 KB of RAM
       –   8 KB of nonvolatile writable memory for persistent 
           data
       –   Two­way network connection

May 13th, 2008           Seminar on Small and Mobile Devices
                          Dejan Juric (djuric@student.ethz.ch)   13
Java ME ­ MIDP
 ●   Mobile Information Device Profile – Building 
     Blocks

                CLDC 1.1                               MIDP 2.0
                 java.lang                      javax.microedition.lcdui
              +java.lang.ref               +javax.microedition.lcdui.game
                   java.io                    +javax.microedition.media
                  java.util               +javax.microedition.media.control
           javax.microedition.io               javax.microedition.midlet
                                                +javax.microedition.pki
                                                 javax.microedition.rms


May 13th, 2008                 Seminar on Small and Mobile Devices
                                Dejan Juric (djuric@student.ethz.ch)          14
Java ME – Development Process
                  Java Source

                           Compile


                 Java Class Files                            Application on Device


                           Preverification                                 Deployment

         Preverified Class Files                                    JAR Package

                                       Packaging
May 13th, 2008                  Seminar on Small and Mobile Devices
                                 Dejan Juric (djuric@student.ethz.ch)                15
Java ME – Development Tools
 ●   Wireless toolkits:
       –   Sun Wireless Toolkits
       –   Motorola SDK for J2ME™
       –   Sony Ericsson J2ME SDK
 ●   Development Environments
       –   EclipseME
       –   Netbeans Mobility


May 13th, 2008           Seminar on Small and Mobile Devices
                          Dejan Juric (djuric@student.ethz.ch)   16
Java ME – MIDlet Demo
                 // Exceptions omitted for clarity
                 public class TestMIDlet extends MIDlet implements CommandListener {
                       private Form mMainForm;
                       public TestMIDlet() {
                             mMainForm = new Form("TestMIDlet");
                             mMainForm.append(new StringItem(null, "Hello, MIDP!"));
                             mMainForm.addCommand(new Command("Exit", Command.EXIT, 0));
                             mMainForm.setCommandListener(this);
                       }
                       protected void destroyApp(boolean arg0)  {
                       }
                       protected void pauseApp() {
                       }
                       protected void startApp() {
                             Display.getDisplay(this).setCurrent(mMainForm);
                       }
                       public void commandAction(Command arg0, Displayable arg1) {
                             notifyDestroyed();
                       }
                 }



May 13th, 2008                        Seminar on Small and Mobile Devices
                                       Dejan Juric (djuric@student.ethz.ch)                17
Java Micro Edition
 ●   Questions?




May 13th, 2008      Seminar on Small and Mobile Devices
                     Dejan Juric (djuric@student.ethz.ch)   18
Android
 ●   Software platform and 
     operating system for 
     mobile devices based 
     on the Linux 
     operating system
 ●   Developed by Google 
     and the Open 
     Handset Alliance

May 13th, 2008     Seminar on Small and Mobile Devices
                    Dejan Juric (djuric@student.ethz.ch)   19
Android ­ Open Handset Alliance
 ●   Vision: “... accelerate innovation in mobile and 
     offer consumers a richer, less expensive, and 
     better mobile experience.”
 ●   Members (more than 30):
       –   Google, HTC, NTT DoCoMo, China Mobile, T­
           Mobile, Motorola, Samsung, Intel ...
       –   Swiss members: Esmertec, Noser



May 13th, 2008          Seminar on Small and Mobile Devices
                         Dejan Juric (djuric@student.ethz.ch)   20
Android ­ Architecture




May 13th, 2008        Seminar on Small and Mobile Devices
                       Dejan Juric (djuric@student.ethz.ch)   21
Android ­ Runtime
 ●   Dalvik: It's not a Java virtual machine
 ●   Every Android application runs in its own 
     process within its own instance of the Dalvik 
     VM.
                         javac
         Java Source                            Java Class Files


                                                                  dx


                                               Dalvik Executable
                                                  Files (.dex)
May 13th, 2008            Seminar on Small and Mobile Devices
                           Dejan Juric (djuric@student.ethz.ch)        22
Android – Application Framework
 ●   Views: User Interface
 ●   Content Providers: Access & share data
 ●   Resource Manager: non­code resources 
     (graphics, external strings ...)
 ●   Notification Manager: custom alerts in status 
     bar
 ●   Activity Manager: Manages life cycle of 
     applications
May 13th, 2008      Seminar on Small and Mobile Devices
                     Dejan Juric (djuric@student.ethz.ch)   23
Android – Activity & Intent
 ●   Activity: single, focused thing that the user can 
     do
 ●   Intent: abstract description of an operation to be 
     performed




May 13th, 2008          Seminar on Small and Mobile Devices
                         Dejan Juric (djuric@student.ethz.ch)   24
Android – Life cycle ­ Activity
                                          ●   Activity can be killed! 
                                          ●   We have to store the 
                                              state




May 13th, 2008       Seminar on Small and Mobile Devices
                      Dejan Juric (djuric@student.ethz.ch)        25
Android ­ Development
 ●   Software Development Kit:
       –   Eclipse Plugin
       –   Command line tools
                 ●   Dalvik Debug Monitor Service (ddms)
                 ●   Android Debug Bridge (adb)
                 ●   Android Asset Packaging Tool (aapt)
                 ●   Android Interface Description Language (aidl)
       –   Emulator


May 13th, 2008                    Seminar on Small and Mobile Devices
                                   Dejan Juric (djuric@student.ethz.ch)   26
Android ­ Demo
 ●   Demonstration with SDK and emulator




May 13th, 2008     Seminar on Small and Mobile Devices
                    Dejan Juric (djuric@student.ethz.ch)   27
JavaME vs Android – Developer's 
              Perspective
 ●   Java ME                               ●   Android
       + Security model                          + Security model
       + Works on many                           + Optimized for 
         devices                                   smartphones
       ­ On mobile phones:                       + Seamless integration 
         Integration into                          into system
         system not seamless                     ­ API: more complicated 
       ­ Too many APIs                             than Java ME


May 13th, 2008        Seminar on Small and Mobile Devices
                       Dejan Juric (djuric@student.ethz.ch)         28
Java ME vs. Android ­ General
 ●   Java ME                                 ●   Android
       + Lots of devices                           + Opensource
         already available                         + Defines unique 
       ­ Fully controlled by Sun                     software stack for 
         (Licensing!)                                mobile devices
       ­ Formal specification                      ­ No devices available
         process (slow)                            ­ No standards are used 
                                                     (e.g. VM, IDL ...)


May 13th, 2008          Seminar on Small and Mobile Devices
                         Dejan Juric (djuric@student.ethz.ch)              29
Conclusions
 ●   Rapid growth in the mobile market expected
 ●   Wireless devices getting more powerful
       –   More features
       –   Better connectivity
 ●   Both technologies could play a big role in the 
     future



May 13th, 2008             Seminar on Small and Mobile Devices
                            Dejan Juric (djuric@student.ethz.ch)   30
Discussion
 ●   Questions?




May 13th, 2008    Seminar on Small and Mobile Devices
                   Dejan Juric (djuric@student.ethz.ch)   31

More Related Content

Viewers also liked

같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법GDG Korea
 
디자이너 없어도 괜찮아! (feat.Material Design Guide)
디자이너 없어도 괜찮아! (feat.Material Design Guide)디자이너 없어도 괜찮아! (feat.Material Design Guide)
디자이너 없어도 괜찮아! (feat.Material Design Guide)GDG Korea
 
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?GDG Korea
 
GKAC 2015 Apr. - RxAndroid
GKAC 2015 Apr. - RxAndroidGKAC 2015 Apr. - RxAndroid
GKAC 2015 Apr. - RxAndroidGDG Korea
 
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive ProgrammingGKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive ProgrammingGDG Korea
 
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GDG Korea
 
Best Practices in Media Playback
Best Practices in Media PlaybackBest Practices in Media Playback
Best Practices in Media PlaybackGDG Korea
 
FIrebase를 이용한 호우호우 미니게임 만들기
FIrebase를 이용한 호우호우 미니게임 만들기FIrebase를 이용한 호우호우 미니게임 만들기
FIrebase를 이용한 호우호우 미니게임 만들기GDG Korea
 
Reinfocement learning
Reinfocement learningReinfocement learning
Reinfocement learningGDG Korea
 
안드로이드 데이터 바인딩
안드로이드 데이터 바인딩안드로이드 데이터 바인딩
안드로이드 데이터 바인딩GDG Korea
 
Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016GDG Korea
 
Android - Preventing common memory leaks
Android - Preventing common memory leaksAndroid - Preventing common memory leaks
Android - Preventing common memory leaksAli Muzaffar
 
Android : How Do I Code Thee?
Android : How Do I Code Thee?Android : How Do I Code Thee?
Android : How Do I Code Thee?Viswanath J
 
Inside the Android application framework - Google I/O 2009
Inside the Android application framework - Google I/O 2009Inside the Android application framework - Google I/O 2009
Inside the Android application framework - Google I/O 2009Viswanath J
 

Viewers also liked (15)

같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
같은 유저수, 다른 수익? 모바일 앱의 수익을 높이는 방법
 
디자이너 없어도 괜찮아! (feat.Material Design Guide)
디자이너 없어도 괜찮아! (feat.Material Design Guide)디자이너 없어도 괜찮아! (feat.Material Design Guide)
디자이너 없어도 괜찮아! (feat.Material Design Guide)
 
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?
GKAC 2014 Nov. - Android Wear 개발, 할까요 말까요?
 
GKAC 2015 Apr. - RxAndroid
GKAC 2015 Apr. - RxAndroidGKAC 2015 Apr. - RxAndroid
GKAC 2015 Apr. - RxAndroid
 
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive ProgrammingGKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
GKAC 2014 Nov. - RxJava를 활용한 Functional Reactive Programming
 
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
 
Best Practices in Media Playback
Best Practices in Media PlaybackBest Practices in Media Playback
Best Practices in Media Playback
 
FIrebase를 이용한 호우호우 미니게임 만들기
FIrebase를 이용한 호우호우 미니게임 만들기FIrebase를 이용한 호우호우 미니게임 만들기
FIrebase를 이용한 호우호우 미니게임 만들기
 
Reinfocement learning
Reinfocement learningReinfocement learning
Reinfocement learning
 
안드로이드 데이터 바인딩
안드로이드 데이터 바인딩안드로이드 데이터 바인딩
안드로이드 데이터 바인딩
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform Architecture
 
Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016Introduce Android TV and new features from Google I/O 2016
Introduce Android TV and new features from Google I/O 2016
 
Android - Preventing common memory leaks
Android - Preventing common memory leaksAndroid - Preventing common memory leaks
Android - Preventing common memory leaks
 
Android : How Do I Code Thee?
Android : How Do I Code Thee?Android : How Do I Code Thee?
Android : How Do I Code Thee?
 
Inside the Android application framework - Google I/O 2009
Inside the Android application framework - Google I/O 2009Inside the Android application framework - Google I/O 2009
Inside the Android application framework - Google I/O 2009
 

Similar to Java Micro Edition Platform & Android - Seminar on Small and Mobile Devices

OOP_chapter _1.pptx
OOP_chapter _1.pptxOOP_chapter _1.pptx
OOP_chapter _1.pptxAbdexAliyi
 
Mobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project StatusMobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project Statusgustavoeliano
 
JavaME Development Workflow - JMDF 2007
JavaME Development Workflow - JMDF 2007JavaME Development Workflow - JMDF 2007
JavaME Development Workflow - JMDF 2007Edoardo Schepis
 
Introduction to Android Programming by Dr.M.Pyingkodi-kongu engineering c...
Introduction to  Android   Programming by  Dr.M.Pyingkodi-kongu engineering c...Introduction to  Android   Programming by  Dr.M.Pyingkodi-kongu engineering c...
Introduction to Android Programming by Dr.M.Pyingkodi-kongu engineering c...pyingkodi maran
 
Be ieee 2014 15 computer&inforamation science&mca titles
Be ieee 2014 15 computer&inforamation science&mca titlesBe ieee 2014 15 computer&inforamation science&mca titles
Be ieee 2014 15 computer&inforamation science&mca titlesIGEEKS TECHNOLOGIES
 
2014-2015-IEEE MCA Projects,Bangalore
2014-2015-IEEE MCA Projects,Bangalore2014-2015-IEEE MCA Projects,Bangalore
2014-2015-IEEE MCA Projects,BangaloreIGEEKS TECHNOLOGIES
 
BE Final Year CSE, ECE, EEE, IT, IS Projects,Bangalore
BE Final Year CSE, ECE, EEE, IT, IS Projects,BangaloreBE Final Year CSE, ECE, EEE, IT, IS Projects,Bangalore
BE Final Year CSE, ECE, EEE, IT, IS Projects,BangaloreIGEEKS TECHNOLOGIES
 
DSDP Mobile Tools for Java New and Noteworthy
DSDP Mobile Tools for Java New and NoteworthyDSDP Mobile Tools for Java New and Noteworthy
DSDP Mobile Tools for Java New and Noteworthygustavoeliano
 
DSDP Mobile Tools for Java New and Noteworthy
DSDP Mobile Tools for Java New and NoteworthyDSDP Mobile Tools for Java New and Noteworthy
DSDP Mobile Tools for Java New and Noteworthydiegomadruga
 
Resume_ChuangCao
Resume_ChuangCaoResume_ChuangCao
Resume_ChuangCaoChuang Cao
 
Introduction to Android Programming
Introduction to  Android ProgrammingIntroduction to  Android Programming
Introduction to Android ProgrammingPyingkodi Maran
 
A Taste of Java ME
A Taste of Java MEA Taste of Java ME
A Taste of Java MEwiradikusuma
 
Resume_Sheetal_3Years
Resume_Sheetal_3YearsResume_Sheetal_3Years
Resume_Sheetal_3YearsSheetal Dorby
 
MTJ Taking Mobile Java Developers to the Next Level
MTJ Taking Mobile Java Developers to the Next LevelMTJ Taking Mobile Java Developers to the Next Level
MTJ Taking Mobile Java Developers to the Next Levelgustavoeliano
 
DSDP Mobile Tools for Java Project
DSDP Mobile Tools for Java ProjectDSDP Mobile Tools for Java Project
DSDP Mobile Tools for Java Projectgustavoeliano
 

Similar to Java Micro Edition Platform & Android - Seminar on Small and Mobile Devices (20)

OOP_chapter _1.pptx
OOP_chapter _1.pptxOOP_chapter _1.pptx
OOP_chapter _1.pptx
 
Mobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project StatusMobile Tools for Java - Current Project Status
Mobile Tools for Java - Current Project Status
 
JavaME Development Workflow - JMDF 2007
JavaME Development Workflow - JMDF 2007JavaME Development Workflow - JMDF 2007
JavaME Development Workflow - JMDF 2007
 
Java-Unit-I.ppt
Java-Unit-I.pptJava-Unit-I.ppt
Java-Unit-I.ppt
 
Mobile Java
Mobile JavaMobile Java
Mobile Java
 
Introduction to Android Programming by Dr.M.Pyingkodi-kongu engineering c...
Introduction to  Android   Programming by  Dr.M.Pyingkodi-kongu engineering c...Introduction to  Android   Programming by  Dr.M.Pyingkodi-kongu engineering c...
Introduction to Android Programming by Dr.M.Pyingkodi-kongu engineering c...
 
Ah java-ppt1
Ah java-ppt1Ah java-ppt1
Ah java-ppt1
 
Resume
ResumeResume
Resume
 
Be ieee 2014 15 computer&inforamation science&mca titles
Be ieee 2014 15 computer&inforamation science&mca titlesBe ieee 2014 15 computer&inforamation science&mca titles
Be ieee 2014 15 computer&inforamation science&mca titles
 
2014-2015-IEEE MCA Projects,Bangalore
2014-2015-IEEE MCA Projects,Bangalore2014-2015-IEEE MCA Projects,Bangalore
2014-2015-IEEE MCA Projects,Bangalore
 
BE Final Year CSE, ECE, EEE, IT, IS Projects,Bangalore
BE Final Year CSE, ECE, EEE, IT, IS Projects,BangaloreBE Final Year CSE, ECE, EEE, IT, IS Projects,Bangalore
BE Final Year CSE, ECE, EEE, IT, IS Projects,Bangalore
 
DSDP Mobile Tools for Java New and Noteworthy
DSDP Mobile Tools for Java New and NoteworthyDSDP Mobile Tools for Java New and Noteworthy
DSDP Mobile Tools for Java New and Noteworthy
 
DSDP Mobile Tools for Java New and Noteworthy
DSDP Mobile Tools for Java New and NoteworthyDSDP Mobile Tools for Java New and Noteworthy
DSDP Mobile Tools for Java New and Noteworthy
 
Resume_ChuangCao
Resume_ChuangCaoResume_ChuangCao
Resume_ChuangCao
 
Introduction to Android Programming
Introduction to  Android ProgrammingIntroduction to  Android Programming
Introduction to Android Programming
 
A Taste of Java ME
A Taste of Java MEA Taste of Java ME
A Taste of Java ME
 
Ieee 2013 projects download
Ieee 2013 projects downloadIeee 2013 projects download
Ieee 2013 projects download
 
Resume_Sheetal_3Years
Resume_Sheetal_3YearsResume_Sheetal_3Years
Resume_Sheetal_3Years
 
MTJ Taking Mobile Java Developers to the Next Level
MTJ Taking Mobile Java Developers to the Next LevelMTJ Taking Mobile Java Developers to the Next Level
MTJ Taking Mobile Java Developers to the Next Level
 
DSDP Mobile Tools for Java Project
DSDP Mobile Tools for Java ProjectDSDP Mobile Tools for Java Project
DSDP Mobile Tools for Java Project
 

Recently uploaded

React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 

Recently uploaded (20)

React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 

Java Micro Edition Platform & Android - Seminar on Small and Mobile Devices

  • 1. Java Micro Edition Platform &  Android Seminar on Small and Mobile Devices May 13th, 2008 Dejan Juric (djuric@student.ethz.ch) May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 1
  • 2. Outline ● Motivation & Goal ● Java Micro Edition Platform ● Android ● Java ME vs Android ● Conclusion & Discussion May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 2
  • 3. Motivation ● Number of mobile phone subscribers by  November 2007: 3.3 billion. (personal  computers: 1 billion) ● Problems with mobile devices: – Heterogeneous: different form factors, features,  functions – Resource­constrained May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 3
  • 4. Goal ● Allow customization of devices – Download new services and applications from the  Internet ● Development of applications and services – Device­independent – Cost efficient May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 4
  • 5. Java Micro Edition Platform ● Available on most current mobile phones ● Subset of the Java Platform  – for resource­constrained devices Java ME Java SE May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 5
  • 6. Java Platforms May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 6
  • 7. Java Micro Edition ­ Overview Profiles Configurations May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 7
  • 8. Java ME ­ Configurations ● Configuration:  complete Java  runtime environment – Defines the minimum  set of Java virtual  machine features &  class libraries May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 8
  • 9. Java ME – Configurations ­ CDC ● Connected Device  Configuration – 32bit CPU, 2MB of  RAM, 2 MB of ROM – Modified Java SE core  class libraries – CDC 1.1 matches JDK  1.4 APIs May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 9
  • 10. Java ME – Configurations ­ CLDC ● Connected Limited  Device Configuration – At least 160 kB of  non­volatile memory – At least 32 kB of  volatile memory – Minimal host  CLDC 1.1 java.lang operating system or  +java.lang.ref kernel available  java.io java.util May 13th, 2008 Seminar on Small and Mobile Devices javax.microedition.io Dejan Juric (djuric@student.ethz.ch) 10
  • 11. Java ME – CLDC ● Eliminated features – User­defined class loaders – Thread groups and daemon threads – Finalization of class instances – Asynchronous exceptions – Floating point types (since CLDC 1.1) ● Class file verification – Off­device preverification and runtime verification May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 11
  • 12. Java ME ­ Profiles ● Define a minimum set  of APIs available on a  “family” of devices ● Applications are  written for a particular  profile – Portable across  devices that support  that profile May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 12
  • 13. Java ME ­ MIDP ● Mobile Information Device Profile – Screen of at least 96x54 pixels – Keypad, keyboard or touchscreen input – 256 KB of nonvolatile memory  – 128 KB of RAM – 8 KB of nonvolatile writable memory for persistent  data – Two­way network connection May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 13
  • 14. Java ME ­ MIDP ● Mobile Information Device Profile – Building  Blocks CLDC 1.1 MIDP 2.0 java.lang javax.microedition.lcdui +java.lang.ref +javax.microedition.lcdui.game java.io +javax.microedition.media java.util +javax.microedition.media.control javax.microedition.io javax.microedition.midlet +javax.microedition.pki javax.microedition.rms May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 14
  • 15. Java ME – Development Process Java Source Compile Java Class Files Application on Device Preverification Deployment Preverified Class Files JAR Package Packaging May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 15
  • 16. Java ME – Development Tools ● Wireless toolkits: – Sun Wireless Toolkits – Motorola SDK for J2ME™ – Sony Ericsson J2ME SDK ● Development Environments – EclipseME – Netbeans Mobility May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 16
  • 17. Java ME – MIDlet Demo // Exceptions omitted for clarity public class TestMIDlet extends MIDlet implements CommandListener { private Form mMainForm; public TestMIDlet() { mMainForm = new Form("TestMIDlet"); mMainForm.append(new StringItem(null, "Hello, MIDP!")); mMainForm.addCommand(new Command("Exit", Command.EXIT, 0)); mMainForm.setCommandListener(this); } protected void destroyApp(boolean arg0)  { } protected void pauseApp() { } protected void startApp() { Display.getDisplay(this).setCurrent(mMainForm); } public void commandAction(Command arg0, Displayable arg1) { notifyDestroyed(); } } May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 17
  • 18. Java Micro Edition ● Questions? May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 18
  • 19. Android ● Software platform and  operating system for  mobile devices based  on the Linux  operating system ● Developed by Google  and the Open  Handset Alliance May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 19
  • 20. Android ­ Open Handset Alliance ● Vision: “... accelerate innovation in mobile and  offer consumers a richer, less expensive, and  better mobile experience.” ● Members (more than 30): – Google, HTC, NTT DoCoMo, China Mobile, T­ Mobile, Motorola, Samsung, Intel ... – Swiss members: Esmertec, Noser May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 20
  • 21. Android ­ Architecture May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 21
  • 22. Android ­ Runtime ● Dalvik: It's not a Java virtual machine ● Every Android application runs in its own  process within its own instance of the Dalvik  VM. javac Java Source Java Class Files dx Dalvik Executable Files (.dex) May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 22
  • 23. Android – Application Framework ● Views: User Interface ● Content Providers: Access & share data ● Resource Manager: non­code resources  (graphics, external strings ...) ● Notification Manager: custom alerts in status  bar ● Activity Manager: Manages life cycle of  applications May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 23
  • 24. Android – Activity & Intent ● Activity: single, focused thing that the user can  do ● Intent: abstract description of an operation to be  performed May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 24
  • 25. Android – Life cycle ­ Activity ● Activity can be killed!  ● We have to store the  state May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 25
  • 26. Android ­ Development ● Software Development Kit: – Eclipse Plugin – Command line tools ● Dalvik Debug Monitor Service (ddms) ● Android Debug Bridge (adb) ● Android Asset Packaging Tool (aapt) ● Android Interface Description Language (aidl) – Emulator May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 26
  • 27. Android ­ Demo ● Demonstration with SDK and emulator May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 27
  • 28. JavaME vs Android – Developer's  Perspective ● Java ME ● Android + Security model + Security model + Works on many  + Optimized for  devices smartphones ­ On mobile phones:  + Seamless integration  Integration into  into system system not seamless ­ API: more complicated  ­ Too many APIs than Java ME May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 28
  • 29. Java ME vs. Android ­ General ● Java ME ● Android + Lots of devices  + Opensource already available + Defines unique  ­ Fully controlled by Sun  software stack for  (Licensing!) mobile devices ­ Formal specification  ­ No devices available process (slow) ­ No standards are used  (e.g. VM, IDL ...) May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 29
  • 30. Conclusions ● Rapid growth in the mobile market expected ● Wireless devices getting more powerful – More features – Better connectivity ● Both technologies could play a big role in the  future May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 30
  • 31. Discussion ● Questions? May 13th, 2008 Seminar on Small and Mobile Devices Dejan Juric (djuric@student.ethz.ch) 31