Native Android Development Practices

Size: px
Start display at page:

Download "Native Android Development Practices"

Transcription

1 Native Android Development Practices Roy Clarkson & Josh Long SpringSource, a division of VMware 1

2 About Roy Clarkson (Spring Android 2

3 About Roy Clarkson (Spring Android 2

4 About Roy Clarkson (Spring Android 2

5 About Josh Long (Spring Developer 3

6 Spring Mobile Provides support for developing mobile web applications Builds on Spring MVC, focuses on server-side support Compliments client-side mobile frameworks Key Features Device Detection Site Preference Management Site Switcher 4

7 Device Detection Useful when requests by mobile devices need to be handled differently from requests made by desktop browsers Introspects HTTP requests to determine the device that originated the request. Achieved by analyzing the User-Agent header and other request headers In contrast to Feature Detection where client detects available features Spring Mobile provides a DeviceResolver abstraction and interceptor 5

8 Device Detection Demo 6

9 Site Preference Management Device detection is often used to determine which "site" will be served to the user Mobile site vs. desktop site Spring Mobile also provides support for site preference management Allows the user to indicate whether he or she prefers the mobile site or the normal site Remembers the user s preference for their session 7

10 Site Preference Demo 8

11 Site Switcher Some applications may wish to host their "mobile site" at a different domain from their "normal site" For example, Google will switch you to m.google.com if you access google.com from your mobile phone SiteSwitcherHandlerInterceptor can be used to redirect mobile users to a dedicated mobile site Supported SiteSwitchers mdot - m.example.com dotmobi - example.mobi 9

12 Site Switcher Demo 10

13 Limitations of Mobile web sites they can t access the native capabilities of the phone they require network access (no offline support) formatting an application to look mobile is different than actually being a mobile application 11

14 Agenda 12

15 Agenda 12

16 Agenda 12

17 An Introduction to Android! More than 500,000 activations every day 13

18 An Introduction to Android! Huge and growing ecosystem of applications and a market to boot Expected downloads in 2011 Android Market Place Apple App Store 8.1 billion app downloads 6 billion * 14

19 Easy to get started Programs are written in Java ( ) 15

20 Easy to get started Programs are written in Java ( ) 15

21 Easy to get started Programs are written in Java ( ) 15

22 Easy APIs and concepts no real applications, only loosely coupled components Activities Services Content Providers Broadcast Receivers describes the unit of work for one screen does background work like synchronization with a cloud service component that knows how to render and manipulate content of a certain type knows how to receive and respond to system-wide events like screen shutoff. * 16

23 A Simple Activity package org.springframework.android.activities; import android.app.activity; import android.os.bundle; public class HelloAndroid extends Activity { public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); } 17

24 A Simple Activity package org.springframework.android.activities; import android.app.activity; import android.os.bundle; You *must* extend Android classes to build proper components public class HelloAndroid extends Activity { public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); } 17

25 A Simple Activity package org.springframework.android.activities; import android.app.activity; import android.os.bundle; You *must* extend Android classes to build proper components public class HelloAndroid extends Activity public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); } R.* refers to constants that Android code generates for you that correspond to resources } 17

26 Declaring the Simple Activity /res/values/strings.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">hello, Android! I am a string resource!</string> <string name="app_name">hello, Android</string> </resources> /res/layout/main.xml <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android=" android:id="@+id/textview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/hello"/> 18

27 Lifecycle Android controls lifecycles of these components Registered in manifest <activity android:name=".activities.helloandroid <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> 19

28 Lifecycle Android controls lifecycles of these components Registered in manifest Class is set relative to root package specified in manifest <activity android:name=".activities.helloandroid <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> 19

29 Lifecycle Android controls lifecycles of these components Registered in manifest Class is set relative to root package specified in manifest <activity android:name=".activities.helloandroid <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> you specify that an Activity is the primary one like this 19

30 Android Sample Demo How to use STS and the Android Eclipse plugin 20

31 How can Maven help? Android4Maven This project compiles android.jar from source and pulls out source and resource files to replicate android.jar in the SDK Maven Android SDK Deployer If you need to use Google maps, then you have to go this route Maven Android Plugin Provides support for Maven dependency management within Android projects 21

32 Maven Android Plugin Configuration <plugins> <plugin> <groupid>com.jayway.maven.plugins.android.generation2</groupid> <artifactid>maven-android-plugin</artifactid> <version>2.8.4</version> <configuration> <sdk> <platform>3</platform> </sdk> <emulator> <avd>3</avd> </emulator> <deleteconflictingfiles>true</deleteconflictingfiles> <undeploybeforedeploy>true</undeploybeforedeploy> </configuration> <extensions>true</extensions> </plugin> 22

33 m2eclipse Support Maven Integration for Android Development Tools An Eclipse plugin that adds support for integrating m2eclipse, Android Developer Tools, and the Maven Android Plugin Maven Android archetypes This projects provides several Maven archetypes for Android. These archetypes allow you to quickly bootstrap a Maven project to develop an android application

34 Running the simple Activity 24

35 Running the simple Activity 24

36 ...what about something a bit more non-trivial? 25

37 Enter Spring Android! Spring s aim: bring simplicity to java development modern web data access integration mobile social security the cloud: CloudFoundry Google App Engine Amazon Web Services BeanStalk Heroku The Spring framework lightweight tc Server Tomcat Jetty traditional WebSphere JBoss AS WebLogic (on legacy versions, too!) 26

38 What problem are we trying to solve? Concerns REST has become a popular choice for architecting both public and private web services The Android runtime provides HTTP clients capable of making HTTP connections and requests, but it does not have a fully featured REST client Spring Android Solution The goal of Spring Android Rest Template is to provide an easy to use, and functional REST client that supports marshaling objects from XML and JSON. 27

39 REST Origin The term Representational State Transfer was introduced and defined in 2000 by Roy Fielding in his doctoral dissertation. His paper suggests these four design principles: Use HTTP methods explicitly. POST, GET, PUT, DELETE CRUD operations can be mapped to these existing methods Be stateless. State dependencies limit or restrict scalability Expose directory structure-like URIs. URI s should be easily understood Transfer XML, JavaScript Object Notation (JSON), or both. Use XML or JSON to represent data objects or attributes 28

40 Basic Rest Template Example Google search example RestTemplate resttemplate = new RestTemplate(); String url = " String result = resttemplate.getforobject(url, String.class, "SpringSource"); Multiple parameters RestTemplate resttemplate = new RestTemplate(); String url = " String result = resttemplate.getforobject(url, String.class, "42", 21 ); 29

41 Demo Using Spring Android to communicate with a RESTful web service (Google Search Demo) 30

42 Spring Android Rest Template Based on SpringFramework The majority of the supporting classes are pulled from SpringFramework. Modifications were made to support Android. RestTemplate class is the heart of the library Entry points for the six main HTTP methods DELETE - delete(...) GET - getforobject(...) HEAD - headforheaders(...) OPTIONS - optionsforallow(...) POST - postforlocation(...) PUT - put(...) any HTTP operation - exchange(...) and execute(...) 31

43 Spring Android Rest Template Http Client The HttpComponents HttpClient is a native HTTP client available on the Android platform. HttpComponentsClientHttpRequestFactory Message Converters MappingJacksonHttpMessageConverter - object to JSON marshaling supported via the Jackson JSON Processor SimpleXmlHttpMessageConverter - object to XML marshaling supported via the Simple XML Serializer SyndFeedHttpMessageConverter - RSS and Atom feeds supported via the Android ROME Feed Reader 32

44 Spring Android Showcase Examples HTTP GET JSON XML HTTP GET with Parameters JSON XML HTTP POST String JSON XML MultiValueMap HTTP and GZIP 33

45 Spring Android Demos Spring Android Showcase Demo 34

46 Spring Social on Android Supports connecting to supported Spring Social services uses same RESTful connectivity based on RestTemplate 35

47 Enter Spring Android! 36

48 do NOT reinvent the Wheel! 37

49 Dependency Injection on Android Problems with DI on Android hard reliance on base classes hard reliance on Android to manage the runtime lifecycle a POJO peer system would have been onerous 38

50 Dependency Injection on Android Lots of options RoboGuice Android Annotations the Android way 39

51 Dependency Injection on Android RoboGuice ( Pros: requires you to extend RoboApplication You must configure your beans using the AbstractAndroidModule Each Activity must extend from RoboActivity Cons: no AOP not small, at all! (400kb to a mobile application may as well be 400MBs to your enterprise application!) 40

52 Dependency Injection on Android RoboGuice ( before RoboGuice public class MyActivity extends Activity { private TextView label; private Drawable image; private SearchManager searchmanager; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.myactivity); this.label = (TextView) findviewbyid(r.id.mylabel); this.image = getresources().getdrawable(r.drawable.myimage); this.searchmanager = (SearchManager) getsystemservice(activity.search_service) } 41

53 Dependency Injection on Android RoboGuice ( 41

54 Dependency Injection on Android RoboGuice ( with RoboGuice public class MyActivity extends RoboActivity TextView Drawable SearchManager searchmanager; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.myactivity); } 41

55 Dependency Injection on Android RoboGuice ( with RoboGuice public class MyActivity extends RoboActivity TextView label; used to inject other widgets or Drawable SearchManager searchmanager; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.myactivity); } 41

56 Dependency Injection on Android RoboGuice ( with RoboGuice public class MyActivity extends RoboActivity TextView Drawable image; used to inject other widgets or views used to inject SearchManager searchmanager; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.myactivity); } 41

57 Dependency Injection on Android RoboGuice ( with RoboGuice public class MyActivity extends RoboActivity TextView Drawable SearchManager searchmanager; used to inject other widgets or views used to inject Resources used to inject other objects public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.myactivity); } 41

58 Dependency Injection on Android RoboGuice ( Pros: requires you to extend RoboApplication You must configure your beans using the AbstractAndroidModule Each Activity must extend from RoboActivity Cons: no AOP not small, at all! (400kb to a mobile application may as well be 400MBs to your enterprise application!) runtime inefficiency 42

59 Beyond Dependency Injection Android Annotations ( Pros: compile-time code generation means no runtime cost can be used side-by-side with RoboGuice Cons: extra build step some redundancy with RoboGuice 43

60 Beyond Dependency Injection Android Annotations public class MyActivity extends Activity TextView Drawable image; SearchManager searchmanager; 44

61 Beyond Dependency Injection Android Annotations public class MyActivity extends Activity { sets the TextView Drawable image; SearchManager searchmanager; 44

62 Beyond Dependency Injection Android Annotations public class MyActivity extends Activity TextView mylabel; sets the layout Inject another widget or Drawable image; SearchManager searchmanager; 44

63 Beyond Dependency Injection Android Annotations public class MyActivity extends Activity TextView Drawable image; sets the layout Inject another widget or view specify a resource id (it is optional) SearchManager searchmanager; 44

64 Beyond Dependency Injection Android Annotations public class MyActivity extends Activity TextView Drawable image; sets the layout Inject another widget or view specify a resource id (it is optional) SearchManager searchmanager; Inject objects configured manually 44

65 Dependency Injection on Android The Android way android applications all have required access to a single Application class You can override the Application class Thus, instant singleton! 45

66 Dependency Injection on Android The Android way public class MainApplication extends Application { private MyService public void oncreate() { super.oncreate(); service = new MyServiceImpl(); } } public MyService getmyservice() { return this.service; } 46

67 Dependency Injection on Android The Android way public class MainApplication extends Application { private MyService service; extend the public void oncreate() { super.oncreate(); service = new MyServiceImpl(); } } public MyService getmyservice() { return this.service; } 46

68 Dependency Injection on Android The Android way public class MainApplication extends Application { private MyService public void oncreate() { super.oncreate(); service = new MyServiceImpl(); } extend the Application register your global singleton services } public MyService getmyservice() { return this.service; } 46

69 Dependency Injection on Android The Android way public class MainActivity extends Activity { private MyService service; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); MainApplication app = (MainApplication) getapplication(); service = app.getmyservice(); } 47

70 Dependency Injection on Android The Android way public class MainActivity extends Activity { } private MyService service; get a pointer to the public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); MainApplication app = (MainApplication) getapplication(); service = app.getmyservice(); } 47

71 Dependency Injection on Android The Android way public class MainActivity extends Activity { } private MyService service; get a pointer to the public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); MainApplication app = (MainApplication) getapplication(); service = app.getmyservice(); } access your service 47

72 Additional Resources Project Home Sample Code Blog Posts 48

73 Q&A SpringOne 2GX All rights reserved. Do not distribute without permission.

8/30/15 MOBILE COMPUTING. CSE 40814/60814 Fall How many of you. have implemented a command-line user interface?

8/30/15 MOBILE COMPUTING. CSE 40814/60814 Fall How many of you. have implemented a command-line user interface? MOBILE COMPUTING CSE 40814/60814 Fall 2015 How many of you have implemented a command-line user interface? 1 How many of you have implemented a graphical user interface? HTML/CSS Java Swing.NET Framework

More information

COMP4521 EMBEDDED SYSTEMS SOFTWARE

COMP4521 EMBEDDED SYSTEMS SOFTWARE COMP4521 EMBEDDED SYSTEMS SOFTWARE LAB 1: DEVELOPING SIMPLE APPLICATIONS FOR ANDROID INTRODUCTION Android is a mobile platform/os that uses a modified version of the Linux kernel. It was initially developed

More information

Applications. Marco Ronchetti Università degli Studi di Trento

Applications. Marco Ronchetti Università degli Studi di Trento Applications Marco Ronchetti Università degli Studi di Trento Android Applications An Android application typically consists of one or more related, loosely bound activities for the user to interact with.

More information

Multi Client Development with Spring

Multi Client Development with Spring Multi Client Development with Spring Josh Long Spring Developer Advocate, SpringSource, a Division of VMWare http://www.joshlong.com @starbuxman josh.long@springsource.com 2012 SpringOne 2GX 2012. All

More information

App Development for Android. Prabhaker Matet

App Development for Android. Prabhaker Matet App Development for Android Prabhaker Matet Development Tools (Android) Java Java is the same. But, not all libs are included. Unused: Swing, AWT, SWT, lcdui Android Studio (includes Intellij IDEA) Android

More information

Migrating traditional Java EE applications to mobile

Migrating traditional Java EE applications to mobile Migrating traditional Java EE applications to mobile Serge Pagop Sr. Channel MW Solution Architect, Red Hat spagop@redhat.com Burr Sutter Product Management Director, Red Hat bsutter@redhat.com 2014-04-16

More information

Android Application Development. By : Shibaji Debnath

Android Application Development. By : Shibaji Debnath Android Application Development By : Shibaji Debnath About Me I have over 10 years experience in IT Industry. I have started my career as Java Software Developer. I worked in various multinational company.

More information

Getting started: Installing IDE and SDK. Marco Ronchetti Università degli Studi di Trento

Getting started: Installing IDE and SDK. Marco Ronchetti Università degli Studi di Trento Getting started: Installing IDE and SDK Marco Ronchetti Università degli Studi di Trento Alternative: Android Studio http://developer.android.com/develop/index.html 2 Tools behind the scenes dx allows

More information

Security model. Marco Ronchetti Università degli Studi di Trento

Security model. Marco Ronchetti Università degli Studi di Trento Security model Marco Ronchetti Università degli Studi di Trento Security model 2 Android OS is a multi-user Linux in which each application is a different user. By default, the system assigns each application

More information

Android HelloWorld - Example. Tushar B. Kute,

Android HelloWorld - Example. Tushar B. Kute, Android HelloWorld - Example Tushar B. Kute, http://tusharkute.com Anatomy of Android Application Anatomy of Android Application Java This contains the.java source files for your project. By default, it

More information

Agenda. Overview of Xamarin and Xamarin.Android Xamarin.Android fundamentals Creating a detail screen

Agenda. Overview of Xamarin and Xamarin.Android Xamarin.Android fundamentals Creating a detail screen Gill Cleeren Agenda Overview of Xamarin and Xamarin.Android Xamarin.Android fundamentals Creating a detail screen Lists and navigation Navigating from master to detail Optimizing the application Preparing

More information

Android Beginners Workshop

Android Beginners Workshop Android Beginners Workshop at the M O B IL E M O N D AY m 2 d 2 D E V E L O P E R D A Y February, 23 th 2010 Sven Woltmann, AndroidPIT Sven Woltmann Studied Computer Science at the TU Ilmenau, 1994-1999

More information

App Development for Smart Devices. Lec #18: Advanced Topics

App Development for Smart Devices. Lec #18: Advanced Topics App Development for Smart Devices CS 495/595 - Fall 2011 Lec #18: Advanced Topics Tamer Nadeem Dept. of Computer Science Objective Web Browsing Android Animation Android Backup Presentation - Developing

More information

Software Practice 3 Before we start Today s lecture Today s Task Team organization

Software Practice 3 Before we start Today s lecture Today s Task Team organization 1 Software Practice 3 Before we start Today s lecture Today s Task Team organization Prof. Hwansoo Han T.A. Jeonghwan Park 43 2 Lecture Schedule Spring 2017 (Monday) This schedule can be changed M A R

More information

Android Workshop: Model View Controller ( MVC):

Android Workshop: Model View Controller ( MVC): Android Workshop: Android Details: Android is framework that provides java programmers the ability to control different aspects of smart devices. This interaction happens through the Android SDK (Software

More information

Android Basics. - Bhaumik Shukla Android Application STEALTH FLASH

Android Basics. - Bhaumik Shukla Android Application STEALTH FLASH Android Basics - Bhaumik Shukla Android Application Developer @ STEALTH FLASH Introduction to Android Android is a software stack for mobile devices that includes an operating system, middleware and key

More information

Getting Started With Android Feature Flags

Getting Started With Android Feature Flags Guide Getting Started With Android Feature Flags INTRO When it comes to getting started with feature flags (Android feature flags or just in general), you have to understand that there are degrees of feature

More information

Introduction To Android

Introduction To Android Introduction To Android Mobile Technologies Symbian OS ios BlackBerry OS Windows Android Introduction to Android Android is an operating system for mobile devices such as smart phones and tablet computers.

More information

EMBEDDED SYSTEMS PROGRAMMING Application Basics

EMBEDDED SYSTEMS PROGRAMMING Application Basics EMBEDDED SYSTEMS PROGRAMMING 2015-16 Application Basics APPLICATIONS Application components (e.g., UI elements) are objects instantiated from the platform s frameworks Applications are event driven ( there

More information

Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing

Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing Jürgen Höller, Principal Engineer, SpringSource 2012 SpringSource, A division of VMware. All rights reserved Deployment Platforms: Becoming

More information

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement. CSCE 315: Android Lectures (1/2) Dr. Jaerock Kwon App Development for Mobile Devices Jaerock Kwon, Ph.D. Assistant Professor in Computer Engineering App Development for Mobile Devices Jaerock Kwon, Ph.D.

More information

Understand applications and their components. activity service broadcast receiver content provider intent AndroidManifest.xml

Understand applications and their components. activity service broadcast receiver content provider intent AndroidManifest.xml Understand applications and their components activity service broadcast receiver content provider intent AndroidManifest.xml Android Application Written in Java (it s possible to write native code) Good

More information

Real-Time Embedded Systems

Real-Time Embedded Systems Real-Time Embedded Systems DT8025, Fall 2016 http://goo.gl/azfc9l Lecture 8 Masoumeh Taromirad m.taromirad@hh.se Center for Research on Embedded Systems School of Information Technology 1 / 51 Smart phones

More information

Android Development Tutorial. Yi Huang

Android Development Tutorial. Yi Huang Android Development Tutorial Yi Huang Contents What s Android Android architecture Android software development Hello World on Android More 2 3 What s Android Android Phones Sony X10 HTC G1 Samsung i7500

More information

Tools for Accessing REST APIs

Tools for Accessing REST APIs APPENDIX A Tools for Accessing REST APIs When you have to work in an agile development environment, you need to be able to quickly test your API. In this appendix, you will learn about open source REST

More information

Oracle Corporation

Oracle Corporation 1 2012 Oracle Corporation Oracle WebLogic Server 12c: Developing Modern, Lightweight Java EE 6 Applications Will Lyons, Director of WebLogic Server Product Management Pieter Humphrey, Principal Product

More information

EMBEDDED SYSTEMS PROGRAMMING Android NDK

EMBEDDED SYSTEMS PROGRAMMING Android NDK EMBEDDED SYSTEMS PROGRAMMING 2014-15 Android NDK WHAT IS THE NDK? The Android NDK is a set of cross-compilers, scripts and libraries that allows to embed native code into Android applications Native code

More information

Manifest.xml. Activity.java

Manifest.xml. Activity.java Dr.K.Somasundaram Ph.D Professor Department of Computer Science and Applications Gandhigram Rural Institute, Gandhigram, Tamil Nadu-624302, India ka.somasundaram@gmail.com Manifest.xml

More information

Getting Started. Dr. Miguel A. Labrador Department of Computer Science & Engineering

Getting Started. Dr. Miguel A. Labrador Department of Computer Science & Engineering Getting Started Dr. Miguel A. Labrador Department of Computer Science & Engineering labrador@csee.usf.edu http://www.csee.usf.edu/~labrador 1 Goals Setting up your development environment Android Framework

More information

LifeStreet Media Android Publisher SDK Integration Guide

LifeStreet Media Android Publisher SDK Integration Guide LifeStreet Media Android Publisher SDK Integration Guide Version 1.12.0 Copyright 2015 Lifestreet Corporation Contents Introduction... 3 Downloading the SDK... 3 Choose type of SDK... 3 Adding the LSM

More information

Android for Java Developers Dr. Markus Schmall, Jochen Hiller

Android for Java Developers Dr. Markus Schmall, Jochen Hiller Android for Java Developers Dr. Markus Schmall Jochen Hiller 1 Who we are Dr. Markus Schmall m.schmall@telekom.de Deutsche Telekom AG Jochen Hiller j.hiller@telekom.de Deutsche Telekom AG 2 Agenda Introduction

More information

Creating RESTful web services with Spring Boot

Creating RESTful web services with Spring Boot Creating RESTful web services with Spring Boot The Spring framework Free and open source Inversion of Control Container (IoC) Modules DI / AOP Data /Security Web MVC/ REST So much more +++ What is Spring

More information

M O B I L E T R A I N I N G. Beginning Your Android Programming Journey

M O B I L E T R A I N I N G. Beginning Your Android Programming Journey Beginning Your Android Programming Journey An Introductory Chapter from EDUmobile.ORG Android Development Training Program NOTICE: You Do NOT Have the Right to Reprint or Resell This ebook! You Also MAY

More information

Solving an Android Threading Problem

Solving an Android Threading Problem Home Java News Brief Archive OCI Educational Services Solving an Android Threading Problem Introduction by Eric M. Burke, Principal Software Engineer Object Computing, Inc. (OCI) By now, you probably know

More information

Learn about Android Content Providers and SQLite

Learn about Android Content Providers and SQLite Tampa Bay Android Developers Group Learn about Android Content Providers and SQLite Scott A. Thisse March 20, 2012 Learn about Android Content Providers and SQLite What are they? How are they defined?

More information

Introduction to Android

Introduction to Android Introduction to Android Ambient intelligence Alberto Monge Roffarello Politecnico di Torino, 2017/2018 Some slides and figures are taken from the Mobile Application Development (MAD) course Disclaimer

More information

JVA-563. Developing RESTful Services in Java

JVA-563. Developing RESTful Services in Java JVA-563. Developing RESTful Services in Java Version 2.0.1 This course shows experienced Java programmers how to build RESTful web services using the Java API for RESTful Web Services, or JAX-RS. We develop

More information

Embedded Systems Programming - PA8001

Embedded Systems Programming - PA8001 Embedded Systems Programming - PA8001 http://goo.gl/ydeczu Lecture 8 Mohammad Mousavi m.r.mousavi@hh.se Center for Research on Embedded Systems School of Information Science, Computer and Electrical Engineering

More information

University of Stirling Computing Science Telecommunications Systems and Services CSCU9YH: Android Practical 1 Hello World

University of Stirling Computing Science Telecommunications Systems and Services CSCU9YH: Android Practical 1 Hello World University of Stirling Computing Science Telecommunications Systems and Services CSCU9YH: Android Practical 1 Hello World Before you do anything read all of the following red paragraph! For this lab you

More information

Advance Mobile& Web Application development using Angular and Native Script

Advance Mobile& Web Application development using Angular and Native Script Advance Mobile& Web Application development using Angular and Native Script Objective:- As the popularity of Node.js continues to grow each day, it is highly likely that you will use it when you are building

More information

ANDROID APPS (NOW WITH JELLY BEANS!) Jordan Jozwiak November 11, 2012

ANDROID APPS (NOW WITH JELLY BEANS!) Jordan Jozwiak November 11, 2012 ANDROID APPS (NOW WITH JELLY BEANS!) Jordan Jozwiak November 11, 2012 AGENDA Android v. ios Design Paradigms Setup Application Framework Demo Libraries Distribution ANDROID V. IOS Android $25 one-time

More information

Improve and Expand JavaServer Faces Technology with JBoss Seam

Improve and Expand JavaServer Faces Technology with JBoss Seam Improve and Expand JavaServer Faces Technology with JBoss Seam Michael Yuan Kito D. Mann Product Manager, Red Hat Author, JSF in Action http://www.michaelyuan.com/seam/ Principal Consultant Virtua, Inc.

More information

Developed and taught by well-known Contact author and developer. At public for details venues or onsite at your location.

Developed and taught by well-known Contact author and developer. At public for details venues or onsite at your location. 2011 Marty Hall Android Programming Basics Originals of Slides and Source Code for Examples: http://www.coreservlets.com/android-tutorial/ Customized Java EE Training: http://courses.coreservlets.com/

More information

WebCenter Interaction 10gR3 Overview

WebCenter Interaction 10gR3 Overview WebCenter Interaction 10gR3 Overview Brian C. Harrison Product Management WebCenter Interaction and Related Products Summary of Key Points AquaLogic Interaction portal has been renamed

More information

Building MyFirstApp Android Application Step by Step. Sang Shin Learn with Passion!

Building MyFirstApp Android Application Step by Step. Sang Shin   Learn with Passion! Building MyFirstApp Android Application Step by Step. Sang Shin www.javapassion.com Learn with Passion! 1 Disclaimer Portions of this presentation are modifications based on work created and shared by

More information

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Managing Screen Orientation

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Managing Screen Orientation EMBEDDED SYSTEMS PROGRAMMING 2016-17 Application Tip: Managing Screen Orientation ORIENTATIONS Portrait Landscape Reverse portrait Reverse landscape ON REVERSE PORTRAIT Android: all four orientations are

More information

INTRODUCTION TO ANDROID

INTRODUCTION TO ANDROID INTRODUCTION TO ANDROID 1 Niv Voskoboynik Ben-Gurion University Electrical and Computer Engineering Advanced computer lab 2015 2 Contents Introduction Prior learning Download and install Thread Android

More information

OSGi on the Server. Martin Lippert (it-agile GmbH)

OSGi on the Server. Martin Lippert (it-agile GmbH) OSGi on the Server Martin Lippert (it-agile GmbH) lippert@acm.org 2009 by Martin Lippert; made available under the EPL v1.0 October 6 th, 2009 Overview OSGi in 5 minutes Apps on the server (today and tomorrow)

More information

Mastering Spring MVC 3

Mastering Spring MVC 3 Mastering Spring MVC 3 And its @Controller programming model Get the code for the demos in this presentation at http://src.springsource.org/svn/spring-samples/mvc-showcase 2010 SpringSource, A division

More information

Diving into Android. By Jeroen Tietema. Jeroen Tietema,

Diving into Android. By Jeroen Tietema. Jeroen Tietema, Diving into Android By Jeroen Tietema Jeroen Tietema, 2015 1 Requirements 4 Android SDK 1 4 Android Studio (or your IDE / editor of choice) 4 Emulator (Genymotion) or a real device. 1 See https://developer.android.com

More information

Computer Science E-76 Building Mobile Applications

Computer Science E-76 Building Mobile Applications Computer Science E-76 Building Mobile Applications Lecture 3: [Android] The SDK, Activities, and Views February 13, 2012 Dan Armendariz danallan@mit.edu 1 http://developer.android.com Android SDK and NDK

More information

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject

More information

Basic GUI elements - exercises

Basic GUI elements - exercises Basic GUI elements - exercises https://developer.android.com/studio/index.html LIVE DEMO Please create a simple application, which will be used to calculate the area of basic geometric figures. To add

More information

BlackBerry Developer Global Tour. Android. Table of Contents

BlackBerry Developer Global Tour. Android. Table of Contents BlackBerry Developer Global Tour Android Table of Contents Page 2 of 55 Session - Set Up the BlackBerry Dynamics Development Environment... 5 Overview... 5 Compatibility... 5 Prepare for Application Development...

More information

App Development for Smart Devices. Lec #9: Advanced Topics

App Development for Smart Devices. Lec #9: Advanced Topics App Development for Smart Devices CS 495/595 - Fall 2013 Lec #9: Advanced Topics Tamer Nadeem Dept. of Computer Science Objective Web Browsing Android Animation Android Backup Publishing Your Application

More information

Etanova Enterprise Solutions

Etanova Enterprise Solutions Etanova Enterprise Solutions Server Side Development» 2018-06-28 http://www.etanova.com/technologies/server-side-development Contents.NET Framework... 6 C# and Visual Basic Programming... 6 ASP.NET 5.0...

More information

Create new Android project in Android Studio Add Button and TextView to layout Learn how to use buttons to call methods. Modify strings.

Create new Android project in Android Studio Add Button and TextView to layout Learn how to use buttons to call methods. Modify strings. Hello World Lab Objectives: Create new Android project in Android Studio Add Button and TextView to layout Learn how to use buttons to call methods. Modify strings.xml What to Turn in: The lab evaluation

More information

CSCU9YH Development with Android

CSCU9YH Development with Android CSCU9YH Development with Android Computing Science and Mathematics University of Stirling 1 Android Context 3 Smartphone Market share Source: http://www.idc.com/promo/smartphone-market-share/os 4 Smartphone

More information

Enterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009

Enterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 Enterprise Java Development using JPA, Hibernate and Spring Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ)

More information

Group B: Assignment No 8. Title of Assignment: To verify the operating system name and version of Mobile devices.

Group B: Assignment No 8. Title of Assignment: To verify the operating system name and version of Mobile devices. Group B: Assignment No 8 Regularity (2) Performance(5) Oral(3) Total (10) Dated Sign Title of Assignment: To verify the operating system name and version of Mobile devices. Problem Definition: Write a

More information

In this Class Mark shows you how to put applications into packages and how to run them through the command line.

In this Class Mark shows you how to put applications into packages and how to run them through the command line. Overview Unless you ve been sleeping for the last couple of years, you know that Mobile is H-O-T! And the most popular mobile platform in the world? That s Android. Do you have a great idea for an App

More information

Webspeed. I am back. Enhanced WebSpeed

Webspeed. I am back. Enhanced WebSpeed Webspeed. I am back Enhanced WebSpeed OpenEdge 11.6 WebSpeed!!! Modernize your Progress OpenEdge web apps through enhanced Progress Application Server (PAS) support for WebSpeed Achieve improved performance

More information

Copyright 2014 Blue Net Corporation. All rights reserved

Copyright 2014 Blue Net Corporation. All rights reserved a) Abstract: REST is a framework built on the principle of today's World Wide Web. Yes it uses the principles of WWW in way it is a challenge to lay down a new architecture that is already widely deployed

More information

Vienos veiklos būsena. Theory

Vienos veiklos būsena. Theory Vienos veiklos būsena Theory While application is running, we create new Activities and close old ones, hide the application and open it again and so on, and Activity can process all these events. It is

More information

Android Exam AND-401 Android Application Development Version: 7.0 [ Total Questions: 129 ]

Android Exam AND-401 Android Application Development Version: 7.0 [ Total Questions: 129 ] s@lm@n Android Exam AND-401 Android Application Development Version: 7.0 [ Total Questions: 129 ] Android AND-401 : Practice Test Question No : 1 Which of the following is required to allow the Android

More information

Webservices In Java Tutorial For Beginners Using Netbeans Pdf

Webservices In Java Tutorial For Beginners Using Netbeans Pdf Webservices In Java Tutorial For Beginners Using Netbeans Pdf Java (using Annotations, etc.). Part of way) (1/2). 1- Download Netbeans IDE for Java EE from here: 2- Follow the tutorial for creating a web

More information

JSR 311: JAX-RS: The Java API for RESTful Web Services

JSR 311: JAX-RS: The Java API for RESTful Web Services JSR 311: JAX-RS: The Java API for RESTful Web Services Marc Hadley, Paul Sandoz, Roderico Cruz Sun Microsystems, Inc. http://jsr311.dev.java.net/ TS-6411 2007 JavaOne SM Conference Session TS-6411 Agenda

More information

1. Implementation of Inheritance with objects, methods. 2. Implementing Interface in a simple java class. 3. To create java class with polymorphism

1. Implementation of Inheritance with objects, methods. 2. Implementing Interface in a simple java class. 3. To create java class with polymorphism ANDROID TRAINING COURSE CONTENT SECTION 1 : INTRODUCTION Android What it is? History of Android Importance of Java language for Android Apps Other mobile OS-es Android Versions & different development

More information

Writing Efficient Drive Apps for Android. Claudio Cherubino / Alain Vongsouvanh Google Drive Developer Relations

Writing Efficient Drive Apps for Android. Claudio Cherubino / Alain Vongsouvanh Google Drive Developer Relations Writing Efficient Drive Apps for Android Claudio Cherubino / Alain Vongsouvanh Google Drive Developer Relations Raise your hand if you use Google Drive source: "put your hands up!" (CC-BY) Raise the other

More information

Introduction to Android Development

Introduction to Android Development Introduction to Android Development What is Android? Android is the customizable, easy to use operating system that powers more than a billion devices across the globe - from phones and tablets to watches,

More information

Multiple Activities. Many apps have multiple activities

Multiple Activities. Many apps have multiple activities Intents Lecture 7 Multiple Activities Many apps have multiple activities An activity A can launch another activity B in response to an event The activity A can pass data to B The second activity B can

More information

Mobile Programming Lecture 5. Composite Views, Activities, Intents and Filters

Mobile Programming Lecture 5. Composite Views, Activities, Intents and Filters Mobile Programming Lecture 5 Composite Views, Activities, Intents and Filters Lecture 4 Review How do you get the value of a string in the strings.xml file? What are the steps to populate a Spinner or

More information

SSC - Web applications and development Introduction and Java Servlet (I)

SSC - Web applications and development Introduction and Java Servlet (I) SSC - Web applications and development Introduction and Java Servlet (I) Shan He School for Computational Science University of Birmingham Module 06-19321: SSC Outline Outline of Topics What will we learn

More information

Tabel mysql. Kode di PHP. Config.php. Service.php

Tabel mysql. Kode di PHP. Config.php. Service.php Tabel mysql Kode di PHP Config.php Service.php Layout Kode di Main Activity package com.example.mini.webandroid; import android.app.progressdialog; import android.os.asynctask; import android.support.v7.app.appcompatactivity;

More information

com Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/-

com Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/- www.javabykiran. com 8888809416 8888558802 Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/- Java by Kiran J2EE SYLLABUS Servlet JSP XML Servlet

More information

Lab 1: Getting Started With Android Programming

Lab 1: Getting Started With Android Programming Islamic University of Gaza Faculty of Engineering Computer Engineering Dept. Eng. Jehad Aldahdooh Mobile Computing Android Lab Lab 1: Getting Started With Android Programming To create a new Android Project

More information

Mobile Application Development Lab [] Simple Android Application for Native Calculator. To develop a Simple Android Application for Native Calculator.

Mobile Application Development Lab [] Simple Android Application for Native Calculator. To develop a Simple Android Application for Native Calculator. Simple Android Application for Native Calculator Aim: To develop a Simple Android Application for Native Calculator. Procedure: Creating a New project: Open Android Stdio and then click on File -> New

More information

Simple Currency Converter

Simple Currency Converter Simple Currency Converter Implementing a simple currency converter: USD Euro Colon (CR) Note. Naive implementation using the rates 1 Costa Rican Colon = 0.001736 U.S. dollars 1 Euro = 1.39900 U.S. dollars

More information

Introduction and Overview

Introduction and Overview IBM z/os Connect Enterprise Edition V2.0 API API API API API CICS Clients in the API Economy IMS DB2 Other Introduction and Overview 1 2015, IBM Corporation Topics to be Discussed Links to Pages Setting

More information

Android Software Development Kit (Part I)

Android Software Development Kit (Part I) Android Software Development Kit (Part I) Gustavo Alberto Rovelo Ruiz October 29th, 2010 Look & Touch Group 2 Presentation index What is Android? Android History Stats Why Andriod? Android Architecture

More information

CSE 660 Lab 3 Khoi Pham Thanh Ho April 19 th, 2015

CSE 660 Lab 3 Khoi Pham Thanh Ho April 19 th, 2015 CSE 660 Lab 3 Khoi Pham Thanh Ho April 19 th, 2015 Comment and Evaluation: This lab introduces us about Android SDK and how to write a program for Android platform. The calculator is pretty easy, everything

More information

Android Services. Victor Matos Cleveland State University. Services

Android Services. Victor Matos Cleveland State University. Services 22 Android Victor Matos Cleveland State University Notes are based on: Android Developers http://developer.android.com/index.html 22. Android Android A Service is an application component that runs in

More information

Application Design and Development: October 30

Application Design and Development: October 30 M149: Database Systems Winter 2018 Lecturer: Panagiotis Liakos Application Design and Development: October 30 1 Applications Programs and User Interfaces very few people use a query language to interact

More information

App Development for Smart Devices. Lec #7: Audio, Video & Telephony Try It Out

App Development for Smart Devices. Lec #7: Audio, Video & Telephony Try It Out App Development for Smart Devices CS 495/595 - Fall 2013 Lec #7: Audio, Video & Telephony Try It Out Tamer Nadeem Dept. of Computer Science Trt It Out Example - SoundPool Example - VideoView Page 2 Fall

More information

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Switching UIs

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Switching UIs EMBEDDED SYSTEMS PROGRAMMING 2015-16 Application Tip: Switching UIs THE PROBLEM How to switch from one UI to another Each UI is associated with a distinct class that controls it Solution shown: two UIs,

More information

Spoilt for Choice Which Integration Framework to choose? Mule ESB. Integration. Kai Wähner

Spoilt for Choice Which Integration Framework to choose? Mule ESB. Integration.  Kai Wähner Spoilt for Choice Which Integration Framework to choose? Integration vs. Mule ESB vs. Main Tasks Evaluation of Technologies and Products Requirements Engineering Enterprise Architecture Management Business

More information

EMBEDDED SYSTEMS PROGRAMMING Android NDK

EMBEDDED SYSTEMS PROGRAMMING Android NDK EMBEDDED SYSTEMS PROGRAMMING 2015-16 Android NDK WHAT IS THE NDK? The Android NDK is a set of cross-compilers, scripts and libraries that allows to embed native code into Android applications Native code

More information

Developing Enterprise Services for Mobile Devices using Rational Software Architect / Worklight

Developing Enterprise Services for Mobile Devices using Rational Software Architect / Worklight Developing Enterprise Services for Mobile Devices using Rational Software Architect / Worklight Sandeep Katoch Architect, Rational Software Architect Development sakatoch@in.ibm.com Agenda Introduction

More information

UNDERSTANDING ACTIVITIES

UNDERSTANDING ACTIVITIES Activities Activity is a window that contains the user interface of your application. An Android activity is both a unit of user interaction - typically filling the whole screen of an Android mobile device

More information

Tongbo Luo Cong Zheng Zhi Xu Xin Ouyang ANTI-PLUGIN: DON T LET YOUR APP PLAY AS AN ANDROID PLUGIN

Tongbo Luo Cong Zheng Zhi Xu Xin Ouyang ANTI-PLUGIN: DON T LET YOUR APP PLAY AS AN ANDROID PLUGIN Tongbo Luo Cong Zheng Zhi Xu Xin Ouyang ANTI-PLUGIN: DON T LET YOUR APP PLAY AS AN ANDROID PLUGIN Bio Black Hat Veteran. Principle Security Researcher @ PANW. Mobile Security - Discover Malware - Android

More information

Android Online Training

Android Online Training Android Online Training IQ training facility offers Android Online Training. Our Android trainers come with vast work experience and teaching skills. Our Android training online is regarded as the one

More information

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics Spring & Hibernate Overview: The spring framework is an application framework that provides a lightweight container that supports the creation of simple-to-complex components in a non-invasive fashion.

More information

Jaxb2 Maven Plugin Could Not Process Schema

Jaxb2 Maven Plugin Could Not Process Schema Jaxb2 Maven Plugin Could Not Process Schema The JAXB2 Maven Plugin project was moved to GitHub. These pages are no longer maintained and therefore do not provide the actual information. Resource entries,

More information

10.1 Introduction. Higher Level Processing. Word Recogniton Model. Text Output. Voice Signals. Spoken Words. Syntax, Semantics, Pragmatics

10.1 Introduction. Higher Level Processing. Word Recogniton Model. Text Output. Voice Signals. Spoken Words. Syntax, Semantics, Pragmatics Chapter 10 Speech Recognition 10.1 Introduction Speech recognition (SR) by machine, which translates spoken words into text has been a goal of research for more than six decades. It is also known as automatic

More information

A Crash Course to Android Mobile Platform

A Crash Course to Android Mobile Platform Enterprise Application Development using J2EE Shmulik London Lecture #2 A Crash Course to Android Mobile Platform Enterprise Application Development Using J2EE / Shmulik London 2004 Interdisciplinary Center

More information

Google Android on the Beagleboard

Google Android on the Beagleboard Google Android on the Beagleboard Introduction to the Android API, HAL and SDK Bill Gatliff bgat@billgatliff.com Freelance Embedded Systems Developer Copyright c Bill Gatliff, 2009 Google Android on the

More information

Mobile Technologies JULY 24, 2018

Mobile Technologies JULY 24, 2018 Mobile Technologies JULY 24, 2018 Overview Motivation Application Android Development What is a Mobile Technology Cellphones, Mobile Gadgets Services that power them (GPS, Radio) Why Mobile? Why Mobile?

More information

Seam 3. Pete Muir JBoss, a Division of Red Hat

Seam 3. Pete Muir JBoss, a Division of Red Hat Seam 3 Pete Muir JBoss, a Division of Red Hat Road Map Introduction Java EE 6 Java Contexts and Dependency Injection Seam 3 Mission Statement To provide a fully integrated development platform for building

More information

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP 2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries

More information

Java & Android. Java Fundamentals. Madis Pink 2016 Tartu

Java & Android. Java Fundamentals. Madis Pink 2016 Tartu Java & Android Java Fundamentals Madis Pink 2016 Tartu 1 Agenda» Brief background intro to Android» Android app basics:» Activities & Intents» Resources» GUI» Tools 2 Android» A Linux-based Operating System»

More information