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

Size: px
Start display at page:

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

Transcription

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

2 External Services Viewing websites Location- and map-based functionality REST-based Web services invocation 2

3 Invoking Browser App Java // HelpFragment.java private void launchbrowser( String url) { Uri theuri = Uri.parse(url); Intent LaunchBrowserIntent = new Intent(Intent.ACTION_VIEW, theuri); startactivity( LaunchBrowserIntent); Kotlin // HelpFragment.kt private fun launchbrowser( url: String) { val theuri = Uri.parse(url) val LaunchBrowserIntent = Intent(Intent.ACTION_VIEW, theuri) startactivity( LaunchBrowserIntent) URL: Note: Activity stacking due to re-launch of browser on mobile page 3

4 Embedded WebView - Layout <?xml version="1.0" encoding="utf-8"?> <ScrollView...> <LinearLayout......> <WebView android:id="@+id/helpwithwebview" android:layout_width="match_parent" android:layout_height="200dip" android:layout_weight="1.0"/> <Button... android:text="exit"/> </LinearLayout> </ScrollView> 4

5 Embedded WebView: Java // HelpWebViewFragment.java public View oncreateview(...) { View v = inflater.inflate(r.layout.fragment_help_webview,...); WebView helpinwebview = (WebView) v.findviewbyid(r.id.helpwithwebview); mprogressbar = (ProgressBar) v.findviewbyid(r.id.webviewprogress); mprogressbar.setmax(100); View buttonexit = v.findviewbyid(r.id.button_exit); buttonexit.setonclicklistener(this); Bundle extras = getactivity().getintent().getextras(); if (extras!= null) { murl = extras.getstring(arg_uri); /*... */ //... helpinwebview.setwebviewclient(new WebViewClient() { public boolean shouldoverrideurlloading(...) { return false; ); helpinwebview.setwebchromeclient(new WebChromeClient() { public void onprogresschanged(webview webview, int progress) { if (progress == 100) { mprogressbar.setvisibility(view.gone); else { mprogressbar.setvisibility(view.visible); mprogressbar.setprogress(progress); ); helpinwebview.loadurl(murl); return v; 5

6 Embedded WebView: Kotlin // HelpWebViewFragment.kt override fun oncreateview(... ): View? { val v = inflater.inflate(r.layout.fragment_help_webview,...) val helpinwebview = v.findviewbyid<webview>(r.id.helpwithwebview) mprogressbar = v.findviewbyid<progressbar>(r.id.webviewprogress) mprogressbar.apply { max = 100 val buttonexit = v.findviewbyid<button>(r.id.button_exit) buttonexit.setonclicklistener(this) val extras = activity.intent.extras if (extras!= null) { murl = extras.getstring(arg_uri) WebView.setWebContentsDebuggingEnabled(true) helpinwebview.settings.javascriptenabled = true helpinwebview.webviewclient = object : WebViewClient() { override fun shouldoverrideurlloading(... ): Boolean { return false helpinwebview.webchromeclient = object : WebChromeClient() { override fun onprogresschanged(... ) { if (progress == 100) { mprogressbar.visibility = View.GONE else { mprogressbar.visibility = View.VISIBLE mprogressbar.progress = progress helpinwebview.loadurl(murl) return v 6

7 Location-Based Applications These mix-and-match the following actions: Opening a map Invoking a geocoding service on a point of interest Navigating the map to a position or make a mapbased calculation Determining the user s geolocation from the device (latitude, longitude) 7

8 Additional Requirements for Maps Use built-in GoogleMap with a FragmentActivity Link against Google APIs for Android (rather than standard Android SDK) Declare the use of the Google map package: <uses-library android:name="com.google.android.maps /> Request the appropriate permissions, e.g.: <uses-permission android:name="android.permission.internet"/> <uses-permission android:name="android.permission.access_network_state"/> <uses-permission android:name="android.permission.access_coarse_location"/> <uses-permission android:name="android.permission.access_fine_location"/> <uses-permission android:name="android.permission.write_external_storage"/> <uses-permission android:name="com.google.android.providers.gsf.permission.read_gservices /> Request a Map API key Goes in AndroidManifest.xml as <meta-data android:name="com.google.android.maps.v2.api_key android:value=... /> See Need OpenGL ES v2: <uses-feature android:glesversion="0x android:required="true"/>

9 Map Fragment Layout <fragment xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".mapsactivity" android:name="com.google.android.gms.maps.supportmapfragment"/> Google Maps uses Fragments UI Fragment needs to be loaded dynamically 9

10 Map Fragment Code: Java (1) // MapsFragment.java public class MapsFragment extends SupportMapFragment implements OnMapReadyCallback { private GoogleMap mmap; private GoogleApiClient mapiclient; private static final String[] LOCATION_PERMISSIONS = new String[] { Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION ; private FusedLocationProviderClient mfusedlocationproviderclient; private Location mlocation; private LatLng mdefaultlocation; private static final int REQUEST_LOCATION_PERMISSIONS = 0; private boolean mlocationpermissiongranted = false;... // MapsActivity.java just uses a SingleFragmentActivity 10

11 Map Fragment Code: Java (2) // MapsFragment.java (continued) public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); sethasoptionsmenu(true); mapiclient = new GoogleApiClient.Builder(getActivity()).addApi(LocationServices.API).addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() { public void onconnected(@nullable Bundle bundle) { getactivity().invalidateoptionsmenu(); public void onconnectionsuspended(int i) {... ).build(); getmapasync(this); public void onresume() { super.onresume(); setupeula(); findlocation(); 11

12 Map Fragment Code: Java (3) // MapsFragment.java (continued) public void onstart() { //... getactivity().invalidateoptionsmenu(); mapiclient.connect(); public void onstop() { //... mapiclient.disconnect(); private void findlocation() { updatelocationui(); if (haslocationpermission()) { mfusedlocationproviderclient = LocationServices.getFusedLocationProviderClient(getActivity()); mdefaultlocation = new LatLng(40.0, -83.0); LocationRequest locationrequest = LocationRequest.create(); locationrequest.setpriority(locationrequest.priority_high_accuracy); locationrequest.setnumupdates(1); locationrequest.setinterval(0); FusedLocationProviderClient locationprovider = LocationServices.getFusedLocationProviderClient(getActivity()); Task locationresult = locationprovider.getlastlocation(); locationresult.addoncompletelistener(getactivity(), new OnCompleteListener() { public void oncomplete(@nonnull Task task) { if (task.issuccessful()) { mlocation = (Location) task.getresult(); mmap.movecamera(cameraupdatefactory.newlatlngzoom(new LatLng(mLocation.getLatitude(), mlocation.getlongitude()), 16)); 12 else { /* Disable Location */ ); // Else request permissions, end of method.

13 Map Fragment Code: Java (4) // MapsFragment.java (continued) private void setupeula() { msettings = getactivity().getsharedpreferences(getstring(r.string.prefs), 0); boolean iseulaaccepted = msettings.getboolean(getstring(r.string.eula_accepted_key), false); if (!iseulaaccepted) { DialogFragment euladialogfragment = new EulaDialogFragment(); euladialogfragment.show(getactivity().getsupportfragmentmanager(), "eula"); public void oncreateoptionsmenu(menu menu, MenuInflater inflater) { //... inflater.inflate(r.menu.maps_menu, menu); public boolean onoptionsitemselected(menuitem item) { switch (item.getitemid()) { case R.id.menu_showcurrentlocation: Log.d(TAG, "Showing current location"); if (haslocationpermission()) { findlocation(); else { /* Request permissions */ break; return true; 13

14 Map Fragment Code: Java (5) // MapsFragment.java (continued) public void onrequestpermissionsresult(...) { mlocationpermissiongranted = false; switch (requestcode) { case REQUEST_LOCATION_PERMISSIONS: { // If request is cancelled, the result arrays are empty. if (grantresults.length > 0 && grantresults[0] == PackageManager.PERMISSION_GRANTED) { mlocationpermissiongranted = true; updatelocationui(); private void updatelocationui() { if (mmap == null) { return; try { if (mlocationpermissiongranted) { /* Enable location */ else { /* Disable location, request permissions */ catch (SecurityException e) { /*... */ public void onmapready(googlemap googlemap) { mmap = googlemap; mmap.addmarker(new MarkerOptions().position(new LatLng(40.0, -83.0)).title("Ohio State University")); mmap.setmylocationenabled(true); mmap.getuisettings().setmylocationbuttonenabled(true); /*... */ private boolean haslocationpermission() { /*... */ 14

15 Map Fragment Code: Kotlin (1) // MapsFragment.kt class MapsFragment : SupportMapFragment(), OnMapReadyCallback { private lateinit var mmap: GoogleMap private lateinit var mapiclient: GoogleApiClient private lateinit var mfusedlocationproviderclient: FusedLocationProviderClient private var mlocation: Location? = null private var mdefaultlocation: LatLng? = null private var mlocationpermissiongranted = false private var mmapready = false companion object { private val LOCATION_PERMISSIONS = arrayof(manifest.permission.access_fine_location, Manifest.permission.ACCESS_COARSE_LOCATION) private val REQUEST_LOCATION_PERMISSIONS = 0 15

16 Map Fragment Code: Kotlin (2) // MapsFragment.kt (continued) override fun oncreate(savedinstancestate: Bundle?) { super.oncreate(savedinstancestate) sethasoptionsmenu(true) mapiclient = GoogleApiClient.Builder(activity).addApi(LocationServices.API).addConnectionCallbacks(object : GoogleApiClient.ConnectionCallbacks { override fun onconnected(bundle: Bundle?) { activity.invalidateoptionsmenu() override fun onconnectionsuspended(i: Int) {... ).build() getmapasync(this) override fun onresume() { super.onresume() setupeula() findlocation() 16

17 Map Fragment Code: Kotlin (3) // MapsFragment.kt (continued) override fun onstart() { //... activity.invalidateoptionsmenu() mapiclient.connect() override fun onstop() { //... mapiclient.disconnect() private fun findlocation() { updatelocationui() if (haslocationpermission()) { mfusedlocationproviderclient = LocationServices.getFusedLocationProviderClient(activity) mdefaultlocation = LatLng(40.0, -83.0) val locationrequest = LocationRequest.create() locationrequest.priority = LocationRequest.PRIORITY_HIGH_ACCURACY locationrequest.numupdates = 1 locationrequest.interval = 0 val locationprovider = LocationServices.getFusedLocationProviderClient(activity) val locationresult = locationprovider.lastlocation locationresult.addoncompletelistener(activity, object : OnCompleteListener<Location> { override fun oncomplete(task: Task<Location>) { if (task.issuccessful) { // Set the map's camera position to the current location of the device. mlocation = task.result as Location mmap.movecamera(cameraupdatefactory.newlatlngzoom( LatLng(mLocation!!.latitude, mlocation!!.longitude), 16f)) else { /* Disable location */ ) // Else request permissions, end of method. 17

18 Map Fragment Code: Kotlin (4) // MapsFragment.kt (continued) private fun setupeula() { msettings = activity.getsharedpreferences(getstring(r.string.prefs), 0) val iseulaaccepted = msettings!!.getboolean(getstring(r.string.eula_accepted_key), false) if (!iseulaaccepted) { val euladialogfragment = EulaDialogFragment() euladialogfragment.show(activity.supportfragmentmanager, "eula") override fun oncreateoptionsmenu(menu: Menu?, inflater: MenuInflater?) { super.oncreateoptionsmenu(menu, inflater) inflater?.inflate(r.menu.maps_menu, menu) override fun onoptionsitemselected(item: MenuItem?): Boolean { when (item?.itemid) { R.id.menu_showcurrentlocation -> { Log.d(TAG, "Showing current location") if (haslocationpermission()) { findlocation() else { requestpermissions(location_permissions, REQUEST_LOCATION_PERMISSIONS) return true 18

19 Map Fragment Code: Kotlin (5) // MapsFragment.kt (continued) override fun onrequestpermissionsresult(requestcode: Int, permissions: Array<String>, grantresults: IntArray) { mlocationpermissiongranted = false when (requestcode) { REQUEST_LOCATION_PERMISSIONS -> { // If request is cancelled, the result arrays are empty. if (grantresults.isnotempty() && grantresults[0] == PackageManager.PERMISSION_GRANTED) { mlocationpermissiongranted = true updatelocationui() private fun updatelocationui() { if (mmapready) { try { if (mlocationpermissiongranted) { mmap.ismylocationenabled = true mmap.uisettings.ismylocationbuttonenabled = true else { /* Disable location, request permissions */ catch (e: SecurityException) { Log.e("Exception: %s", e.message) /*... */ override fun onmapready(googlemap: GoogleMap) { mmap = googlemap mmap.addmarker(markeroptions().position(latlng(40.0, -83.0)).title("Ohio State University")) try { mmap.ismylocationenabled = true mmap.uisettings.ismylocationbuttonenabled = true catch (se: SecurityException) { Log.e(TAG, "Location not enabled, skipping") mmap.isbuildingsenabled = true mmap.isindoorenabled = true mmapready = true private fun haslocationpermission(): Boolean { /*... */ 19

20 Map Menu Layout <menu xmlns:app= " xmlns:android= " <item android:orderincategory="100" ic_menu_mylocation" app:showasaction="ifroom"/> </menu> 20

21 License Agreement Fragment: Java Yes, this is required public class EulaDialogFragment extends DialogFragment { public void seteulaaccepted() { SharedPreferences prefs = getactivity().getsharedpreferences( getstring(r.string.prefs), 0); SharedPreferences.Editor editor = prefs.edit(); editor.putboolean(getstring(r.string.eula_accepted_key), true).apply(); public Dialog oncreatedialog(bundle savedinstancestate) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.settitle(r.string.eula_title).setmessage(html.fromhtml(getstring(r.string.eula))).setpositivebutton(r.string.accept, new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int id) { seteulaaccepted(); ).setnegativebutton(r.string.decline, new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int which) { dialog.cancel(); getactivity().finish(); ); return builder.create(); 21

22 License Agreement Fragment: Kotlin class EulaDialogFragment : DialogFragment() { fun seteulaaccepted() { val prefs = activity.getsharedpreferences(getstring(r.string.prefs), 0) val editor = prefs.edit() editor.putboolean(getstring(r.string.eula_accepted_key), true).apply() override fun oncreatedialog(savedinstancestate: Bundle?): Dialog { // Use the Builder class for convenient dialog construction val builder = AlertDialog.Builder(activity) builder.settitle(r.string.about_app).setmessage(html.fromhtml(getstring(r.string.eula))).setpositivebutton(r.string.accept) { dialog, id -> seteulaaccepted().setnegativebutton(r.string.decline) { dialog, which -> dialog.cancel() activity.finish() return builder.create() 22

23 Location Determination and Practices Types: GPS Cellular WiFi Best practices for location-based applications: Check for connectivity Use threading to ensure responsiveness (Note: Threading built-in for many SDK components) 23

24 References Chapter 10: Channeling the Outside World through your Android Device from Android SDK 3 Programming for Dummies Chapters 33 34: Locations and Play Services and Maps from Android Programming: The Big Nerd Ranch Guide (3rd ed.)

25 Thank You Questions and comments? 25

Android Programming วรเศรษฐ ส วรรณ ก.

Android Programming วรเศรษฐ ส วรรณ ก. Android Programming วรเศรษฐ ส วรรณ ก uuriter@yahoo.com http://bit.ly/wannikacademy 1 Google Map API v2 2 Preparation SDK Manager Google Play Services AVD Google API >= 4.2.2 [http://bit.ly/1hedxwm] https://developers.google.com/maps/documentation/android/start

More information

Android Application Model I

Android Application Model I Android Application Model I CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Rajiv Ramnath Reading: Big Nerd Ranch Guide, Chapters 3, 5 (Activities);

More information

Google Maps library requires v2.50 or above.

Google Maps library requires v2.50 or above. Google Maps library requires v2.50 or above. Google Maps library allows you to add Google maps to your application. This library requires Android 3+ and will only work on devices with Google Play service.

More information

Android Application Model I. CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr.

Android Application Model I. CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Android Application Model I CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Rajiv Ramnath 1 Framework Support (e.g. Android) 2 Framework Capabilities

More information

Lab 6: Google Maps Android API v2 Android Studio 10/14/2016

Lab 6: Google Maps Android API v2 Android Studio 10/14/2016 Lab 6: Google Maps Android API v2 Android Studio 10/14/2016 One of the defining features of mobile phones is their portability. It's not surprising that some of the most enticing APIs are those that enable

More information

Programming with Android: The Google Maps Library. Slides taken from

Programming with Android: The Google Maps Library. Slides taken from Programming with Android: The Google Slides taken from Marco Di Felice Android: Deploying Map-based Apps Two versions of Android Google API API v1 API v2 - Deprecated, not supported anymore since 18th

More information

Mobile Programming Lecture 7. Dialogs, Menus, and SharedPreferences

Mobile Programming Lecture 7. Dialogs, Menus, and SharedPreferences Mobile Programming Lecture 7 Dialogs, Menus, and SharedPreferences Agenda Dialogs Menus SharedPreferences Android Application Components 1. Activity 2. Broadcast Receiver 3. Content Provider 4. Service

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

Mobile Application Development MyRent Settings

Mobile Application Development MyRent Settings Mobile Application Development MyRent Settings Waterford Institute of Technology October 13, 2016 John Fitzgerald Waterford Institute of Technology, Mobile Application Development MyRent Settings 1/19

More information

User Interface Development. CSE 5236: Mobile Application Development Instructor: Adam C. Champion Course Coordinator: Dr.

User Interface Development. CSE 5236: Mobile Application Development Instructor: Adam C. Champion Course Coordinator: Dr. User Interface Development CSE 5236: Mobile Application Development Instructor: Adam C. Champion Course Coordinator: Dr. Rajiv Ramnath 1 Outline UI Support in Android Fragments 2 UI Support in the Android

More information

IEMS 5722 Mobile Network Programming and Distributed Server Architecture

IEMS 5722 Mobile Network Programming and Distributed Server Architecture Department of Information Engineering, CUHK MScIE 2 nd Semester, 2016/17 IEMS 5722 Mobile Network Programming and Distributed Server Architecture Lecture 12 Advanced Android Programming Lecturer: Albert

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

RUNTIME PERMISSIONS IN ANDROID 6.0 Lecture 10a

RUNTIME PERMISSIONS IN ANDROID 6.0 Lecture 10a RUNTIME PERMISSIONS IN ANDROID 6.0 Lecture 10a COMPSCI 702 Security for Smart-Devices Muhammad Rizwan Asghar March 20, 2018 2 ANDROID 6.0 A version of the Android mobile operating system officially released

More information

Action Bar. (c) 2010 Haim Michael. All Rights Reserv ed.

Action Bar. (c) 2010 Haim Michael. All Rights Reserv ed. Action Bar Introduction The Action Bar is a widget that is shown on top of the screen. It includes the application logo on its left side together with items available from the options menu on the right.

More information

Android Programs Day 5

Android Programs Day 5 Android Programs Day 5 //Android Program to demonstrate the working of Options Menu. 1. Create a New Project. 2. Write the necessary codes in the MainActivity.java to create OptionMenu. 3. Add the oncreateoptionsmenu()

More information

Have a development environment in 256 or 255 Be familiar with the application lifecycle

Have a development environment in 256 or 255 Be familiar with the application lifecycle Upcoming Assignments Readings: Chapter 4 by today Horizontal Prototype due Friday, January 22 Quiz 2 today at 2:40pm Lab Quiz next Friday during lecture time (2:10-3pm) Have a development environment in

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

UI Fragment.

UI Fragment. UI Fragment 1 Contents Fragments Overviews Lifecycle of Fragments Creating Fragments Fragment Manager and Transactions Adding Fragment to Activity Fragment-to-Fragment Communication Fragment SubClasses

More information

Starting Another Activity Preferences

Starting Another Activity Preferences Starting Another Activity Preferences Android Application Development Training Xorsat Pvt. Ltd www.xorsat.net fb.com/xorsat.education Outline Starting Another Activity Respond to the Button Create the

More information

<uses-permission android:name="android.permission.internet"/>

<uses-permission android:name=android.permission.internet/> Chapter 11 Playing Video 11.1 Introduction We have discussed how to play audio in Chapter 9 using the class MediaPlayer. This class can also play video clips. In fact, the Android multimedia framework

More information

Q.1 Explain the dialog and also explain the Demonstrate working dialog in android.

Q.1 Explain the dialog and also explain the Demonstrate working dialog in android. Q.1 Explain the dialog and also explain the Demonstrate working dialog in android. - A dialog is a small window that prompts the user to make a decision or enter additional information. - A dialog does

More information

Mobile Computing Fragments

Mobile Computing Fragments Fragments APM@FEUP 1 Fragments (1) Activities are used to define a full screen interface and its functionality That s right for small screen devices (smartphones) In bigger devices we can have more interface

More information

Tutorial: Setup for Android Development

Tutorial: Setup for Android Development Tutorial: Setup for Android Development Adam C. Champion CSE 5236: Mobile Application Development Spring 2018 Based on material from C. Horstmann [1], J. Bloch [2], C. Collins et al. [4], M.L. Sichitiu

More information

Fragments were added to the Android API in Honeycomb, API 11. The primary classes related to fragments are: android.app.fragment

Fragments were added to the Android API in Honeycomb, API 11. The primary classes related to fragments are: android.app.fragment FRAGMENTS Fragments An activity is a container for views When you have a larger screen device than a phone like a tablet it can look too simple to use phone interface here. Fragments Mini-activities, each

More information

DEPARTMENT OF COMPUTER SCIENCE THE UNIVERSITY OF HONG KONG. CSIS0801 Final Year Project. WhozzUp - A Novel Big Data App for HK (Individual Report)

DEPARTMENT OF COMPUTER SCIENCE THE UNIVERSITY OF HONG KONG. CSIS0801 Final Year Project. WhozzUp - A Novel Big Data App for HK (Individual Report) DEPARTMENT OF COMPUTER SCIENCE THE UNIVERSITY OF HONG KONG CSIS0801 Final Year Project WhozzUp - A Novel Big Data App for HK (Individual Report) Nundraj NARAYEN (2012518487) 4/17/2016 Page 2 Page 3 Page

More information

05. RecyclerView and Styles

05. RecyclerView and Styles 05. RecyclerView and Styles 08.03.2018 1 Agenda Intents Creating Lists with RecyclerView Creating Cards with CardView Application Bar Menu Styles and Themes 2 Intents 3 What is Intent? An Intent is an

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

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

CS 528 Mobile and Ubiquitous Computing Lecture 4a: Fragments, Camera Emmanuel Agu

CS 528 Mobile and Ubiquitous Computing Lecture 4a: Fragments, Camera Emmanuel Agu CS 528 Mobile and Ubiquitous Computing Lecture 4a: Fragments, Camera Emmanuel Agu Fragments Recall: Fragments Sub-components of an Activity (screen) An activity can contain multiple fragments, organized

More information

Computer Science Large Practical: Storage, Settings and Layouts. Stephen Gilmore School of Informatics October 26, 2017

Computer Science Large Practical: Storage, Settings and Layouts. Stephen Gilmore School of Informatics October 26, 2017 Computer Science Large Practical: Storage, Settings and Layouts Stephen Gilmore School of Informatics October 26, 2017 Contents 1. Storing information 2. Kotlin compilation 3. Settings 4. Layouts 1 Storing

More information

Our First Android Application

Our First Android Application Mobile Application Development Lecture 04 Imran Ihsan Our First Android Application Even though the HelloWorld program is trivial in introduces a wealth of new ideas the framework, activities, manifest,

More information

Tablets have larger displays than phones do They can support multiple UI panes / user behaviors at the same time

Tablets have larger displays than phones do They can support multiple UI panes / user behaviors at the same time Tablets have larger displays than phones do They can support multiple UI panes / user behaviors at the same time The 1 activity 1 thing the user can do heuristic may not make sense for larger devices Application

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

COMP4521 EMBEDDED SYSTEMS SOFTWARE

COMP4521 EMBEDDED SYSTEMS SOFTWARE COMP4521 EMBEDDED SYSTEMS SOFTWARE LAB 5: USING WEBVIEW AND USING THE NETWORK INTRODUCTION In this lab we modify the application we created in the first three labs. Instead of using the default browser,

More information

Kotlin for wearables: use case. Andrey Mukamolov

Kotlin for wearables: use case. Andrey Mukamolov Kotlin for wearables: use case Andrey Mukamolov Domain Dota 2 is a competitive MOBA game A lot of fans and money Most toxic community Dota 2 Dota 2 heroes Dota 2 MMR Wear OS by Google

More information

MVC Apps Basic Widget Lifecycle Logging Debugging Dialogs

MVC Apps Basic Widget Lifecycle Logging Debugging Dialogs Overview MVC Apps Basic Widget Lifecycle Logging Debugging Dialogs Lecture: MVC Model View Controller What is an App? Android Activity Lifecycle Android Debugging Fixing Rotations & Landscape Layouts Localization

More information

CMSC436: Fall 2013 Week 3 Lab

CMSC436: Fall 2013 Week 3 Lab CMSC436: Fall 2013 Week 3 Lab Objectives: Familiarize yourself with the Activity class, the Activity lifecycle, and the Android reconfiguration process. Create and monitor a simple application to observe

More information

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology

More information

More Effective Layouts

More Effective Layouts More Effective Layouts In past weeks, we've looked at ways to make more effective use of the presented display (e.g. elastic layouts, and separate layouts for portrait and landscape), as well as autogenerating

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

API Guide for Gesture Recognition Engine. Version 2.0

API Guide for Gesture Recognition Engine. Version 2.0 API Guide for Gesture Recognition Engine Version 2.0 Table of Contents Gesture Recognition API... 3 API URI... 3 Communication Protocol... 3 Getting Started... 4 Protobuf... 4 WebSocket Library... 4 Project

More information

Multiple devices. Use wrap_content and match_parent Use RelativeLayout/ConstraintLayout Use configuration qualifiers

Multiple devices. Use wrap_content and match_parent Use RelativeLayout/ConstraintLayout Use configuration qualifiers Multiple devices Multiple devices Use wrap_content and match_parent Use RelativeLayout/ConstraintLayout Use configuration qualifiers Create a new directory in your project's res/ and name it using the

More information

Activities and Fragments

Activities and Fragments Activities and Fragments 21 November 2017 Lecture 5 21 Nov 2017 SE 435: Development in the Android Environment 1 Topics for Today Activities UI Design and handlers Fragments Source: developer.android.com

More information

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Saving State

EMBEDDED SYSTEMS PROGRAMMING Application Tip: Saving State EMBEDDED SYSTEMS PROGRAMMING 2016-17 Application Tip: Saving State THE PROBLEM How to save the state (of a UI, for instance) so that it survives even when the application is closed/killed The state should

More information

Lecture 13 Mobile Programming. Google Maps Android API

Lecture 13 Mobile Programming. Google Maps Android API Lecture 13 Mobile Programming Google Maps Android API Agenda Generating MD5 Fingerprint Signing up for API Key (as developer) Permissions MapView and MapActivity Layers MyLocation Important!!! These lecture

More information

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology

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

Applied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB)

Applied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB) Applied Cognitive Computing Fall 2016 Android Application + IBM Bluemix (Cloudant NoSQL DB) In this exercise, we will create a simple Android application that uses IBM Bluemix Cloudant NoSQL DB. The application

More information

Internal Services. CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr.

Internal Services. CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Internal Services CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Rajiv Ramnath 1 Internal Services Communication: Email, SMS and telephony Audio and

More information

Workshop. 1. Create a simple Intent (Page 1 2) Launch a Camera for Photo Taking

Workshop. 1. Create a simple Intent (Page 1 2) Launch a Camera for Photo Taking Workshop 1. Create a simple Intent (Page 1 2) Launch a Camera for Photo Taking 2. Create Intent with Parsing Data (Page 3 8) Making Phone Call and Dial Access Web Content Playing YouTube Video 3. Create

More information

EMBEDDED SYSTEMS PROGRAMMING UI Specification: Approaches

EMBEDDED SYSTEMS PROGRAMMING UI Specification: Approaches EMBEDDED SYSTEMS PROGRAMMING 2016-17 UI Specification: Approaches UIS: APPROACHES Programmatic approach: UI elements are created inside the application code Declarative approach: UI elements are listed

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

Addressing Non-Functional Requirements in Mobile Applications

Addressing Non-Functional Requirements in Mobile Applications Addressing Non-Functional Requirements in Mobile Applications CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Rajiv Ramnath 1 Outline Non-Functional

More information

Screen Slides. The Android Studio wizard adds a TextView to the fragment1.xml layout file and the necessary code to Fragment1.java.

Screen Slides. The Android Studio wizard adds a TextView to the fragment1.xml layout file and the necessary code to Fragment1.java. Screen Slides References https://developer.android.com/training/animation/screen-slide.html https://developer.android.com/guide/components/fragments.html Overview A fragment can be defined by a class and

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

This lecture. The BrowserIntent Example (cont d)

This lecture. The BrowserIntent Example (cont d) This lecture 5COSC005W MOBILE APPLICATION DEVELOPMENT Lecture 10: Working with the Web Browser Dr Dimitris C. Dracopoulos Android provides a full-featured web browser based on the Chromium open source

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

Mobila applikationer och trådlösa nät

Mobila applikationer och trådlösa nät Mobila applikationer och trådlösa nät HI1033 Lecture 8 Today s topics Location Based Services Google Maps API MultiMedia Location Based Services LocationManager provides access to location based services

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

Android Coding. Dr. J.P.E. Hodgson. August 23, Dr. J.P.E. Hodgson () Android Coding August 23, / 27

Android Coding. Dr. J.P.E. Hodgson. August 23, Dr. J.P.E. Hodgson () Android Coding August 23, / 27 Android Coding Dr. J.P.E. Hodgson August 23, 2010 Dr. J.P.E. Hodgson () Android Coding August 23, 2010 1 / 27 Outline Starting a Project 1 Starting a Project 2 Making Buttons Dr. J.P.E. Hodgson () Android

More information

CS 4518 Mobile and Ubiquitous Computing Lecture 5: Rotating Device, Saving Data, Intents and Fragments Emmanuel Agu

CS 4518 Mobile and Ubiquitous Computing Lecture 5: Rotating Device, Saving Data, Intents and Fragments Emmanuel Agu CS 4518 Mobile and Ubiquitous Computing Lecture 5: Rotating Device, Saving Data, Intents and Fragments Emmanuel Agu Administrivia Moved back deadlines for projects 2, 3 and final project See updated schedule

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

Overview of Activities

Overview of Activities d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA CS 282 Principles of Operating Systems II Systems Programming

More information

Android Application Development using Kotlin

Android Application Development using Kotlin Android Application Development using Kotlin 1. Introduction to Kotlin a. Kotlin History b. Kotlin Advantages c. How Kotlin Program Work? d. Kotlin software Prerequisites i. Installing Java JDK and JRE

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

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

Produced by. Mobile Application Development. Eamonn de Leastar

Produced by. Mobile Application Development. Eamonn de Leastar Mobile Application Development 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 A First

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

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

Android Application Model II. CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr.

Android Application Model II. CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Android Application Model II CSE 5236: Mobile Application Development Instructor: Adam C. Champion, Ph.D. Course Coordinator: Dr. Rajiv Ramnath 1 Outline Activity Lifecycle Services Persistence Content

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

Mobile and Ubiquitous Computing: Android Programming (part 3)

Mobile and Ubiquitous Computing: Android Programming (part 3) Mobile and Ubiquitous Computing: Android Programming (part 3) Master studies, Winter 2015/2016 Dr Veljko Pejović Veljko.Pejovic@fri.uni-lj.si Based on Programming Handheld Systems, Adam Porter, University

More information

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar

Produced by. Mobile Application Development. Higher Diploma in Science in Computer Science. Eamonn de Leastar Mobile Application Development Higher Diploma in Science in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie) Department of Computing, Maths & Physics Waterford Institute of Technology

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

Programming with Android: Geo-localization and Google Map Services. Luca Bedogni. Dipartimento di Scienze dell Informazione Università di Bologna

Programming with Android: Geo-localization and Google Map Services. Luca Bedogni. Dipartimento di Scienze dell Informazione Università di Bologna Programming with Android: Geo-localization and Google Map Services Luca Bedogni Dipartimento di Scienze dell Informazione Università di Bologna Outline Geo-localization techniques Location Listener and

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

MAD ASSIGNMENT NO 3. Submitted by: Rehan Asghar BSSE AUGUST 25, SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept.

MAD ASSIGNMENT NO 3. Submitted by: Rehan Asghar BSSE AUGUST 25, SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept. MAD ASSIGNMENT NO 3 Submitted by: Rehan Asghar BSSE 7 15126 AUGUST 25, 2017 SUBMITTED TO: SIR WAQAS ASGHAR Superior CS&IT Dept. MainActivity.java File package com.example.tutorialspoint; import android.manifest;

More information

CS 528 Mobile and Ubiquitous Computing Lecture 3b: Android Activity Lifecycle and Intents Emmanuel Agu

CS 528 Mobile and Ubiquitous Computing Lecture 3b: Android Activity Lifecycle and Intents Emmanuel Agu CS 528 Mobile and Ubiquitous Computing Lecture 3b: Android Activity Lifecycle and Intents Emmanuel Agu Android Activity LifeCycle Starting Activities Android applications don't start with a call to main(string[])

More information

South Africa Version Control.

South Africa Version Control. South Africa 2013 Lecture 7: User Interface (Navigation)+ Version Control http://aiti.mit.edu South Africa 2013 Today s agenda Recap Navigation Version Control 2 Tutorial Recap Activity 1 Activity 2 Text

More information

ARCHETYPE MODERN ANDROID ARCHITECTURE STEPAN GONCHAROV / DENIS NEKLIUDOV

ARCHETYPE MODERN ANDROID ARCHITECTURE STEPAN GONCHAROV / DENIS NEKLIUDOV ARCHETYPE MODERN ANDROID ARCHITECTURE STEPAN GONCHAROV / DENIS NEKLIUDOV 90seconds.tv 14000+ VIDEOS 1200+ BRANDS 92+ COUNTRIES data class RegisterViewModelStateImpl( override val email: ObservableString

More information

ActionBar. import android.support.v7.app.actionbaractivity; public class MyAppBarActivity extends ActionBarActivity { }

ActionBar. import android.support.v7.app.actionbaractivity; public class MyAppBarActivity extends ActionBarActivity { } Android ActionBar import android.support.v7.app.actionbaractivity; public class MyAppBarActivity extends ActionBarActivity { Layout, activity.xml

More information

Meniu. Create a project:

Meniu. Create a project: Meniu Create a project: Project name: P0131_MenuSimple Build Target: Android 2.3.3 Application name: MenuSimple Package name: ru.startandroid.develop.menusimple Create Activity: MainActivity Open MainActivity.java.

More information

LECTURE NOTES OF APPLICATION ACTIVITIES

LECTURE NOTES OF APPLICATION ACTIVITIES Department of Information Networks The University of Babylon LECTURE NOTES OF APPLICATION ACTIVITIES By College of Information Technology, University of Babylon, Iraq Samaher@inet.uobabylon.edu.iq The

More information

Login with Amazon. Getting Started Guide for Android apps

Login with Amazon. Getting Started Guide for Android apps Login with Amazon Getting Started Guide for Android apps Login with Amazon: Getting Started Guide for Android Copyright 2017 Amazon.com, Inc., or its affiliates. All rights reserved. Amazon and the Amazon

More information

Android Data Binding: This is the DSL you're looking for

Android Data Binding: This is the DSL you're looking for Android Data Binding: This is the DSL you're looking for Maksim Lin Freelance Android Developer www.manichord.com The plan Why Data Binding? Brief intro to Data Binding Library Adding Data Binding to an

More information

ACTIVITY, FRAGMENT, NAVIGATION. Roberto Beraldi

ACTIVITY, FRAGMENT, NAVIGATION. Roberto Beraldi ACTIVITY, FRAGMENT, NAVIGATION Roberto Beraldi Introduction An application is composed of at least one Activity GUI It is a software component that stays behind a GUI (screen) Activity It runs inside the

More information

Android Basics. Android UI Architecture. Android UI 1

Android Basics. Android UI Architecture. Android UI 1 Android Basics Android UI Architecture Android UI 1 Android Design Constraints Limited resources like memory, processing, battery à Android stops your app when not in use Primarily touch interaction à

More information

Intents. Your first app assignment

Intents. Your first app assignment Intents Your first app assignment We will make this. Decidedly lackluster. Java Code Java Code XML XML Preview XML Java Code Java Code XML Buttons that work

More information

Fragments and the Maps API

Fragments and the Maps API Fragments and the Maps API Alexander Nelson October 6, 2017 University of Arkansas - Department of Computer Science and Computer Engineering Fragments Fragments Fragment A behavior or a portion of a user

More information

API Guide for Gesture Recognition Engine. Version 1.1

API Guide for Gesture Recognition Engine. Version 1.1 API Guide for Gesture Recognition Engine Version 1.1 Table of Contents Table of Contents... 2 Gesture Recognition API... 3 API URI... 3 Communication Protocol... 3 Getting Started... 4 Protobuf... 4 WebSocket

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

Create Parent Activity and pass its information to Child Activity using Intents.

Create Parent Activity and pass its information to Child Activity using Intents. Create Parent Activity and pass its information to Child Activity using Intents. /* MainActivity.java */ package com.example.first; import android.os.bundle; import android.app.activity; import android.view.menu;

More information

Update to newest version and translate to English.

Update to newest version and translate to English. 1. Import Project 1.1 Preparation 1.2 Project Configuration 1.3 Configure Display Resources 1.4 Configure Test Environment 1.5 Enable Video Buffer 2. Ad formats 2.1 Banner 2.1.1Banner 2.1.2 FullScreen

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

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 Google Services" Part 1 Google+

More information

Xin Pan. CSCI Fall

Xin Pan. CSCI Fall Xin Pan CSCI5448 2011 Fall Outline Introduction of Android System Four primary application components AndroidManifest.xml Introduction of Android Sensor Framework Package Interface Classes Examples of

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 Google Services" Part 1 Google+

More information

Android Apps Development for Mobile and Tablet Device (Level I) Lesson 4. Workshop

Android Apps Development for Mobile and Tablet Device (Level I) Lesson 4. Workshop Workshop 1. Create an Option Menu, and convert it into Action Bar (Page 1 8) Create an simple Option Menu Convert Option Menu into Action Bar Create Event Listener for Menu and Action Bar Add System Icon

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

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