IEMS 5722 Mobile Network Programming and Distributed Server Architecture

Size: px
Start display at page:

Download "IEMS 5722 Mobile Network Programming and Distributed Server Architecture"

Transcription

1 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 C. M. Au Yeung 30 th March, 2017

2 Google Play Services 2

3 Google Play Services Google Play Services is a set of cloud services and APIs for Android devices Version 8.4 released 18 Dec, 2015 Allows you to integrate various services from Google into the mobile app Some of Google s services include Location detection Geocoding and reverse geo-coding Maps API (e.g. navigation, street views) Google drive for cloud storage Google Wallet for online payment 3

4 Google Play Services Google Services API Requests and Responses Google Play App Store Your Mobile App Automatic Update GMS Client Library Google Play Services APK An Android Device 4

5 Google Play Services Setting up Google Play Services Download latest Google Play services SDK Update your build.gradle file (Refer to the link below) Reference: 5

6 Accessing Google APIs To access various Google APIs, you need to create an instance of GoogleApiClient Acts as a common entry point to all Google services Manages network connection between the device and each service Reference: 6

7 Accessing Google APIs You can create an instance of GoogleApiClient with connection to specific APIs by using a builder: public class MyActivity extends FragmentActivity implements OnConnectionFailedListener { private GoogleApiClient protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // Create a GoogleApiClient instance mgoogleapiclient = new GoogleApiClient.Builder(this).enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */).addapi(drive.api).addscope(drive.scope_file).build(); public void onconnectionfailed(connectionresult result) { // An unresolvable error has occurred and a connection to Google // APIs could not be established. Display an error message, // or handle the failure silently //... 7

8 Google APIs for Android For a list of Google APIs for Android, see: 8

9 Location Detection 9

10 Location Detection Location detection is one of the most commonly used features of smartphones Many apps offers location-based services, e.g.: Maps, transportation and navigation Location-based social networking Tracking News Weather forecast... 10

11 Location Detection Mobile phones can detect locations by using a variety of data sources 1. GPS (Global Positioning System) 2. Information of base stations (Cell ID) (e.g Wi-Fi + IP Address 4. Others 11

12 Location Detection Android provides simple APIs that return user s current location by combining the input from different sources Android Framework s Location APIs (android.location) Google Play Services Location APIs (com.google.android.gms.location) Preferred Option 12

13 Google Play Services Location APIs If your app needs to use location services, you need to request permission from the user Two permissions: 1. ACCESS_COARSE_LOCATION (accurate to the level of a city block) 2. ACCESS_FINE_LOCATION (accurate to a few metres) <uses-permission android:name="android.permission.access_coarse_location"/> <uses-permission android:name="android.permission.access_fine_location"/> 13

14 Google Play Services Location APIs The flow of setting up the app to use the location APIs Connect to Google Play services Set up a location request with parameters Request location updates from the API 4 5 Obtain the last known location of the phone Receive location updates 14

15 1. Connecting to Google Play Services Firstly, you need to get an instance of the Google Play services API client GoogleApiClient mgoogleapiclient; protected synchronized void buildgoogleapiclient() { mgoogleapiclient = new GoogleApiClient.Builder(this).addConnectionCallbacks(this).addOnConnectionFailedListener(this).addApi(LocationServices.API).build(); Adding the location service API here NOTE: We do not enable auto-management of connection here. 15

16 1. Connecting to Google Play Services Connect the API client when the activity is started, and disconnect when it is protected void onstart() { super.onstart(); if (mgoogleapiclient!= null) { protected void onstop() { if (mgoogleapiclient!= null) { mgoogleapiclient.disconnect(); super.onstop(); 16

17 1. Connecting to Google Play Services To receive status updates from the API client, your activity need to implements some interfaces and callback functions import com.google.android.gms.common.api.googleapiclient; import com.google.android.gms.location.locationlistener; public class MainActivity extends Activity implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener {... 17

18 2. Setting up a Location Request The Location APIs will notify your app when it has an updated information about the location of the user You need to submit a request to receive location updates Submit location request with parameters Android System Your App Send location updates when there is changes or according to a preset frequency 18

19 2. Setting up a Location Request Creating a location request: protected void createlocationrequest() { mlocationrequest = new LocationRequest(); mlocationrequest.setinterval(10000); mlocationrequest.setfastestinterval(5000); mlocationrequest.setpriority(locationrequest.priority_high_accuracy); Interval (ms): how frequent you would like to receive updates Fastest Interval (ms): the fastest rate at which your app will receive updates Priority: Different priority settings affect power consumption (ref.: 19

20 3. Request Location Updates Once the API client is connected, you can submit your location public void onconnected(bundle connectionhint) {... LocationServices.FusedLocationApi.requestLocationUpdates( mgoogleapiclient, mlocationrequest, this);... You need to pass to this method a location listener. If your activity has implemented the location listener interface, you can provide the reference of the current activity here. 20

21 4. Obtain the Last Known Location Usually it takes some time before you will receive the first location update You can obtain the last known location of the user first, so that you can start executing some functions in your public void onconnected(bundle connectionhint) { mlastlocation = LocationServices.FusedLocationApi.getLastLocation( mgoogleapiclient); if (mlastlocation!= null) { mlatitudetext.settext(string.valueof(mlastlocation.getlatitude())); mlongitudetext.settext(string.valueof(mlastlocation.getlongitude()));... 21

22 5. Receiving Location Updates Finally, set up the callback functions so that you can receive location public void onlocationchanged(location location) { mcurrentlocation = location; mlastupdatetime = DateFormat.getTimeInstance().format(new Date());... // Perform actions based on the updated location // e.g. update the UI, alert the user, etc

23 Stop Receiving Location Updates To save power, you should stop requesting location updates when it is no longer necessary. For protected void onpause() { super.onpause(); LocationServices.FusedLocationApi.removeLocationUpdates( mgoogleapiclient, public void onresume() { super.onresume(); if (mgoogleapiclient.isconnected()) { LocationServices.FusedLocationApi.requestLocationUpdates( mgoogleapiclient, mlocationrequest, this); 23

24 Using Google Maps 24

25 Using Google Maps in Your App You can embed an interactive map in your app by using Google Maps Android API Google Maps functions include: Provide interactive maps with 3D maps, satellite view, terrain view, road maps, etc. Allow overlaying of different components, such as markers, polygons, etc. Control user s view such as rotation, zoom, pan Street view 25

26 Getting Started To embed Google Maps in your app, you need to set up your app and obtain an API key from Google Follow the instructions at: Once you have a key, add it to your manifest file: <meta-data android:name="com.google.android.geo.api_key" android:value="api_key"/> 26

27 Adding a Map to Your App To add a map to your activity, add a fragment with android:name equals to com.google.android.gms.maps.mapfragment : <?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android=" android:name="com.google.android.gms.maps.mapfragment" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent"/> 27

28 Adding a Map to Your App To control the map, in the code of the activity, you need to obtain the map object: public class MainActivity extends FragmentActivity implements OnMapReadyCallback public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); MapFragment mapfragment = (MapFragment) getfragmentmanager().findfragmentbyid(r.id.map); public void onmapready(googlemap map) { map.addmarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker")); 28

29 Other Maps SDKs Nokia HERE Map OpenStreetMap Baidu Map 29

30 Geocoding & Reverse Geocoding 30

31 Geocoding & Reverse Geocoding Geocoding Converting an address to a geographic location (latitude/longitude) Reverse Geocoding Converting a geographic location (latitude/longitude) to an address Both of these functions can be performed by using the Geocoder class in Android 31

32 Reverse Geocoding Reverse Geocoding In a mobile app, you might need want to let the user choose a location on the map, and then retrieve the address of that location (or when you need to locate the user using GPS/Wi-Fi signals) To use reverse geocoding, you need a precise geolocation, therefore you should ask for the ACCESS_FINE_LOCATION permission You can use the Geocoder class to perform reverse geocoding (see next page) Reference: 32

33 Reverse Geocoding The function getfromlocation is a blocking and may take a long time (several seconds) to response You should not execute this on the UI thread Instead, you should use one of the following methods AsyncTask Intent service (IntentService) with result receiver (ResultReceiver) or local broadcasting (LocalBroadcastManager) 33

34 Geocoding Similarly, you can obtain a geolocation by providing a address (i.e. geocoding) For example: String address = "The Chinese University of Hong Kong, Shatin, Hong Kong"; List<Address> list = null; try { addresses = geocoder.getfromlocationname(address, 1); catch (IOException ioexception) { // Catch network or other I/O problems catch (IllegalArgumentException illegalargumentexception) { // Catch invalid latitude or longitude values 34

35 Other Cloud Services 35

36 Cloud Services & APIs Facebook Instagram WeChat Baidu YouTube IBM Developer Cloud 36

37 Auto-complete Text Views 37

38 Auto-complete Text Views A text view that automatically suggests words or phrases for input while the user is typing Useful when you allow the user to perform searching and input specific information (e.g. country names, addresses, etc.) You can use one of the following classes depending on your requirements AutoCompleteTextView MultiAutoCompleteTextView 38

39 Auto-complete Text Views Adding AutoCompleteTextView to your Activity <AutoCompleteTextView android:layout_width="match_parent" android:layout_height="wrap_content /> 39

40 Auto-complete Text Views Auto-complete involves providing a candidate list, this is done by using an adapter (similar to what you do when using ListView) For example, the following use a pre-defined string array as a candidate list AutoCompleteTextView ac = (AutoCompleteTextView) findviewbyid(r.id.autocompletetextview1); String[] countries = new String[] { Algeria, Belgium, Canada, Denmark, Ethiopia, France ; ArrayAdapter<String>(this, android.r.layout.simple_list_item_1, countries); ac.setadapter(adapter); 40

41 Auto-complete Text Views What if you don t want to hard-code the list of candidates in the app? You need to send the intermediate input of the user to the server, and use the data returned by the server to update the data in the adapter User input texts in the AutoCompleteTextView Extract data from the response of the server Submit texts input by the user to the server Update data in the adapter of the AutoCompleteTextView 41

42 ac.addtextchangedlistener(new TextWatcher() public void aftertextchanged(editable s) { final String query = s.tostring().trim(); if (query.length() > 1) { AsyncHttpClient client = new AsyncHttpClient(); RequestParams params = new RequestParams(); params.put("query", query); client.get(url, parmas, new TextHttpResponseHandler() public void onsuccess( int statuscode, Header[] headers, String response) { // Extract data... // Update data of the adapter... adapter.notifydatasetchanged(); ); ); 42

43 MultiAutoCompleteTextView MultiAutoCompleteTextView allows user to input multiple items separated by a separator (e.g. a comma) Suggestions will be provided for the latest item in the text view 43

44 Gradle 44

45 Gradle Gradle is the official build tool for Android applications It helps you build (compile), test, run and package your apps It is integrated into Android Studio through the Android Gradle Plugin It can also be executed independently from the command line Reference: 45

46 Gradle The Gradle build process 46

47 What are the benefits? Using Gradle allows you to Configure and customise the build process Create different versions of your app with different features, settings or parameters under the same project Easily incorporate third-party modules into your application 47

48 Build Configuration An Android Studio project contain a top-level build file and a build file for each module ( app is a module in the project) The build files are all named build.gradle In most cases, you only need to modify the build files at the module level Reference: 48

49 apply plugin: 'com.android.application' android { compilesdkversion 23 buildtoolsversion "23.0.2" Apply the Android plugin for Gradle in this build Build Configuration defaultconfig { applicationid "hk.edu.cuhk.ie.iems5722" minsdkversion 15 targetsdkversion 23 versioncode 1 versionname "1.0" buildtypes { release { minifyenabled false proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro' Configure the core settings and entries in the AndroidManifest.xml file Specify different build types. The two default build types are debug and release. dependencies { compile filetree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.1.1' Declare dependencies to libraries, jar files, remote packages 49

50 Product Flavours When publishing an app, you might want to publish different variants of the app, which features different functions You can specify different product flavours in the build.gradle file, and specify their individual parameters productflavors { pro { applicationid = "com.iems5722.pro" free { applicationid = "com.iems5722.free" buildtypes { debug { applicationidsuffix ".debug" 50

51 Using BuildConfig You can specify constant values in the build.gradle file, and use them in your Java code When building, different build types or product flavours will use the corresponding values automatically Steps: 1. Specify constant values in build.gradle using buildconfigfield 2. Use the values in your Java code using the BuildConfig class 51

52 Using BuildConfig android { buildtypes { debug { buildconfigfield int, CREDITS, buildconfigfield String, APP_NAME, APP DEBUG VERSION buildconfigfield boolean, LOG, true release { buildconfigfield int, CREDITS, 10 buildconfigfield String, FOO_STRING, APP buildconfigfield boolean, LOG, false 52

53 Using BuildConfig public class MainActivity extends AppCompatActivity protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); int credits = BuildConfig.CREDITS; String app_name = BuildConfig.APP_NAME; boolean log = BuildConfig.LOG;... 53

54 Using BuildConfig In developing client-server systems, one scenario in which you will use BuildConfig is to specify the URL to the APIs for the debug and release build types of your app android { buildtypes { debug { buildconfigfield String, DOMAIN, dev.myapp.com release { buildconfigfield int, DOMAIN, api.myapp.com 54

55 ProGuard 55

56 ProGuard ProGuard is a tool that helps you shrinks, optimises, and ofuscates the codes of your app It does so by removing unused code, renaming classes, fields, and methods with semantically obscure names Why? Creates an APK file with smaller size Makes the app more difficult to reverse engineer Reference:

57 ProGuard ProGuard will only be run when you build your application in release mode (and if you have enabled it) To enable ProGuard: android {... Set minifyenabled to true buildtypes { release { minifyenabled true proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro' The file containing the customised rules 57

58 Configuring ProGuard In some cases, ProGuard might not analyse your code correctly, and might remove codes that are actually required in your app You should specifically ask ProGuard to not modify some of the codes in your app when necessary Whenever you see ClassNotFoundException when building your app for release, you can add lines in the following format to the proguard-rules.pro files in the app module -keep public class com.iems5722.app.myclass001 58

59 Project Presentations 59

60 Project To facilitate testing and marking, please name the package of your app using the following format: com.iems5722.groupx (Replace X with your group number) Send your app s APK file (or a link to that file if it is too large) to my (cmauyeung@ie.cuhk.edu.hk) before the end of 26 th April, 2017 (Wednesday) The APK files will be shared to the class so that everyone can try your apps 60

61 Project Presentations You will have your project presentations on 27 th April, 2017 (Thursday) Each group will have 6 minutes to present their app Your presentation slides should follow the format below: 1. Introduction: what is the app you have developed? (1 slides) 2. Functions: what are the major functions? (1-2 slides with screenshots) 3. Demonstration: 3 mins video (a trial run / an example usage / demonstrate most important features) 4. What is the most challenging part? (name 1 issue, and describe how you solved it) 5. What additional things will you add if you have more time? 61

62 Project Presentations Send you a link to the project report and all source codes to my (cmauyeung@ie.cuhk.edu.hk) on or before 4 th May, 2017 (Thursday) What should you include in your report: 1. Problem definition what problem does your app try to solve? 2. Features / Functions what are the major (networking) functions of the app? (with screenshots) 3. System architecture (use diagrams and illustrations to describe how does the system (client/server) works) (no need to describe specific implementation of the UI) 4. How would you further improve it? 5. A list of third party libraries that you have used in your project 62

63 End of Lecture 12 Looking forward to your project presentations! 63

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

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

Mobile Application Development Google Maps Android API

Mobile Application Development Google Maps Android API Mobile Application Development Google Maps Android API Waterford Institute of Technology October 17, 2016 John Fitzgerald Waterford Institute of Technology, Mobile Application Development Google Maps Android

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

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-espresso #androidespresso

android-espresso #androidespresso android-espresso #androidespresso Table of Contents About 1 Chapter 1: Getting started with android-espresso 2 Remarks 2 Examples 2 Espresso setup instructions 2 Checking an Options Menu items (using Spoon

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

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

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

Android tips. which simplify your life

Android tips. which simplify your life Android tips which simplify your life Android Studio beta gradle build system maven-based build dependencies build variants code completion, refactoring, templates graphical template editor Gradle apply

More information

EMBEDDED SYSTEMS PROGRAMMING Android NDK

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

More information

Google Maps Troubleshooting

Google Maps Troubleshooting Google Maps Troubleshooting Before you go through the troubleshooting guide below, make sure that you ve consulted the class FAQ, Google s Map Activity Tutorial, as well as these helpful resources from

More information

Mobile Application Development

Mobile Application Development Mobile Application Development MTAT.03.262 Jakob Mass jakob.mass@ut.ee Goal Give you an idea of how to start developing mobile applications for Android Introduce the major concepts of Android applications,

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

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

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

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

Activities. https://developer.android.com/guide/components/activities.html Repo: https://github.com/karlmorris/basicactivities

Activities. https://developer.android.com/guide/components/activities.html Repo: https://github.com/karlmorris/basicactivities Activities https://developer.android.com/guide/components/activities.html Repo: https://github.com/karlmorris/basicactivities Overview What is an Activity Starting and stopping activities The Back Stack

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

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

EMBEDDED SYSTEMS PROGRAMMING Android NDK

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

More information

This document providesanoverview ofthestepsrequired to implement an android app which will call the ACH android SDK.

This document providesanoverview ofthestepsrequired to implement an android app which will call the ACH android SDK. Contents Introduction... 2 Requirement... 2 Create Android Application... 3 Files detail in App... 6 Android SDK for Connect Pay... 10 How to call SDK... 10 Method Details... 12 Introduction This document

More information

Android development. Outline. Android Studio. Setting up Android Studio. 1. Set up Android Studio. Tiberiu Vilcu. 2.

Android development. Outline. Android Studio. Setting up Android Studio. 1. Set up Android Studio. Tiberiu Vilcu. 2. Outline 1. Set up Android Studio Android development Tiberiu Vilcu Prepared for EECS 411 Sugih Jamin 15 September 2017 2. Create sample app 3. Add UI to see how the design interface works 4. Add some code

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

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 1 Course Introduction Lecturer: Albert C. M. Au

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

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

Introduction to Android

Introduction to Android Introduction to Android http://myphonedeals.co.uk/blog/33-the-smartphone-os-complete-comparison-chart www.techradar.com/news/phone-and-communications/mobile-phones/ios7-vs-android-jelly-bean-vs-windows-phone-8-vs-bb10-1159893

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

Developing For Android

Developing For Android Wirtschaftsuniversität Wien Developing For Android From 0 to 100 on Mobile and Wearable Devices Author: Gerald Urschitz Supervisor: Ronny G. Flatscher January 7, 2016 I, Gerald Urschitz, declare that this

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

Getting Started ArcGIS Runtime SDK for Android. Andy

Getting Started ArcGIS Runtime SDK for Android. Andy Getting Started ArcGIS Runtime SDK for Android Andy Gup @agup Agenda Introduction Runtime SDK - Tools and features Maps & Layers Tasks Editing GPS Offline Capabilities Summary My contact info Andy Gup,

More information

32. And this is an example on how to retrieve the messages received through NFC.

32. And this is an example on how to retrieve the messages received through NFC. 4. In Android applications the User Interface (UI) thread is the main thread. This thread is very important because it is responsible with displaying/drawing and updating UI elements and handling/dispatching

More information

Presented by: Megan Bishop & Courtney Valentine

Presented by: Megan Bishop & Courtney Valentine Presented by: Megan Bishop & Courtney Valentine Early navigators relied on landmarks, major constellations, and the sun s position in the sky to determine latitude and longitude Now we have location- based

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

BlackBerry Developer Global Tour. Android. Table of Contents

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

More information

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

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

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

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

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

Getting Started With Android Feature Flags

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

More information

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

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

ArcGIS Runtime SDK for Android: Building Apps. Shelly Gill

ArcGIS Runtime SDK for Android: Building Apps. Shelly Gill ArcGIS Runtime SDK for Android: Building Apps Shelly Gill Agenda Getting started API - Android Runtime SDK patterns - Common functions, workflows The Android platform Other sessions covered Runtime SDK

More information

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

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

More information

1.1 Why Foxit MobilePDF SDK is your choice Foxit MobilePDF SDK Key Features Evaluation License...

1.1 Why Foxit MobilePDF SDK is your choice Foxit MobilePDF SDK Key Features Evaluation License... TABLE OF CONTENTS 1 Introduction to Foxit MobilePDF SDK...1 1.1 Why Foxit MobilePDF SDK is your choice... 1 1.2 Foxit MobilePDF SDK... 2 1.3 Key Features... 3 1.4 Evaluation... 4 1.5 License... 4 1.6 About

More information

The Definitive Guide to Firebase

The Definitive Guide to Firebase The Definitive Guide to Firebase Build Android Apps on Google s Mobile Platform Laurence Moroney The Definitive Guide to Firebase Build Android Apps on Google s Mobile Platform Laurence Moroney The Definitive

More information

Message Passing & APIs

Message Passing & APIs CS 160 User Interface Design Message Passing & APIs Section 05 // September 25th, 2015 Tricia Fu // OH Monday 9:30-10:30am // triciasfu@berkeley.edu Agenda 1 Administrivia 2 Brainstorm Discussion 3 Message

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

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

1.1 Why Foxit MobilePDF SDK is your choice Foxit MobilePDF SDK Key Features Evaluation License...

1.1 Why Foxit MobilePDF SDK is your choice Foxit MobilePDF SDK Key Features Evaluation License... TABLE OF CONTENTS 1 Introduction to Foxit MobilePDF SDK...1 1.1 Why Foxit MobilePDF SDK is your choice... 1 1.2 Foxit MobilePDF SDK... 2 1.3 Key Features... 3 1.4 Evaluation... 4 1.5 License... 4 1.6 About

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

DSL. ~ dsl_slides * about::contacts(me)

DSL. ~ dsl_slides * about::contacts(me) DSL ~ dsl_slides * about::contacts(me) Aliaksandr Salnikau (Александр Сальников) Company: EPAM Position: Lead Software Engineer Primary skill: Android Contacts: email: aliaksandr_salnikau@epam.com skype:

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

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

Mobile Application Development

Mobile Application Development Mobile Application Development donation-web api { method: 'GET', path: '/api/candidates', config: CandidatesApi.find, { method: 'GET', path: '/api/candidates/{id', config: CandidatesApi.findOne, { method:

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

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

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

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

Introduction To Android

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

More information

SDK Android Studio. 2. build.gradle. SDK moxie-client-xxx.aar libs 2.1. build.gradle. 2.4 repositories. app proguard-rules.pro

SDK Android Studio. 2. build.gradle. SDK moxie-client-xxx.aar libs 2.1. build.gradle. 2.4 repositories. app proguard-rules.pro SDK Android Studio 1. SDK SDK moxie-client-xxx.aar libs 2. build.gradle 2.1 build.gradle dependencies { compile filetree(dir: 'libs', include: ['.jar']) compile 'com.android.support:appcompat-v7:23.1.1'

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

CS 4518 Mobile and Ubiquitous Computing Lecture 4: Data-Driven Views, Android Components & Android Activity Lifecycle Emmanuel Agu

CS 4518 Mobile and Ubiquitous Computing Lecture 4: Data-Driven Views, Android Components & Android Activity Lifecycle Emmanuel Agu CS 4518 Mobile and Ubiquitous Computing Lecture 4: Data-Driven Views, Android Components & Android Activity Lifecycle Emmanuel Agu Announcements Group formation: Projects 2, 3 and final project will be

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

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

Vienos veiklos būsena. Theory

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

More information

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

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

TomTom Mobile SDK QuickStart Guide

TomTom Mobile SDK QuickStart Guide TomTom Mobile SDK QuickStart Guide Table of Contents Introduction... 3 Migrate to TomTom ios... 4 Prerequisites...4 Initializing a map...4 Displaying a marker...4 Displaying traffic...5 Displaying a route/directions...5

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

M.A.D Assignment # 1

M.A.D Assignment # 1 Submitted by: Rehan Asghar Roll no: BSSE (7) 15126 M.A.D Assignment # 1 Submitted to: Sir Waqas Asghar Submitted by: M. Rehan Asghar 4/25/17 Roll no: BSSE 7 15126 XML Code: Calculator Android App

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

PILOT FM Radio SDK AUGUST 31, 2016

PILOT FM Radio SDK AUGUST 31, 2016 PILOT FM Radio SDK Android Integration Guide Document version 1.0.3 Applies to: SDK Version 1.0.3 This document is intended to be used in conjunction with the sample app provided. AUGUST 31, 2016 PILOT

More information

AdFalcon Android SDK Developer's Guide. AdFalcon Mobile Ad Network Product of Noqoush Mobile Media Group

AdFalcon Android SDK Developer's Guide. AdFalcon Mobile Ad Network Product of Noqoush Mobile Media Group AdFalcon Android SDK 400 Developer's Guide AdFalcon Mobile Ad Network Product of Noqoush Mobile Media Group Table of Contents 1 Introduction 3 Prerequisites 3 2 Project Configurations 4 Step 1: Add the

More information

Much Manifest Merging. Copyright 2015 CommonsWare, LLC

Much Manifest Merging. Copyright 2015 CommonsWare, LLC Much Manifest Merging Mommy, Where Do Manifests Come From? Gradle build files Sourcesets Build types and product flavors androidtest (if applicable) main AARs and library modules Priority based on order

More information

Android/Java Lightning Tutorial JULY 30, 2018

Android/Java Lightning Tutorial JULY 30, 2018 Android/Java Lightning Tutorial JULY 30, 2018 Java Android uses java as primary language Resource : https://github.mit.edu/6178-2017/lec1 Online Tutorial : https://docs.oracle.com/javase/tutorial/java/nutsandbolts/inde

More information

TRANSACT MOBILE Android SDK v4.0 EPHESOFT

TRANSACT MOBILE Android SDK v4.0 EPHESOFT TRANSACT MOBILE Android SDK v4.0 EPHESOFT September, 2017 Copyright 2017 by Ephesoft, Inc. All rights reserved. This publication pertains to Ephesoft and to any subsequent release until otherwise indicated

More information

ATC Android Application Development

ATC Android Application Development ATC Android Application Development 1. Android Framework and Android Studio b. Android Platform Architecture i. Linux Kernel ii. Hardware Abstraction Layer(HAL) iii. Android runtime iv. Native C/C++ Libraries

More information

Family Map Client Specification

Family Map Client Specification Family Map Client Specification 1 Contents Contents... 2 Acknowledgements... 4 Introduction... 4 Purposes... 4 Family Map Client: A Quick Overview... 4 Activities... 5 Main Activity... 5 Login Fragment...

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 10 Web Sockets for Real-time Communications Lecturer:

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

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

ipass SmartConnect Getting Started Guide for Android Version MARCH 2017

ipass SmartConnect Getting Started Guide for Android Version MARCH 2017 ipass SmartConnect Getting Started Guide for Android Version 1.5.4.90 MARCH 2017 Introduction 3 Getting Started 4 Using Android Studio to Add the SmartConnect Library...4 Starting SmartConnect Service...6

More information

Wireless Vehicle Bus Adapter (WVA) Android Library Tutorial

Wireless Vehicle Bus Adapter (WVA) Android Library Tutorial Wireless Vehicle Bus Adapter (WVA) Android Library Tutorial Revision history 90001431-13 Revision Date Description A October 2014 Original release. B October 2017 Rebranded the document. Edited the document.

More information

Mobila applikationer och trådlösa nät, HI1033, HT2012

Mobila applikationer och trådlösa nät, HI1033, HT2012 Mobila applikationer och trådlösa nät, HI1033, HT2012 Today: - User Interface basics - View components - Event driven applications and callbacks - Menu and Context Menu - ListView and Adapters - Android

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

Understanding Application

Understanding Application Introduction to Android Application Development, Android Essentials, Fifth Edition Chapter 4 Understanding Application Components Chapter 4 Overview Master important terminology Learn what the application

More information

Internet of Things Sensors - Part 1 Location Services

Internet of Things Sensors - Part 1 Location Services Internet of Things Sensors - Part 1 Location Services Aveek Dutta Assistant Professor Department of Computer Engineering University at Albany SUNY e-mail: adutta@albany.edu http://www.albany.edu/faculty/adutta

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

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

VMware AirWatch Android SDK Technical Implementation Guide Empowering your enterprise applications with MDM capabilities using

VMware AirWatch Android SDK Technical Implementation Guide Empowering your enterprise applications with MDM capabilities using VMware AirWatch Android SDK Technical Implementation Guide Empowering your enterprise applications with MDM capabilities using the AirWatch SDK for Android AirWatch SDK v17.6 Have documentation feedback?

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

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

Lifecycle-Aware Components Live Data ViewModel Room Library

Lifecycle-Aware Components Live Data ViewModel Room Library Lifecycle-Aware Components Live Data ViewModel Room Library Multiple entry points launched individually Components started in many different orders Android kills components on reconfiguration / low memory

More information

Statistics http://www.statista.com/topics/840/smartphones/ http://www.statista.com/topics/876/android/ http://www.statista.com/statistics/271774/share-of-android-platforms-on-mobile-devices-with-android-os/

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