A Tour of Android. and some of it s APIs. Bryan Noll

Size: px
Start display at page:

Download "A Tour of Android. and some of it s APIs. Bryan Noll"

Transcription

1 A Tour of Android and some of it s APIs Bryan Noll

2 Me professionally

3 A good starting point The OS The VM Basic Views Basic Layouts Basic Activities

4 Building Blocks Activities Services Broadcast Receivers Content Providers The AndroidManifest.xml file

5 Activities An activity presents a visual user interface for one focused endeavor the user can undertake. You ll have a WhateverItIsActivity.java class for each screen/ page/view in your UI, and this class will be coupled to a view template defined in xml. Programmatic APIs exist such that you can dynamically add to the view hierarchy. Think Swing or GWT or some such UI tool.

6 Services A service doesn't have a visual user interface, but rather runs in the background for an indefinite period of time. Like activities and the other components, services run in the main thread of the application process. So that they won't block other components or the user interface, they often spawn another thread for time-consuming tasks.

7 Broadcast Receivers A broadcast receiver is a component that does nothing but receive and react to broadcast announcements. Many broadcasts originate in system code - for example, announcements that the timezone has changed, that the battery is low, that a picture has been taken, or that the user changed a language preference. Applications can also initiate broadcasts - for example, to let other applications know that some data has been downloaded to the device and is available for them to use. There is no UI directly associated with these guys, but they can cause one to be shown. Think fancy version of the Observer pattern.

8 Content Providers A content provider makes a specific set of the application's data available to other applications. The data can be stored in the file system, in an SQLite database, or in any other manner that makes sense. You define a ContentProvider subclass to expose your data to others using the conventions expected by ContentResolver and Cursor objects. This means implementing 6 abstract methods: query(), insert(), update(), delete(), gettype() & oncreate

9 AndroidManfest.xml Every application must have an AndroidManifest.xml file (with precisely that name) in its root directory. The manifest presents essential information about the application to the Android system, information the system must have before it can run any of the application's code. Names the Java package for the app, describes the components (activities, services, receivers), declares required API permissions, declares Android API that the application will work with.

10 Detecting an incoming text message - the manifest When the app gets installed, it will need to request permission from it s host environment in order to become aware whenever the system receives an SMS message. We tell the app to request the permission that must be granted for it to work properly in the manifest. <uses-permission android:name="android.permission.receive_sms" />

11 Detecting an incoming text message - the receiver Implement a BroadcastReceiver. public class SmsReceiver extends BroadcastReceiver { Override public void onreceive(context context, Intent intent) {

12 Detecting an incoming text message - getting it Get the SMS message (we re still in the BroadcastReceiver.onReceive implementation) Bundle bundle = intent.getextras(); SmsMessage[] msgs = null; if (bundle!= null) { Object[] pdus = (Object[]) bundle.get("pdus"); msgs = new SmsMessage[pdus.length]; String[] originatingaddresses = new String[msgs.length]; String[] textsreceived = new String[msgs.length]; for (int i=0; i<msgs.length; i++){ msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]); String originatingaddress = msgs[i].getoriginatingaddress(); originatingaddresses[i] = originatingaddress; textsreceived[i] = msgs[i].getmessagebody();

13 Detecting an incoming text message - wait what? How, exactly, can we count on intent.getextras() to return us a useful bundle that can then actually return to us some useful pdus when we say bundle.get( pdus ). Back to the manifest. <receiver android:name=".smsreceiver"> <intent-filter> <action android:name= "android.provider.telephony.sms_received" /> </intent-filter> </receiver>

14 We ve got the text message, now what? Start a service that will deal with this SMS message in whatever way we want. (Still in onreceive of our BroadcaseReceiver) Intent pretextserviceintent = new Intent(context, PreTextService.class); pretextserviceintent.putextra( C.ORIGINATING_ADDRESSES, originatingaddresses); pretextserviceintent.putextra( C.TEXTS_RECEIVED, textsreceived);

15 Dealing with the text message - the service in the manifest Configuring it in the manifest in our case is as simple as <service android:name=".pretextservice" />

16 Dealing with the text message - the service Implement a service public class PreTextService extends Service implements LocationListener Set up the objects you need (NotificationManager, LocationManager, DBAccessor, etc.) public void oncreate() { Do the work public int onstartcommand(final Intent intent, int flags, int startid) {

17 The service, get location change updates private LocationManager locationmanager; this.locationmanager = (LocationManager) getsystemservice(context.location_service); this.locationmanager.requestlocationupdates( LocationManager.GPS_PROVIDER, 0, 0, this); this.locationmanager.requestlocationupdates( LocationManager.NETWORK_PROVIDER, 0, 0, this); The method defined by the LocationListener interface: public void onlocationchanged(location location) { When you re timer is done this.locationmanager.removeupdates(this);

18 Location updates in the manifest All of the previous code will only work if we update the manfiest like so: <uses-permission android:name="android.permission.access_fine_location" />

19 Location updates - getbestprovider is not your friend Supposedly Returns the name of the provider that best meets the given criteria. Criteria criteria = new Criteria(); criteria.setaccuracy(criteria.accuracy_fine); public String getbestprovider (Criteria criteria, boolean enabledonly)

20 Notify your user - setup This is all happening in the Service subclass. private NotificationManager notificationmanager; this.notificationmanager = (NotificationManager) getsystemservice(context.notification_service);

21 Notify your user - declare your intent Long time = System.currentTimeMillis(); Intent newintent = new Intent(PreTextService.this, PreTextActivity.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); newintent.putextra(c.notification_id, time.intvalue()); newintent.putextra(c.ice_id, iceid); PendingIntent pendingintent = PendingIntent.getActivity(PreTextService.this, 0, newintent, PendingIntent.FLAG_UPDATE_CURRENT);

22 Notify your user - actually notify them Notification n = new Notification( R.drawable.underwood_small_black_text_white_bg, "PreText", time); // time is System.currentTimeInMillis String notificationcontenttext = "A message was intercepted."; if (shouldautorespond) { PreTextService.this.autoRespond(originatingAddress); notificationcontenttext = "A message was responded to."; n.setlatesteventinfo(pretextservice.this, "New PreText", notificationcontenttext, pendingintent);

23 Notify your user - ditch the notification public class PreTextActivity extends Activity { private NotificationManager public void oncreate(bundle savedinstancestate) { this.notificationmanager = (NotificationManager) protected void onstart() { Bundle extras = getintent().getextras(); if (extras!= null) { if (extras.containskey(c.notification_id)) { int notificationid = extras.getint(c.notification_id); if (this.notificationmanager == null) { this.notificationmanager = (NotificationManager) getsystemservice(context.notification_service); this.notificationmanager.cancel(c.pretext, notificationid); Thursday, November 11, 2010

24 The Map - show it in the most basic possible way // The z field specifies the zoom level. A zoom level of 1 shows the // whole Earth, centered at the given lat,lng. A zoom level of 2 shows // a quarter of the Earth, and so on. The highest zoom level is 23. // A larger zoom level will be clamped to 23. int zoom = 10; String url = "geo:" + this.latitude + "," + this.longitude + "?z=" + zoom; Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); this.activity.startactivity(intent); The problem. No way to put a pin on the map. At least not that I could find.

25 The Map - show it in a slightly more painful way that works Intent intent = new Intent( this.activity, PreTextMapActivity.class); intent.putextra(c.latitude, this.latitude); intent.putextra(c.longitude, this.longitude); this.activity.startactivity(intent); OK. But now I had to implement a custom Activity.

26 The Map - the custom Activity public class PreTextMapActivity extends MapActivity { private MapView mapview; private MapController mapcontroller; private GeoPoint protected void oncreate(bundle savedinstancestate) { this.mapview = (MapView) findviewbyid(r.id.mapview); this.mapview.setbuiltinzoomcontrols(true); this.mapcontroller = this.mapview.getcontroller(); addlocationmarker();

27 The Map - adding the pin public class PreTextMapActivity extends MapActivity { private void addlocationmarker() { if (this.haslocationreading) { // add a location marker MapOverlay mapoverlay = new MapOverlay(); List<Overlay> overlays = mapview.getoverlays(); overlays.clear(); overlays.add(mapoverlay); What s this overlay thing?

28 The Map - the overlay private class MapOverlay extends Overlay { // An inner class of the map public boolean draw(canvas canvas, MapView mapview, boolean shadow, long when) { super.draw(canvas, mapview, shadow); // convert the GeoPoint to screen pixels Point screenpoints = new Point(); mapview.getprojection().topixels(geopoint, screenpoints); // add the marker Bitmap bmp = BitmapFactory.decodeResource( getresources(), R.drawable.mappin_text); int todeductfromx = MAPPIN_PIXELS_WIDTH / 2; int todeductfromy = MAPPIN_PIXELS_HEIGHT; canvas.drawbitmap(bmp, screenpoints.x - todeductfromx, screenpoints.y - todeductfromy, null); return true;

29 The Map - the view <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent"> <com.google.android.maps.mapview android:id="@+id/mapview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:enabled="true" android:clickable="true" android:apikey="04fgs1xvbeihegmuwd4fujhjvwz7ba1qgm-8pbw" /> </RelativeLayout> Note the mapview id and the apikey.

30 The Map - sign up for a key

31 The Map - thanks for signing up for a key

32 The Map - and finally the manifest <uses-library android:name="com.google.android.maps" />

33 Contact API - the basics, looking up a name public static String getcontactdisplayname(string originatingaddress, Context context) { // context is a android.content.context (or this from Activity) Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(originatingAddress)); String[] projection = new String[] { PhoneLookup.DISPLAY_NAME ; String selection = null; String[] selectionargs = null; String sortorder = null; Cursor c = context.getcontentresolver().query(uri, projection, selection, selectionargs, sortorder); String displayname = null; if (c!= null && c.movetofirst()) { displayname = c.getstring(0); c.close(); if (StringUtils.isEmpty(displayName)) { return originatingaddress; else { return displayname;

34 Contact API - the manifest <uses-permission android:name= "android.permission.read_contacts" />

35 Dial this number for me public class MakePhoneDialClickListener extends BaseOnClickListener { private String phonenumber; public MakePhoneDialClickListener(String phonenumber, Activity activity) { super(activity); this.phonenumber = public void onclick(view v) { vibratephone(); String url = "tel:" + phonenumber; Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url)); this.activity.startactivity(intent);

36 Speak to me private void speak(final String texttospeak) { this.texttospeech = new TextToSpeech(this, new OnInitListener() { public void oninit(int status) { speakdo(texttospeak); private void speakdo(string texttospeak) { if (this.texttospeech!= null) { String val = texttospeak; if (StringUtils.isEmpty(textToSpeak)) { val = "empty message"; this.texttospeech.speak(val, TextToSpeech.QUEUE_FLUSH, null);

37 The Market Don t make the mistake of making it free if you ever want to not make it free. (package="com.csc.pretext.app") Don t count on a mechanism for a great feedback loop with your reviewers. Get a Google Merchant account, and don t count on a lot of clarity and support for nonobvious events.

38 That s It The End Where To Now?

LECTURE 12 BROADCAST RECEIVERS

LECTURE 12 BROADCAST RECEIVERS MOBILE APPLICATION DEVELOPMENT LECTURE 12 BROADCAST RECEIVERS IMRAN IHSAN ASSISTANT PROFESSOR WWW.IMRANIHSAN.COM Application Building Blocks Android Component Activity UI Component Typically Corresponding

More information

register/unregister for Intent to be activated if device is within a specific distance of of given lat/long

register/unregister for Intent to be activated if device is within a specific distance of of given lat/long stolen from: http://developer.android.com/guide/topics/sensors/index.html Locations and Maps Build using android.location package and google maps libraries Main component to talk to is LocationManager

More information

Android System Architecture. Android Application Fundamentals. Applications in Android. Apps in the Android OS. Program Model 8/31/2015

Android System Architecture. Android Application Fundamentals. Applications in Android. Apps in the Android OS. Program Model 8/31/2015 Android System Architecture Android Application Fundamentals Applications in Android All source code, resources, and data are compiled into a single archive file. The file uses the.apk suffix and is used

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

Monday schedule on Tuesday Great time to work with team on Course Project

Monday schedule on Tuesday Great time to work with team on Course Project Upcoming Assignments Code Review due Tuesday, February 16 2:10pm Pre-alpha version due Wednesday, February 17 Lab 5 due Monday, February 22 Read Chapter 7 (Quiz next Friday) Read article by Friday (Disaster

More information

Lecture 2 Android SDK

Lecture 2 Android SDK Lecture 2 Android SDK This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/ or send a

More information

CS378 -Mobile Computing. Services and Broadcast Receivers

CS378 -Mobile Computing. Services and Broadcast Receivers CS378 -Mobile Computing Services and Broadcast Receivers Services One of the four primary application components: activities content providers services broadcast receivers 2 Services Application component

More information

8Messaging SMS MESSAGING.

8Messaging SMS MESSAGING. 8Messaging WHAT YOU WILL LEARN IN THIS CHAPTER How to send SMS messages programmatically from within your application How to send SMS messages using the built-in Messaging application How to receive incoming

More information

Android Ecosystem and. Revised v4presenter. What s New

Android Ecosystem and. Revised v4presenter. What s New Android Ecosystem and Revised v4presenter What s New Why Mobile? 5B 4B 3B 2B 1B Landlines PCs TVs Bank users Mobiles 225M AOL 180M 135M 90M 45M 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Quarters

More information

Loca%on Support in Android. COMP 355 (Muppala) Location Services and Maps 1

Loca%on Support in Android. COMP 355 (Muppala) Location Services and Maps 1 Loca%on Support in Android COMP 355 (Muppala) Location Services and Maps 1 Loca%on Services in Android Loca%on capabili%es for applica%ons supported through the classes in android.loca%on package and Google

More information

CS371m - Mobile Computing. Content Providers And Content Resolvers

CS371m - Mobile Computing. Content Providers And Content Resolvers CS371m - Mobile Computing Content Providers And Content Resolvers Content Providers One of the four primary application components: activities content providers / content resolvers services broadcast receivers

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

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar Design Patterns MSc in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie)! Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

Upcoming Assignments Quiz today Web Ad due Monday, February 22 Lab 5 due Wednesday, February 24 Alpha Version due Friday, February 26

Upcoming Assignments Quiz today Web Ad due Monday, February 22 Lab 5 due Wednesday, February 24 Alpha Version due Friday, February 26 Upcoming Assignments Quiz today Web Ad due Monday, February 22 Lab 5 due Wednesday, February 24 Alpha Version due Friday, February 26 To be reviewed by a few class members Usability study by CPE 484 students

More information

CS 403X Mobile and Ubiquitous Computing Lecture 5: Web Services, Broadcast Receivers, Tracking Location, SQLite Databases Emmanuel Agu

CS 403X Mobile and Ubiquitous Computing Lecture 5: Web Services, Broadcast Receivers, Tracking Location, SQLite Databases Emmanuel Agu CS 403X Mobile and Ubiquitous Computing Lecture 5: Web Services, Broadcast Receivers, Tracking Location, SQLite Databases Emmanuel Agu Web Services What are Web Services? Means to call a remote method

More information

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

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) Lecture 3: Android Life Cycle and Permission Android Lifecycle An activity begins its lifecycle when entering the oncreate() state If not

More information

CS 234/334 Lab 1: Android Jump Start

CS 234/334 Lab 1: Android Jump Start CS 234/334 Lab 1: Android Jump Start Distributed: January 7, 2014 Due: Friday, January 10 or Monday, January 13 (in-person check off in Mobile Lab, Ry 167). No late assignments. Introduction The goal of

More information

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

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I) Lecture 3: Android Life Cycle and Permission Entire Lifetime An activity begins its lifecycle when entering the oncreate() state If not interrupted

More information

Answers to Exercises

Answers to Exercises Answers to Exercises CHAPTER 1 ANSWERS 1. What is an AVD? Ans: An AVD is an Android Virtual Device. It represents an Android emulator, which emulates a particular configuration of an actual Android device.

More information

Services. service: A background task used by an app.

Services. service: A background task used by an app. CS 193A Services This document is copyright (C) Marty Stepp and Stanford Computer Science. Licensed under Creative Commons Attribution 2.5 License. All rights reserved. Services service: A background task

More information

EMBEDDED SYSTEMS PROGRAMMING Android Services

EMBEDDED SYSTEMS PROGRAMMING Android Services EMBEDDED SYSTEMS PROGRAMMING 2016-17 Android Services APP COMPONENTS Activity: a single screen with a user interface Broadcast receiver: responds to system-wide broadcast events. No user interface Service:

More information

Android Security Lab WS 2013/14 Lab 2: Android Permission System

Android Security Lab WS 2013/14 Lab 2: Android Permission System Saarland University Information Security & Cryptography Group Prof. Dr. Michael Backes saarland university computer science Android Security Lab WS 2013/14 M.Sc. Sven Bugiel Version 1.2 (November 12, 2013)

More information

Mobile Programming Lecture 10. ContentProviders

Mobile Programming Lecture 10. ContentProviders Mobile Programming Lecture 10 ContentProviders Lecture 9 Review In creating a bound service, why would you choose to use a Messenger over extending Binder? What are the differences between using GPS provider

More information

Mensch-Maschine-Interaktion 2 Übung 12

Mensch-Maschine-Interaktion 2 Übung 12 Mensch-Maschine-Interaktion 2 Übung 12 Ludwig-Maximilians-Universität München Wintersemester 2010/2011 Michael Rohs 1 Preview Android Development Tips Location-Based Services and Maps Media Framework Android

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

Android. Broadcasts Services Notifications

Android. Broadcasts Services Notifications Android Broadcasts Services Notifications Broadcast receivers Application components that can receive intents from other applications Broadcast receivers must be declared in the manifest They have an associated

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

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

Android User Interface

Android User Interface Android Smartphone Programming Matthias Keil Institute for Computer Science Faculty of Engineering 20. Oktober 2014 Outline 1 Android User Interface 2 Multi-Language Support 3 Summary Matthias Keil Android

More information

Android User Interface Android Smartphone Programming. Outline University of Freiburg

Android User Interface Android Smartphone Programming. Outline University of Freiburg Android Smartphone Programming Matthias Keil Institute for Computer Science Faculty of Engineering 20. Oktober 2014 Outline 1 2 Multi-Language Support 3 Summary Matthias Keil 20. Oktober 2014 2 / 19 From

More information

Hybrid Apps Combining HTML5 + JAVASCRIPT + ANDROID

Hybrid Apps Combining HTML5 + JAVASCRIPT + ANDROID Hybrid Apps Combining HTML5 + JAVASCRIPT + ANDROID Displaying Web Page For displaying web page, two approaches may be adopted: 1. Invoke browser application: In this case another window out side app will

More information

Basic UI elements: Defining Activity UI in the code. Marco Ronchetti Università degli Studi di Trento

Basic UI elements: Defining Activity UI in the code. Marco Ronchetti Università degli Studi di Trento 1 Basic UI elements: Defining Activity UI in the code Marco Ronchetti Università degli Studi di Trento UI Programmatically public class UIThroughCode extends Activity { LinearLayout llayout; TextView tview;

More information

Android Programming - Jelly Bean

Android Programming - Jelly Bean 1800 ULEARN (853 276) www.ddls.com.au Android Programming - Jelly Bean Length 5 days Price $4235.00 (inc GST) Overview This intensive, hands-on five-day course teaches programmers how to develop activities,

More information

Android. Mobile operating system developed by Google A complete stack. Based on the Linux kernel Open source under the Apache 2 license

Android. Mobile operating system developed by Google A complete stack. Based on the Linux kernel Open source under the Apache 2 license Android Android Mobile operating system developed by Google A complete stack OS, framework A rich set of applications Email, calendar, browser, maps, text messaging, contacts, camera, dialer, music player,

More information

Press project on the left toolbar if it doesn t show an overview of the app yet.

Press project on the left toolbar if it doesn t show an overview of the app yet. #3 Setting up the permissions needed to allow the app to use GPS. Okay! Press project on the left toolbar if it doesn t show an overview of the app yet. In this project plane, we will navigate to the manifests

More information

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore Android App Development Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore Mobile devices (e.g., smartphone, tablet PCs, etc.) are increasingly becoming an essential part of human life

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

Programming in Android. Nick Bopp

Programming in Android. Nick Bopp Programming in Android Nick Bopp nbopp@usc.edu Types of Classes Activity This is the main Android class that you will be using. These are actively displayed on the screen and allow for user interaction.

More information

Upcoming Assignments Quiz Friday? Lab 5 due today Alpha Version due Friday, February 26

Upcoming Assignments Quiz Friday? Lab 5 due today Alpha Version due Friday, February 26 Upcoming Assignments Quiz Friday? Lab 5 due today Alpha Version due Friday, February 26 Inject one subtle defect (fault seeding) To be reviewed by a few class members Usability study by CPE 484 students

More information

Android Application Development

Android Application Development Android Application Development Octav Chipara What is Android A free, open source mobile platform A Linux-based, multiprocess, multithreaded OS Android is not a device or a product It s not even limited

More information

Application Fundamentals

Application Fundamentals Application Fundamentals CS 2046 Mobile Application Development Fall 2010 Announcements CMS is up If you did not get an email regarding this, see me after class or send me an email. Still working on room

More information

Android Application Development 101. Jason Chen Google I/O 2008

Android Application Development 101. Jason Chen Google I/O 2008 Android Application Development 101 Jason Chen Google I/O 2008 Goal Get you an idea of how to start developing Android applications Introduce major Android application concepts Provide pointers for where

More information

Using Libraries, Text-to-Speech, Camera. Lecture 12

Using Libraries, Text-to-Speech, Camera. Lecture 12 Using Libraries, Text-to-Speech, Camera Lecture 12 Libraries Many Android developers have produced useful libraries. There is a Maven repository to store various libraries This makes it easy to add them

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

CE881: Mobile & Social Application Programming

CE881: Mobile & Social Application Programming CE881: Mobile & Social Application Programming, s, s and s Jialin Liu Senior Research Officer Univerisity of Essex 6 Feb 2017 Recall of lecture 3 and lab 3 :) Please download Kahoot or open a bowser and

More information

Android Overview. Most of the material in this section comes from

Android Overview. Most of the material in this section comes from Android Overview Most of the material in this section comes from http://developer.android.com/guide/ Android Overview A software stack for mobile devices Developed and managed by Open Handset Alliance

More information

1. Location Services. 1.1 GPS Location. 1. Create the Android application with the following attributes. Application Name: MyLocation

1. Location Services. 1.1 GPS Location. 1. Create the Android application with the following attributes. Application Name: MyLocation 1. Location Services 1.1 GPS Location 1. Create the Android application with the following attributes. Application Name: MyLocation Project Name: Package Name: MyLocation com.example.mylocation 2. Put

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

Services Broadcast Receivers Permissions

Services Broadcast Receivers Permissions Services Broadcast Receivers Permissions Runs in the background Extends Service Java class Not necessarily connected to the user s visual interface Music player working in foreground User wants read email

More information

Mobile Computing. Introduction to Android

Mobile Computing. Introduction to Android Mobile Computing Introduction to Android Mobile Computing 2011/2012 What is Android? Open-source software stack for mobile devices OS, middleware and key applications Based upon a modified version of the

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

Security Philosophy. Humans have difficulty understanding risk

Security Philosophy. Humans have difficulty understanding risk Android Security Security Philosophy Humans have difficulty understanding risk Safer to assume that Most developers do not understand security Most users do not understand security Security philosophy

More information

The Intent Class Starting Activities with Intents. Explicit Activation Implicit Activation via Intent resolution

The Intent Class Starting Activities with Intents. Explicit Activation Implicit Activation via Intent resolution The Intent Class Starting Activities with Intents Explicit Activation Implicit Activation via Intent resolution A data structure that represents An operation to be performed, or An event that has occurred

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

Android AND-401. Android Application Development. Download Full Version :

Android AND-401. Android Application Development. Download Full Version : Android AND-401 Android Application Development Download Full Version : http://killexams.com/pass4sure/exam-detail/and-401 QUESTION: 113 Consider the following :

More information

Android Fundamentals - Part 1

Android Fundamentals - Part 1 Android Fundamentals - Part 1 Alexander Nelson September 1, 2017 University of Arkansas - Department of Computer Science and Computer Engineering Reminders Projects Project 1 due Wednesday, September 13th

More information

Mobile Application Development Android

Mobile Application Development Android Mobile Application Development Android Lecture 2 MTAT.03.262 Satish Srirama satish.srirama@ut.ee Android Lecture 1 -recap What is Android How to develop Android applications Run & debug the applications

More information

Android App Development

Android App Development Android App Development Outline Introduction Android Fundamentals Android Studio Tutorials Introduction What is Android? A software platform and operating system for mobile devices Based on the Linux kernel

More information

External Services. CSE 5236: Mobile Application Development Course Coordinator: Dr. Rajiv Ramnath Instructor: Adam C. Champion

External Services. CSE 5236: Mobile Application Development Course Coordinator: Dr. Rajiv Ramnath Instructor: Adam C. Champion External Services CSE 5236: Mobile Application Development Course Coordinator: Dr. Rajiv Ramnath Instructor: Adam C. Champion 1 External Services Viewing websites Location- and map-based functionality

More information

Produced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology

Produced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology Mobile Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie Android Anatomy Android Anatomy 2! Agenda

More information

CS371m - Mobile Computing. Maps

CS371m - Mobile Computing. Maps CS371m - Mobile Computing Maps Using Google Maps This lecture focuses on using Google Maps inside an Android app Alternatives Exist: Open Street Maps http://www.openstreetmap.org/ If you simply want to

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

Data storage and exchange in Android

Data storage and exchange in Android Mobile App Development 1 Overview 2 3 SQLite Overview Implementation 4 Overview Methods to implement URI like SQL 5 Internal storage External storage Overview 1 Overview 2 3 SQLite Overview Implementation

More information

Mobile Application Development Android

Mobile Application Development Android Mobile Application Development Android Lecture 3 MTAT.03.262 Satish Srirama satish.srirama@ut.ee Android Lecture 2 - recap Views and Layouts Events Basic application components Activities Intents 9/15/2014

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

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

CS 4330/5390: Mobile Application Development Exam 1

CS 4330/5390: Mobile Application Development Exam 1 1 Spring 2017 (Thursday, March 9) Name: CS 4330/5390: Mobile Application Development Exam 1 This test has 8 questions and pages numbered 1 through 7. Reminders This test is closed-notes and closed-book.

More information

Embedded Systems Programming - PA8001

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

More information

Content Provider. Introduction 01/03/2016. Session objectives. Content providers. Android programming course. Introduction. Built-in Content Provider

Content Provider. Introduction 01/03/2016. Session objectives. Content providers. Android programming course. Introduction. Built-in Content Provider Android programming course Session objectives Introduction Built-in Custom By Võ Văn Hải Faculty of Information Technologies 2 Content providers Introduction Content providers manage access to a structured

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

Designing Apps Using The WebView Control

Designing Apps Using The WebView Control 28 Designing Apps Using The Control Victor Matos Cleveland State University Notes are based on: Android Developers http://developer.android.com/index.html The Busy Coder's Guide to Advanced Android Development

More information

Object-Oriented Databases Object-Relational Mappings and Frameworks. Alexandre de Spindler Department of Computer Science

Object-Oriented Databases Object-Relational Mappings and Frameworks. Alexandre de Spindler Department of Computer Science Object-Oriented Databases Object-Relational Mappings and Frameworks Challenges Development of software that runs on smart phones. Data needs to outlive program execution Use of sensors Integration with

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

MOBILE APPLICATION DEVELOPMENT LECTURE 10 SERVICES IMRAN IHSAN ASSISTANT PROFESSOR

MOBILE APPLICATION DEVELOPMENT LECTURE 10 SERVICES IMRAN IHSAN ASSISTANT PROFESSOR MOBILE APPLICATION DEVELOPMENT LECTURE 10 SERVICES IMRAN IHSAN ASSISTANT PROFESSOR WWW.IMRANIHSAN.COM Android Component A Service is an application component that runs in the background, not interacting

More information

Lecture 08. Android Permissions Demystified. Adrienne Porter Felt, Erika Chin, Steve Hanna, Dawn Song, David Wagner. Operating Systems Practical

Lecture 08. Android Permissions Demystified. Adrienne Porter Felt, Erika Chin, Steve Hanna, Dawn Song, David Wagner. Operating Systems Practical Lecture 08 Android Permissions Demystified Adrienne Porter Felt, Erika Chin, Steve Hanna, Dawn Song, David Wagner Operating Systems Practical 20 November, 2013 OSP Lecture 08, Android Permissions Demystified

More information

An Overview of the Android Programming

An Overview of the Android Programming ID2212 Network Programming with Java Lecture 14 An Overview of the Android Programming Hooman Peiro Sajjad KTH/ICT/SCS HT 2016 References http://developer.android.com/training/index.html Developing Android

More information

Android. Operating System and Architecture. Android. Screens. Main features

Android. Operating System and Architecture. Android. Screens. Main features Android Android Operating System and Architecture Operating System and development system from Google and Open Handset Alliance since 2008 At the lower level is based on the Linux kernel and in a higher

More information

Services. Background operating component without a visual interface Running in the background indefinitely

Services. Background operating component without a visual interface Running in the background indefinitely Services Background operating component without a visual interface Running in the background indefinitely Differently from Activity, Service in Android runs in background, they don t have an interface

More information

Mobile Programming Lecture 1. Getting Started

Mobile Programming Lecture 1. Getting Started Mobile Programming Lecture 1 Getting Started Today's Agenda About the Android Studio IDE Hello, World! Project Android Project Structure Introduction to Activities, Layouts, and Widgets Editing Files in

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

COSC 3P97 Mobile Computing

COSC 3P97 Mobile Computing COSC 3P97 Mobile Computing Mobile Computing 1.1 COSC 3P97 Prerequisites COSC 2P13, 3P32 Staff instructor: Me! teaching assistant: Steve Tkachuk Lectures (MCD205) Web COSC: http://www.cosc.brocku.ca/ COSC

More information

Software Practice 3 Today s lecture Today s Task Porting Android App. in real device

Software Practice 3 Today s lecture Today s Task Porting Android App. in real device 1 Software Practice 3 Today s lecture Today s Task Porting Android App. in real device Prof. Hwansoo Han T.A. Jeonghwan Park 43 INTENT 2 3 Android Intent An abstract description of a message Request actions

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

Android Programming Lecture 9: Two New Views 9/30/2011

Android Programming Lecture 9: Two New Views 9/30/2011 Android Programming Lecture 9: Two New Views 9/30/2011 ListView View Using ListViews is very much like using Spinners Build off an array of data Events on the list happen at a particular position ListView

More information

Mobile Application Development Android

Mobile Application Development Android Mobile Application Development Android Lecture 3 MTAT.03.262 Satish Srirama satish.srirama@ut.ee Android Lecture 2 -recap Views and Layouts Events Basic application components Activities Intents BroadcastReceivers

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

Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department. Mobile Computing ECOM Eng. Wafaa Audah.

Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department. Mobile Computing ECOM Eng. Wafaa Audah. Islamic University of Gaza Faculty of Engineering Computer Engineering Department Mobile Computing ECOM 5341 By Eng. Wafaa Audah July 2013 1 Launch activitits, implicit intents, data passing & start activity

More information

Notifications and Services. Landon Cox March 28, 2017

Notifications and Services. Landon Cox March 28, 2017 Notifications and Services Landon Cox March 28, 2017 Networking so far Volley (retrieve quiz stored at URL) User starts app Check with server for new quiz Say you re building a messaging app How else might

More information

Android Help. Section 8. Eric Xiao

Android Help. Section 8. Eric Xiao Android Help Section 8 Eric Xiao The Midterm That happened Any residual questions? New Assignment! Make a low-fi prototype Must be interactive Use balsamiq or paper Test it with users 3 tasks Test task

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

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

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

Android permissions Defining and using permissions Component permissions and related APIs

Android permissions Defining and using permissions Component permissions and related APIs Android permissions Defining and using permissions Component permissions and related APIs Permissions protects resources and data For instance, they limit access to: User information e.g, Contacts Cost-sensitive

More information

Contextual Android Education

Contextual Android Education Contextual Android Education James Reed David S. Janzen Abstract Advances in mobile phone hardware and development platforms have drastically increased the demand, interest, and potential of mobile applications.

More information

Notification mechanism

Notification mechanism Notification mechanism Adaptation of materials: dr Tomasz Xięski. Based on presentations made available by Victor Matos, Cleveland State University. Portions of this page are reproduced from work created

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

The Internet. CS 2046 Mobile Application Development Fall Jeff Davidson CS 2046

The Internet. CS 2046 Mobile Application Development Fall Jeff Davidson CS 2046 The Internet CS 2046 Mobile Application Development Fall 2010 Announcements HW2 due Monday, 11/8, at 11:59pm If you want to know what it means to root your phone, or what this does, see Newsgroup HW1 grades

More information

Thread. A Thread is a concurrent unit of execution. The thread has its own call stack for methods being invoked, their arguments and local variables.

Thread. A Thread is a concurrent unit of execution. The thread has its own call stack for methods being invoked, their arguments and local variables. 1 Thread A Thread is a concurrent unit of execution. The thread has its own call stack for methods being invoked, their arguments and local variables. Each virtual machine instance has at least one main

More information

ANDROID TRAINING PROGRAM COURSE CONTENT

ANDROID TRAINING PROGRAM COURSE CONTENT ANDROID TRAINING PROGRAM COURSE CONTENT Android Architecture System architecture of Android Activities Android Components Android Manifest Android Development Tools Installation of the Android Development

More information

Mobile and Ubiquitous Computing: Android Programming (part 4)

Mobile and Ubiquitous Computing: Android Programming (part 4) Mobile and Ubiquitous Computing: Android Programming (part 4) Master studies, Winter 2015/2016 Dr Veljko Pejović Veljko.Pejovic@fri.uni-lj.si Examples from: Mobile and Ubiquitous Computing Jo Vermeulen,

More information