Mobile Application Development



Similar documents
Mobile application development J2ME U N I T I I

MIDlet development with J2ME and MIDP

Java Platform, Micro Edition (Java ME) Mokoena F.R. The 7046 Team

Mobile Software Application Development. Tutorial. Caesar Ogole. April 2006

::. Contenuti della lezione *+ ') $ &,!!!$!-,.../- ' % + &

Development of Java ME

Introduction to Mobile Phone. Programming in Java Me

Java Language Tools COPYRIGHTED MATERIAL. Part 1. In this part...

User s Guide. Sun Java TM Wireless Toolkit for CLDC Version Sun Microsystems, Inc.

2 Introduction to Java. Introduction to Programming 1 1

DESIGNING SHIFT CALENDAR FOR MOBILE PHONE

Java ME & NetBeans Mobility. Petr Suchomel Architect, NetBeans Mobility Sun Microsystems

Mobile Operating Systems. Week I

Android Setup Phase 2

A70 How to Deploy Applications

Nokia 9210i/9290 Communicators and PersonalJava TM Application Development

Mobile Development Discovery Document

Java ME Clients for XML Web Services

Real time vehicle tracking and driver behaviour monitoring using cellular handset based accelerometer and GPS data

Write. Once. Deploy. Anywhere. Anatole Wilson. Writing Applications for mobile devices and reducing device fragmentation with NetBeans Mobility Pack

Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert

Security Evaluation of J2ME CLDC Embedded Java Platform

Mobile-PC Suite: Using Mobile Phone as Remote to Control PC Operations

Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps. Hyeokgon Ryu, Infraware Technology, Ltd.

To install Multifront you need to have familiarity with Internet Information Services (IIS), Microsoft.NET Framework and SQL Server 2008.

How To Develop An Android App On An Android Device

Overview. About Interstitial Ads: About Banner Ads: About Offer-Wall Ads: ADAttract Account & ID

Tutorial: Development of Interactive Applications for Mobile Devices

Java Servlet and JSP Programming. Structure and Deployment China Jiliang University

Android, Bluetooth and MIAC

Technical Note. Micron Flash Data Integrator (FDI) Support for Java Applications. Introduction. Definition

Mobile Operating Systems Lesson 07 Symbian OS

Java Bluetooth stack Acceptance Test Plan Version 1.0

Python for Series 60 Platform

E-Blocks Easy Internet Bundle

Location-Based Information Systems

Tutorial 5: Developing Java applications

How to Set Up Your PC for Android Application Development

Running a Program on an AVD

2sms SMS API Overview

Java Embedded Applications

Oracle Java Micro Edition Software Development Kit

WHAT ARE PACKAGES? A package is a collection of related classes. This is similar to the notion that a class is a collection of related methods.

HP AppPulse Mobile. Adding HP AppPulse Mobile to Your Android App

Project Builder for Java. (Legacy)

Digifort Mobile Manual Version 1.0 Rev. A

Installing Java. Table of contents

Conference Controller Deployment Guide

PDA DRIVEN WAREHOUSE INVENTORY MANAGEMENT SYSTEM Sebastian Albert Master of Science in Technology

Introduction to Android

The Complete Guide to J2ME Polish. The Solution for Professional Wireless Java Development

Example Connection between USB Host and Android

Android Basics. Xin Yang

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)

How to Set Up Your PC for Android Application Development

Overview. The Android operating system is like a cake consisting of various layers.

Programming with Android: SDK install and initial setup. Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna

Installation Instructions for 9555 USB Driver

picojava TM : A Hardware Implementation of the Java Virtual Machine

Instructions for Installing and Using the FOCUS DL-15 Data Transfer Software

Mobile Network Marketing Model (MIDP)

Deploying Java Applications

BlackBerry Smartphone Application Development

CS 209 Programming in Java #1

rich mobile applications made easy

Important Notice Baracoda products works with all Bluetooth devices accepting both SPP connection and sniff mode.

Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) <lecturer, date>

IST STREP Project. Deliverable D3.3.1u Middleware User s Guide Multi-Radio Device Management Layer.

GNMobile / GNMobileTM User Guide

Pentesting Android Mobile Application

Using Actian PSQL as a Data Store with VMware vfabric SQLFire. Actian PSQL White Paper May 2013

J2ME: Step by step. Presented by developerworks, your source for great tutorials ibm.com/developerworks

The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications

Java TM Platform Micro Edition Software Development Kit

Server Setup and Configuration

Tutorial on Basic Android Setup

Computer and Set of Robots

Using Microsoft Visual Studio API Reference

Application Notes for Packaging and Deploying Avaya Communications Process Manager Sample SDK Web Application on a JBoss Application Server Issue 1.

An Overview of Java. overview-1

Shearwater Research Dive Computer Software Manual

Advanced Java Application Development for the BlackBerry Smartphone. BlackBerry Academic Program

Installing the Gerber P2C Plotter USB Driver

2014 Electrical Server Installation Guide

The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. Oct 2003 Presented to Gordon College CS 311

Quick and Easy Solutions With Free Java Libraries Part II

Review On Google Android a Mobile Platform

The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of Eclipse is recommended.

5. More on app development

Lab 0 (Setting up your Development Environment) Week 1

Additional Guides. TETRIX Getting Started Guide NXT Brick Guide

How To Develop Android On Your Computer Or Tablet Or Phone

Transcription:

Mobile Application Development Development Process and Portability Christoph Denzler University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Learning Target You know of what steps the deployment process consists for a MIDlet application are aware of the fragmentation problems in the J2ME market can apply some strategies to this problem know how to develop and deploy the same application to different J2ME mobile phones IMVS, Ch. Denzler 2 1

Content Development & Compiling Packaging Deploying Porting Device Fragmentation Design for Portability IMVS, Ch. Denzler 3 Overview: Development & Development Installation Editing javac Cell Phone Service Provider enter URL download.jad preverify Internet download.jar jar install & verify obfuscate copy on Webserver run (KVM) IMVS, Ch. Denzler 4 2

Compiling javac -bootclasspath../../lib/cldcapi10.jar;../../lib/midpapi20.jar -d tmpclasses -source 1.3 -target 1.1 src/hello/hellomidlet.java bootclasspath loads requested libraries source indicates language compatibility target indicates byte code compatibility d destination folder is tmpfolder IMVS, Ch. Denzler 5 Preverify preverify -classpath../../lib/cldcapi10.jar;../../lib/midpapi20.jar -d classes tmpclasses classpath lists necessary libraries -d destination folder Verifies byte code. This saves computation time on the mobile device IMVS, Ch. Denzler 6 3

Packaging jar cfm bin/hello.jar bin/manifest.mf -C classes. cfm: creates a jarfile with the given manifest. Note m and f must be in the same order that jarfile and manifest appear -C: directory with the compiled and preverified classes IMVS, Ch. Denzler 7 Obfuscation java -jar../../bin/proguard.jar -libraryjars../../lib/cldcapi10.jar;../../lib/midpapi20.jar -injars bin/hello.jar -outjar /deploy/hello.jar -keep "public class * extends javax.microedition.midlet.midlet " ofuscates all injars and produces an outjar does not obfuscate terms in -keep Minimize memory footprint by Renders bytecode unreadable IMVS, Ch. Denzler 8 4

Installation OTA (over the air).jad file is downloaded and its content will be presented to the user. User decides to proceed..jar file is downloaded and application will be installed. Direct transfer from PC (usually only Windows) Either wireless (Bluetooth, IrDA) USB cable IMVS, Ch. Denzler 9 Development Process & Tools 1. Develop the source code files. Any texteditor 2. Compile the source code files into bytecode classes. Standard Java Compiler (javac) 3. Pre-verify the bytecode classes (Off-Device Pre-verification) midlet classes must be verified prior to distribution to guarantee that they don t perform any illegal operations. Reason: limitations of the virtual machine used in mobile devices J2ME toolkit (WTK, JME SDK) 4. Package the bytecode classes into a Jar-file with any additional resources and a manifest file. Java archive (jar) tool 5. Develop a Java Application Descriptor file (Jad-file) to accompany the Jar-file. Generated and/or using texteditor 6. Test and debug the midlet. Emulator (Vendor specific) IMVS, Ch. Denzler 10 5

Manifest / Application Descriptor JAR Manifest MIDlet-Name: Hello World MIDlet-Version: 1.0.0 MIDlet-Vendor: LOGIQUEST MIDlet-Description: Hello World Demo MIDlet-Icon: img/hello.png MIDlet-Data-Size: 0 MIDlet-1: Hello, img/hello.png, hello.helloworld MicroEdition-Profile: MDIP-1.0 MicroEdition-Configuration: CLDC-1.0 Java Application Descriptor (JAD) MIDlet-Name: Hello World MIDlet-Version: 1.0.0 MIDlet-Vendor: LOGIQUEST MIDlet-Description: Hello World Demo MIDlet-Icon: img/hello.png MIDlet-Data-Size: 0 MIDlet-Jar-Size: 1251 MIDlet-Jar-URL: hello.jar User-defined entries can be read with the MIDlet method String getappproperty(string key) IMVS, Ch. Denzler 11 JAD file properties JAD File Content MIDlet-Name MIDlet-Version MIDlet-Vendor MIDlet-<n> for each MIDlet MIDlet-Jar-URL MIDlet-Jar-Size The MIDlet-<n> property specifies the name of the MIDlet and an icon (for selecting the MIDlet to be run), and the name in the JAR file of the class which implements that MIDlet IMVS, Ch. Denzler 12 6

Packaging MIDlets One or more MIDlets are packed in a MIDlet Suite : Java class files, other resources (images etc.) and a Manifest, in a JAR file, A Java Application Descriptor (JAD) file describing the MIDlets (and largely repeating the Manifest), in the form of Java properties (key: value pairs) The JAD file allows the device s application manager to decide whether the MIDlets can be executed on the device. IMVS, Ch. Denzler 13 Porting and Testing Application Porting and testing applications is very time consuming since there are differences between different phone models such as: Screen size Memory Processor Bugs Operator problems Specification divergence IMVS, Ch. Denzler 14 7

Fragmentation Mobile device fragmentation limits mobile application adoption and thereby Carriers ARPU (average revenue per user) growth Different hardware Different API support Different standards: MIDP, DoJa, BlackBerry, etc. Different interpretations of standards Device bugs IMVS, Ch. Denzler 15 Example: Design problems The mobile Java standard only allows limited design of applications, unless every detail is drawn by the application itself Standard implementations do not allow to influence the CI and look and feel of the application Adapting designs to different environments or customers is difficult Design changes require changing the source code of applications IMVS, Ch. Denzler 16 8

Java ME: De-fragmentation The problem More than 600 J2ME device types It is expensive to develop, test and sign, deliver and maintain Ever increasing operational costs Commercial "failure" of the J2ME platform The solution: De-fragmentation Possible due to increased capabilities of the devices Improved programming techniques => Design Guidelines IMVS, Ch. Denzler 17 9