Android Volley Tutorial

Size: px
Start display at page:

Download "Android Volley Tutorial"

Transcription

1 Android Volley Tutorial by Kapil - Monday, May 16, YouTube Video Volley is an HTTP library developed by Google to ease networking tasks in Android Applications. Volley supersedes Java's.net.HttpURLConnection class and Apache's org.apache.http.client in handling network requests. Volley can handle almost each and everything you will need to do over the network, it handles HTTP request and also manages the async tasks that you need to use while working with canonical networking classes. Features of Android Volley Library :- 1. Volley manages network request automatically and without you using any AsyncTask. It offers multiple concurrent network connections, resulting in faster and efficient network operations. 2. Volley caches all network requests, utilizing the previous results in the case of change in activity configuration. However due to the same reason, it is only good for small Volley and not suitable for large download or streaming operations. 3. It has a powerful cancellation API. You can fully control the request cancellation, or you can set blocks or scopes of requests to cancel. 4. Volley allows you to control and order the network requests making it easy to populate UI elements in an orderly manner, useful in case of social networking apps like facebook, twitter. It also provides support for request prioritization. 5. Volley has built in debugging and tracing tools which allow user to get to the root of the error. Working of Volley. While using volley you are only concerned about adding a request to the queue, handling it's response, and you can actually ignore everything that is running in the background. When you fire a network request it is added to cache queue in the priority order. A cache dispatcher thread figures out whether it can service the request entirely from the cache or it needs to fire a network request for the response. In the case of a cache miss or if cached response has expired, the network dispatcher services the request, handles the parsing of the response and returns the response back to the main thread. Volley is very useful for network request involving strings, images, and JSON. It has built in support for these objects. We will now show you how to use Volley for networking in android apps. We have created a Demo app which downloads the String, JsonObject, JsonArray and Image Object from the following URL's 1 / 12

2 respectively. String URL JsonObject URL JsonArray URL Image URL ct On completion the app will show user a menu, where she can select the type of response she wants as shown in the figure below. Android Volley Tutorial Menu The User can select one of the menu options and based upon her choice the response will be shown in a dialog box. You will get the following response if you click the four buttons respectively. Volley Response on Clicking the Menu Options (adsbygoogle = window.adsbygoogle ).push({); Pre-requisites 1. Android Studio installed on your PC (Unix or Windows). You can learn how to install it here. 2. A real time android device (Smartphone or Tablet) configured with Android Studio.. 3. Basic knowledge of JSON Parsing, Refer to JSON Parsing Tutorial. to learn about parsing JSON response. Creating a New Project and Adding Volley 1. Go to File? New? New Project and enter your Application Name. 2. Enter Company Domain, this is used to uniquely identify your App s package worldwide. 3. Choose project location and minimum SDK and on the next screen choose Empty Activity, since we would be adding most of the code Ourselves. Then Click on Next. 4. Choose an Activity Name. Make sure Generate Layout File check box is selected, Otherwise we have to generate it ourselves.then click on Finish. We have left Activity Name as MainActivity. 5. Gradle will configure your project and resolve the dependencies, Once it is complete proceed for next steps. 6. To add Volley to your project add the following dependency in your App's build.gradle file. compile 'com.android.volley:volley:1.0.0' Add Internet Permission 2 / 12

3 Add the following permission to your AndroidManifest. file AndroidManifest. <uses-permission android:name="android.permission.internet" /> Setup Request Queue The most efficient way to use Volley for a network intensive android application is to create a Singleton pattern and set up a single object of RequestQueue for the complete lifecycle of your app. To achieve this we will create a singleton class and add RequestQueue object as member field and create methods to achieve the functionality offered by Volley. Create a new class AppSingleton. and add the following code : AppSingleton. package com.androidtutorialpoint.volleytutorial; import android.content.context; import android.graphics.bitmap; import android.util.lrucache; import com.android.volley.request; import com.android.volley.requestqueue; import com.android.volley.toolbox.imageloader; import com.android.volley.toolbox.volley; /** * Created by androidtutorialpoint on 5/11/16. */ public class AppSingleton { private static AppSingleton mappsingletoninstance; private RequestQueue mrequestqueue; private ImageLoader mimageloader; private static Context mcontext; private AppSingleton(Context context) { mcontext = context; mrequestqueue = getrequestqueue(); mimageloader = new ImageLoader(mRequestQueue, new ImageLoader.ImageCache() { private final LruCache<String, Bitmap> 3 / 12

4 cache = new LruCache<String, Bitmap>(20); public Bitmap getbitmap(string url) { return cache.get(url); public void putbitmap(string url, Bitmap bitmap) { cache.put(url, bitmap); ); public static synchronized AppSingleton getinstance(context context) { if (mappsingletoninstance == null) { mappsingletoninstance = new AppSingleton(context); return mappsingletoninstance; public RequestQueue getrequestqueue() { if (mrequestqueue == null) { // getapplicationcontext() is key, it keeps you from leaking the // Activity or BroadcastReceiver if someone passes one in. mrequestqueue = Volley.newRequestQueue(mContext.getApplicationContext()); return mrequestqueue; public <T> void addtorequestqueue(request<t> req,string tag) { req.settag(tag); getrequestqueue().add(req); public ImageLoader getimageloader() { return mimageloader; public void cancelpendingrequests(object tag) { if (mrequestqueue!= null) { mrequestqueue.cancelall(tag); 4 / 12

5 We have created an instance of type AppSingleton and made the constructor private to apply singleton pattern. Additionally we have instances of RequestQueue and ImageLoader. We have also added getter methods for RequestQueue and ImageLoader. In the getrequestqueue() method we check whether the object already exists, if not we use the convenience method Volley.newRequestQueue(), pass in the application context and return the RequestQueue reference. The method addtorequestqueue() takes in a generic Type and adds it to request queue. In the constructor, we create an ImageLoader object using the RequestQueue object and a new ImageCache object. ImageCache is a cache adapter interface. It is used as an L1 cache before dispatch to Volley. We add a LruCache object from package.util.lrucache and implement the interface methods getbitmap() and putbitmap(). cancelpendingrequests() is used to cancel a request using a tag. To work with volley you construct a request object, there are different kinds of requests objects that you can use, most important ones are StringRequest, JsonObjectRequest, JsonArrayRequest and ImageRequest. Let's review how to perform these network requests one by one. String Request using Volley In the MainActivity., create the following method to make a Volley request for String Object. MainActivity. public void volleystringrequst(string url){ String REQUEST_TAG = "com.androidtutorialpoint.volleystringrequest"; progressdialog.setmessage("loading..."); progressdialog.show(); StringRequest strreq = new StringRequest(url, new Response.Listener<String>() { public void onresponse(string response) { Log.d(TAG, response.tostring()); LayoutInflater li = LayoutInflater.from(MainActivity.this); showdialogview = li.inflate(r.layout.show_dialog, null); outputtextview = (TextView)showDialogView.findViewById(R.id.text_view_dialog); AlertDialog.Builder alertdialogbuilder = new AlertDialog.Builder(MainActivity.this); alertdialogbuilder.setview(showdialogview); alertdialogbuilder.setpositivebutton("ok", new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int id) { 5 / 12

6 ).setcancelable(false).create(); outputtextview.settext(response.tostring()); alertdialogbuilder.show(); progressdialog.hide();, new Response.ErrorListener() { public void onerrorresponse(volleyerror error) { VolleyLog.d(TAG, "Error: " + error.getmessage()); progressdialog.hide(); ); // Adding String request to request queue AppSingleton.getInstance(getApplicationContext()).addToRequestQueue(strReq, REQUEST_TAG); The REQUEST_TAG is used to cancel the request. We have created a new StringRequest Object, the constructor takes in three arguments. 1. Url: the URL for the network request. 2. Listener Object: anonymous inner type, an implementation of Response.Listener(), It has an onrespose method which will receive the string from the web. 3. ErrorListener Object: anonymous inner type, an implementaion of onerrorresponse(volleyerror err) will get an instance of object of Volley Error In the onresponse() method, we are logging the output to LogCat and also showing the response recieved in an AlertDialog. In the onerrorresponse() method, we are simply logging the error message to LogCat. Now that we have described the network request, We need to add the request to a queue, We get the instance of the RequestQueue from AppSingleton and add our request to the queue. Next, create the following function to make a Volley request for JSONObject. MainActivity. public void volleyjsonobjectrequest(string url){ String REQUEST_TAG = "com.androidtutorialpoint.volleyjsonobjectrequest"; progressdialog.setmessage("loading..."); 6 / 12

7 progressdialog.show(); JsonObjectRequest jsonobjectreq = new JsonObjectRequest(url, null, new Response.Listener<JSONObject>() { public void onresponse(jsonobject response) { Log.d(TAG, response.tostring()); LayoutInflater li = LayoutInflater.from(MainActivity.this); showdialogview = li.inflate(r.layout.show_dialog, null); outputtextview = (TextView)showDialogView.findViewById(R.id.text_view_dialog); AlertDialog.Builder alertdialogbuilder = new AlertDialog.Builder(MainActivity.this); alertdialogbuilder.setview(showdialogview); alertdialogbuilder.setpositivebutton("ok", new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int id) { ).setcancelable(false).create(); outputtextview.settext(response.tostring()); alertdialogbuilder.show(); progressdialog.hide();, new Response.ErrorListener() { public void onerrorresponse(volleyerror error) { VolleyLog.d(TAG, "Error: " + error.getmessage()); progressdialog.hide(); ); // Adding JsonObject request to request queue AppSingleton.getInstance(getApplicationContext()).addToRequestQueue(jsonObjectReq,REQUE ST_TAG); This method is similar to volleystringrequest() method. Here we are creating JsonObjectRequest instead and the response listener expects a JsonObject. Next, create the following method to make a Volley request for JSONArray. MainActivity. 7 / 12

8 public void volleyjsonarrayrequest(string url){ String REQUEST_TAG = "com.androidtutorialpoint.volleyjsonarrayrequest"; progressdialog.setmessage("loading..."); progressdialog.show(); JsonArrayRequest jsonarrayreq = new JsonArrayRequest(url, new Response.Listener<JSONArray>() { public void onresponse(jsonarray response) { Log.d(TAG, response.tostring()); LayoutInflater li = LayoutInflater.from(MainActivity.this); showdialogview = li.inflate(r.layout.show_dialog, null); outputtextview = (TextView)showDialogView.findViewById(R.id.text_view_dialog); AlertDialog.Builder alertdialogbuilder = new AlertDialog.Builder(MainActivity.this); alertdialogbuilder.setview(showdialogview); alertdialogbuilder.setpositivebutton("ok", new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int id) { ).setcancelable(false).create(); outputtextview.settext(response.tostring()); alertdialogbuilder.show(); progressdialog.hide();, new Response.ErrorListener() { public void onerrorresponse(volleyerror error) { VolleyLog.d(TAG, "Error: " + error.getmessage()); progressdialog.hide(); ); // Adding JsonObject request to request queue AppSingleton.getInstance(getApplicationContext()).addToRequestQueue(jsonArrayReq, REQUEST_TAG); Here we are creating a JsonArray request and the response listener expects a JSONArray Object. Next, we create the a function to make a Volley request for getting Images over network. MainActivity. public void volleyimageloader(string url){ 8 / 12

9 ImageLoader imageloader = AppSingleton.getInstance(getApplicationContext()).getImageLoader(); imageloader.get(url, new ImageLoader.ImageListener() { public void onerrorresponse(volleyerror error) { Log.e(TAG, "Image Load Error: " + error.getmessage()); public void onresponse(imageloader.imagecontainer response, boolean arg1) { if (response.getbitmap()!= null) { LayoutInflater li = LayoutInflater.from(MainActivity.this); showdialogview = li.inflate(r.layout.show_dialog, null); outputimageview = (ImageView)showDialogView.findViewById(R.id.image_view_dialog); AlertDialog.Builder alertdialogbuilder = new AlertDialog.Builder(MainActivity.this); alertdialogbuilder.setview(showdialogview); alertdialogbuilder.setpositivebutton("ok", new DialogInterface.OnClickListener() { public void onclick(dialoginterface dialog, int id) { ).setcancelable(false).create(); outputimageview.setimagebitmap(response.getbitmap()); alertdialogbuilder.show(); ); We get the ImageLoader instance from the AppSingleton and use its get() method to download the image. The get() method of ImageLoader has onresponse() method to handle the response. The return type of the method is an ImageContainer object, for demo purpose we are simply showing the images in AlertDialog. Volley has additional method to handle the cache. We will describe these methods briefly. public void volleycacherequest(string url){ Cache cache = AppSingleton.getInstance(getApplicationContext()).getRequestQueue().getCache(); Cache.Entry reqentry = cache.get(url); if(reqentry!= null){ 9 / 12

10 try { String data = new String(reqEntry.data, "UTF-8"); //Handle the Data here. catch (UnsupportedEncodingException e) { e.printstacktrace(); else{ //Request Not present in cache, launch a network request instead. public void volleyinvalidatecache(string url){ AppSingleton.getInstance(getApplicationContext()).getRequestQueue().getCache().invalidate(url, true); public void volleydeletecache(string url){ AppSingleton.getInstance(getApplicationContext()).getRequestQueue().getCache().remove(url); public void volleyclearcache(){ AppSingleton.getInstance(getApplicationContext()).getRequestQueue().getCache().clear(); The volleycacherequest() checks for the request entry in the cache, if the request is already present then you can handle the data accordingly and in case the data is not present, then launch a network request to get data from network. ThevolleyInvalidateCache() is used to invalidate the existing cache for particular entry and volleydeletecache() is used to delete cache for particular url. ThevolleyClearCache() will be used to clear the entire cache. Please find the complete Code for MainActivity. here => MainActivity. Moreover the layout consist of 4 buttons for String, JsonObject, JsonArray and Image Response. Open activity_main. and put the code from the following file => activity_main. The DialogAlert which is shown in the Demo app consist of TextView and ImageView to show the response. Create a new Layout file show_dialog. and put the following code. show_dialog. <? version="1.0" encoding="utf-8"?> 10 / 12

11 <LinearLayout ns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="5dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:textalignment="center" android:gravity="center" /> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout> (adsbygoogle = window.adsbygoogle ).push({); What's Next? With the knowledge of how to use volley in Android Applications, you can experiment with different API's available on the internet, parse them and create beautiful android applications. We will soon be covering one such post on how to use TMDB's (The Movie DataBase) API using Volley and display the movies in a grid view. Till then stay tuned for more tutorials.. and Don't forget to subscribe our blog for latest android tutorials. Also do Like our Facebook Page or Add us on Twitter. Click on Download Now button to download the full code. 11 / 12

12 Powered by TCPDF ( Android Volley Tutorial PDF generated by Kalin's PDF Creation Station 12 / 12

Android JSON Parsing Tutorial

Android JSON Parsing Tutorial Android JSON Parsing Tutorial by Kapil - Thursday, May 19, 2016 http://www.androidtutorialpoint.com/networking/json-parsing-tutorial-android/ YouTube Video JSON(JavaScript Object Notation), is a language

More information

Android Navigation Drawer for Sliding Menu / Sidebar

Android Navigation Drawer for Sliding Menu / Sidebar Android Navigation Drawer for Sliding Menu / Sidebar by Kapil - Tuesday, December 15, 2015 http://www.androidtutorialpoint.com/material-design/android-navigation-drawer-for-sliding-menusidebar/ YouTube

More information

Android CardView Tutorial

Android CardView Tutorial Android CardView Tutorial by Kapil - Wednesday, April 13, 2016 http://www.androidtutorialpoint.com/material-design/android-cardview-tutorial/ YouTube Video We have already discussed about RecyclerView

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

Effective Use of. Scott Weber

Effective Use of. Scott Weber Effective Use of Volley Scott Weber What is(n t) Volley? Volley is a library intended to take care of many of the commonly used, but more advanced networking issues for you. Extensible Battle-tested Good

More information

Mobile Programming Lecture 15. Web APIs and Mashups

Mobile Programming Lecture 15. Web APIs and Mashups Mobile Programming Lecture 15 Web APIs and Mashups Agenda Web APIs Creating your own Web API Mashups programmableweb.com Gamification Web APIs - What are they? Data, data, data, there's data somewhere

More information

Upon completion of the second part of the lab the students will have:

Upon completion of the second part of the lab the students will have: ETSN05, Fall 2017, Version 2.0 Software Development of Large Systems Lab 2 1. INTRODUCTION The goal of lab 2 is to introduce students to the basics of Android development and help them to create a starting

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

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

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

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

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

Creating a Custom ListView

Creating a Custom ListView Creating a Custom ListView References https://developer.android.com/guide/topics/ui/declaring-layout.html#adapterviews Overview The ListView in the previous tutorial creates a TextView object for each

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

Hello World. Lesson 1. Create your first Android. Android Developer Fundamentals. Android Developer Fundamentals

Hello World. Lesson 1. Create your first Android. Android Developer Fundamentals. Android Developer Fundamentals Hello World Lesson 1 1 1.1 Create Your First Android App 2 Contents Android Studio Creating "Hello World" app in Android Studio Basic app development workflow with Android Studio Running apps on virtual

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

LAMPIRAN. byte bcdtodec(byte val) { return( (val/16*10) + (val%16) ); } void setup() {

LAMPIRAN. byte bcdtodec(byte val) { return( (val/16*10) + (val%16) ); } void setup() { 60 LAMPIRAN 1. Source code Arduino. #include "Wire.h" #include #include #define DS3231_I2C_ADDRESS 0x68 SoftwareSerial sim800l(11, 10); int dline[28]; byte *cacah=0; String

More information

CMSC436: Fall 2013 Week 4 Lab

CMSC436: Fall 2013 Week 4 Lab CMSC436: Fall 2013 Week 4 Lab Objectives: Familiarize yourself with Android Permission and with the Fragment class. Create simple applications using different Permissions and Fragments. Once you ve completed

More information

Android Programming in Bluetooth Cochlea Group

Android Programming in Bluetooth Cochlea Group Android Programming in Bluetooth Cochlea Group Zijian Zhao Abstract: My project is mainly android programming work in the Bluetooth Cochlea Group. In this report I will first introduce the background of

More information

REMOTE ACCESS TO ANDROID DEVICES. A Project. Presented to the faculty of the Department of Computer Science. California State University, Sacramento

REMOTE ACCESS TO ANDROID DEVICES. A Project. Presented to the faculty of the Department of Computer Science. California State University, Sacramento REMOTE ACCESS TO ANDROID DEVICES A Project Presented to the faculty of the Department of Computer Science California State University, Sacramento Submitted in partial satisfaction of the requirements for

More information

Adaptation of materials: dr Tomasz Xięski. Based on presentations made available by Victor Matos, Cleveland State University.

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

More information

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

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

More information

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

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

More information

This document is downloaded from DR-NTU, Nanyang Technological University Library, Singapore.

This document is downloaded from DR-NTU, Nanyang Technological University Library, Singapore. This document is downloaded from DR-NTU, Nanyang Technological University Library, Singapore. Title Web access to cloud system Author(s) Tao, Qingyi Citation Tao, Q. (2014). Web access to cloud system.

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

OPTIMIZING ANDROID UI PRO TIPS FOR CREATING SMOOTH AND RESPONSIVE APPS

OPTIMIZING ANDROID UI PRO TIPS FOR CREATING SMOOTH AND RESPONSIVE APPS OPTIMIZING ANDROID UI PRO TIPS FOR CREATING SMOOTH AND RESPONSIVE APPS @CYRILMOTTIER GET TO KNOW JAVA DON T USE BOXED TYPES UNNECESSARILY HashMap hashmap = new HashMap();

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

A Crash Course to Android Mobile Platform

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

More information

Android Programming (5 Days)

Android Programming (5 Days) www.peaklearningllc.com Android Programming (5 Days) Course Description Android is an open source platform for mobile computing. Applications are developed using familiar Java and Eclipse tools. This Android

More information

Lecture 14. Android Application Development

Lecture 14. Android Application Development Lecture 14 Android Application Development Notification Instructor Muhammad Owais muhammad.owais@riphah.edu.pk Cell: 03215500223 Notifications Used to notify user for events Three general forms of Notifications

More information

Android Essentials with Java

Android Essentials with Java Android Essentials with Java Before You Program o Exercise in algorithm generation Getting Started o Using IntelliJ CE Using Variables and Values o Store data in typed variables Static Methods o Write

More information

When programming in groups of people, it s essential to version the code. One of the most popular versioning tools is git. Some benefits of git are:

When programming in groups of people, it s essential to version the code. One of the most popular versioning tools is git. Some benefits of git are: ETSN05, Fall 2017, Version 1.0 Software Development of Large Systems Lab 2 preparations Read through this document carefully. In order to pass lab 2, you will need to understand the topics presented in

More information

Android UI Development

Android UI Development Android UI Development Android UI Studio Widget Layout Android UI 1 Building Applications A typical application will include: Activities - MainActivity as your entry point - Possibly other activities (corresponding

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

Syllabus- Java + Android. Java Fundamentals

Syllabus- Java + Android. Java Fundamentals Introducing the Java Technology Syllabus- Java + Android Java Fundamentals Key features of the technology and the advantages of using Java Using an Integrated Development Environment (IDE) Introducing

More information

Cheetah Orion Ad Platform SDK Guide (for Android) V1.0

Cheetah Orion Ad Platform SDK Guide (for Android) V1.0 Cheetah Orion Ad Platform SDK Guide (for Android) V1.0 Cheetah Mobile Date 2015-11-12 Version 1.0 1 Introduction... 3 2 Integration Workflow... 3 2.1 Integration Workflow... 3 2.2 Load Cheetah Orion Ad

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

Android App Development. Mr. Michaud ICE Programs Georgia Institute of Technology

Android App Development. Mr. Michaud ICE Programs Georgia Institute of Technology Android App Development Mr. Michaud ICE Programs Georgia Institute of Technology Android Operating System Created by Android, Inc. Bought by Google in 2005. First Android Device released in 2008 Based

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

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

AdFalcon Android Native Ad SDK Developer's Guide. AdFalcon Mobile Ad Network Product of Noqoush Mobile Media Group AdFalcon Android Native Ad SDK 3.0.0 Developer's Guide AdFalcon Mobile Ad Network Product of Noqoush Mobile Media Group Table of Contents 1 Introduction... 3 Native Ads Overview... 3 OS version support...

More information

BSCS 514- Computer Graphics. Course Supervisor : Dr. Humera Tariq Hands on Lab Sessions: Mr. Faraz Naqvi

BSCS 514- Computer Graphics. Course Supervisor : Dr. Humera Tariq Hands on Lab Sessions: Mr. Faraz Naqvi BSCS 514- Computer Graphics Course Supervisor : Dr. Humera Tariq Hands on Lab Sessions: Mr. Faraz Naqvi Lab 01 Running your First App on Android to Handle Text and Images Content Android studio setup Creating

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

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

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

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

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

Figure 2.10 demonstrates the creation of a new project named Chapter2 using the wizard.

Figure 2.10 demonstrates the creation of a new project named Chapter2 using the wizard. 44 CHAPTER 2 Android s development environment Figure 2.10 demonstrates the creation of a new project named Chapter2 using the wizard. TIP You ll want the package name of your applications to be unique

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

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

Topics of Discussion

Topics of Discussion Reference CPET 565 Mobile Computing Systems CPET/ITC 499 Mobile Computing Fragments, ActionBar and Menus Part 3 of 5 Android Programming Concepts, by Trish Cornez and Richard Cornez, pubslihed by Jones

More information

CS371m - Mobile Computing. Persistence - Web Based Storage CHECK OUT g/sync-adapters/index.

CS371m - Mobile Computing. Persistence - Web Based Storage CHECK OUT   g/sync-adapters/index. CS371m - Mobile Computing Persistence - Web Based Storage CHECK OUT https://developer.android.com/trainin g/sync-adapters/index.html The Cloud. 2 Backend No clear definition of backend front end - user

More information

ANDROID SYLLABUS. Advanced Android

ANDROID SYLLABUS. Advanced Android Advanced Android 1) Introduction To Mobile Apps I. Why we Need Mobile Apps II. Different Kinds of Mobile Apps III. Briefly about Android 2) Introduction Android I. History Behind Android Development II.

More information

Android Development Crash Course

Android Development Crash Course Android Development Crash Course Campus Sundsvall, 2015 Stefan Forsström Department of Information and Communication Systems Mid Sweden University, Sundsvall, Sweden OVERVIEW The Android Platform Start

More information

Android App Development

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

More information

IPN-ESCOM Application Development for Mobile Devices. Extraordinary. A Web service, invoking the SOAP protocol, in an Android application.

IPN-ESCOM Application Development for Mobile Devices. Extraordinary. A Web service, invoking the SOAP protocol, in an Android application. Learning Unit Exam Project IPN-ESCOM Application Development for Mobile Devices. Extraordinary. A Web service, invoking the SOAP protocol, in an Android application. The delivery of this project is essential

More information

Chris Guzman. Developer chris-guzman.com

Chris Guzman. Developer  chris-guzman.com WebSocket to me! Chris Guzman Developer Advocate @ Nexmo @speaktochris chris-guzman.com Before... Before... (A few years ago) HTTP Polling TCP/IP Sockets WebSockets /webˈsäkəts/ bi-directional realtime

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 Development Lecture 9: Android & RESTFUL Services

Mobile Development Lecture 9: Android & RESTFUL Services Mobile Development Lecture 9: Android & RESTFUL Services Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Elgayyar.weebly.com What is a RESTFUL Web Service REST stands for REpresentational State Transfer. In

More information

Android for Ubiquitous Computing Researchers. Andrew Rice University of Cambridge 17-Sep-2011

Android for Ubiquitous Computing Researchers. Andrew Rice University of Cambridge 17-Sep-2011 Android for Ubiquitous Computing Researchers Andrew Rice University of Cambridge 17-Sep-2011 Getting started Website for the tutorial: http://www.cl.cam.ac.uk/~acr31/ubicomp/ Contains links to downloads

More information

Java Training Center - Android Application Development

Java Training Center - Android Application Development Java Training Center - Android Application Development Android Syllabus and Course Content (3 months, 2 hour Daily) Introduction to Android Android and it's feature Android releases and Versions Introduction

More information

ORACLE UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

ORACLE UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP) Android Syllabus Pre-requisite: C, C++, Java Programming SQL & PL SQL Chapter 1: Introduction to Android Introduction to android operating system History of android operating system Features of Android

More information

Configuring and Using Osmosis Platform

Configuring and Using Osmosis Platform Configuring and Using Osmosis Platform Index 1. Registration 2. Login 3. Device Creation 4. Node Creation 5. Sending Data from REST Client 6. Checking data received 7. Sending Data from Device 8. Define

More information

Import the code in the top level sdl_android folder as a module in Android Studio:

Import the code in the top level sdl_android folder as a module in Android Studio: Guides Android Documentation Document current as of 12/22/2017 10:31 AM. Installation SOURCE Download the latest release from GitHub Extract the source code from the archive Import the code in the top

More information

MC Android Programming

MC Android Programming MC1921 - Android Programming Duration: 5 days Course Price: $3,395 Course Description Android is an open source platform for mobile computing. Applications are developed using familiar Java and Eclipse

More information

Android - JSON Parser Tutorial

Android - JSON Parser Tutorial Android - JSON Parser Tutorial JSON stands for JavaScript Object Notation.It is an independent data exchange format and is the best alternative for XML. This chapter explains how to parse the JSON file

More information

Debugging Arts of the Ninja Masters. Justin Mattson Developer Advocate Android Google 28/5/2009

Debugging Arts of the Ninja Masters. Justin Mattson Developer Advocate Android Google 28/5/2009 Debugging Arts of the Ninja Masters Justin Mattson Developer Advocate Android Team @ Google 28/5/2009 Agenda Tool tour logcat traceview hierarchyviewer Real world usage Pop quiz! Q&A (pop quiz for me)

More information

Liferay Digital Experience Platform. New Features Summary

Liferay Digital Experience Platform. New Features Summary Liferay Digital Experience Platform New Features Summary Liferay has redesigned its platform with new functionality in Liferay Digital Experience Platform (DXP). The following is a summary of the key new

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

Required Core Java for Android application development

Required Core Java for Android application development Required Core Java for Android application development Introduction to Java Datatypes primitive data types non-primitive data types Variable declaration Operators Control flow statements Arrays and Enhanced

More information

PENGEMBANGAN APLIKASI PERANGKAT BERGERAK (MOBILE)

PENGEMBANGAN APLIKASI PERANGKAT BERGERAK (MOBILE) PENGEMBANGAN APLIKASI PERANGKAT BERGERAK (MOBILE) Network Connection Web Service K Candra Brata andra.course@gmail.com Mobille App Lab 2015-2016 Network Connection http://developer.android.com/training/basics/network-ops/connecting.html

More information

INTRODUCTION COS MOBILE DEVELOPMENT WHAT IS ANDROID CORE OS. 6-Android Basics.key - February 21, Linux-based.

INTRODUCTION COS MOBILE DEVELOPMENT WHAT IS ANDROID CORE OS. 6-Android Basics.key - February 21, Linux-based. 1 COS 470 - MOBILE DEVELOPMENT INTRODUCTION 2 WHAT IS ANDROID Linux-based Java/Kotlin Android Runtime (ART) System Apps SMS, Calendar, etc. Platform Architecture 3 CORE OS Linux (64 bit) Each app is a

More information

07. Menu and Dialog Box. DKU-MUST Mobile ICT Education Center

07. Menu and Dialog Box. DKU-MUST Mobile ICT Education Center 07. Menu and Dialog Box DKU-MUST Mobile ICT Education Center Goal Learn how to create and use the Menu. Learn how to use Toast. Learn how to use the dialog box. Page 2 1. Menu Menu Overview Menu provides

More information

Homework 9: Stock Search Android App with Facebook Post A Mobile Phone Exercise

Homework 9: Stock Search Android App with Facebook Post A Mobile Phone Exercise Homework 9: Stock Search Android App with Facebook Post A Mobile Phone Exercise 1. Objectives Ø Become familiar with Android Studio, Android App development and Facebook SDK for Android. Ø Build a good-looking

More information

Created By: Keith Acosta Instructor: Wei Zhong Courses: Senior Seminar Cryptography

Created By: Keith Acosta Instructor: Wei Zhong Courses: Senior Seminar Cryptography Created By: Keith Acosta Instructor: Wei Zhong Courses: Senior Seminar Cryptography 1. Thread Summery 2. Thread creation 3. App Diagram and information flow 4. General flow of Diffie-Hellman 5. Steps of

More information

CS 370 Android Basics D R. M I C H A E L J. R E A L E F A L L

CS 370 Android Basics D R. M I C H A E L J. R E A L E F A L L CS 370 Android Basics D R. M I C H A E L J. R E A L E F A L L 2 0 1 5 Activity Basics Manifest File AndroidManifest.xml Central configuration of Android application Defines: Name of application Icon for

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

webrtcpeer-android Documentation

webrtcpeer-android Documentation webrtcpeer-android Documentation Release 1.0.4 Jukka Ahola Jul 17, 2017 Contents 1 Overview 3 1.1 License.................................................. 3 2 Installation Guide 5 2.1 User installation

More information

Android Online Training

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

More information

LISTING PROGRAM APLIKASI ANDROID

LISTING PROGRAM APLIKASI ANDROID 1 LISTING PROGRAM APLIKASI ANDROID AboutFragment.java package tia.restodj; import android.app.fragment; import android.os.bundle; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup;

More information

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

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

More information

Communicating with a Server

Communicating with a Server Communicating with a Server Client and Server Most mobile applications are no longer stand-alone Many of them now have a Cloud backend The Cloud Client-server communication Server Backend Database HTTP

More information

Mobile User Interfaces

Mobile User Interfaces Mobile User Interfaces CS 2046 Mobile Application Development Fall 2010 Announcements Next class = Lab session: Upson B7 Office Hours (starting 10/25): Me: MW 1:15-2:15 PM, Upson 360 Jae (TA): F 11:00

More information

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

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

More information

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

AdFalcon Android Native Ad SDK Developer's Guide. AdFalcon Mobile Ad Network Product of Noqoush Mobile Media Group AdFalcon Android Native Ad SDK 3.4.0 Developer's Guide AdFalcon Mobile Ad Network Product of Noqoush Mobile Media Group Table of Contents 1 Introduction... 3 Native Ads Overview... 3 OS version support...

More information

COMP61242: Task /04/18

COMP61242: Task /04/18 COMP61242: Task 2 1 16/04/18 1. Introduction University of Manchester School of Computer Science COMP61242: Mobile Communications Semester 2: 2017-18 Laboratory Task 2 Messaging with Android Smartphones

More information

Terms: MediaPlayer, VideoView, MediaController,

Terms: MediaPlayer, VideoView, MediaController, Terms: MediaPlayer, VideoView, MediaController, Sisoft Technologies Pvt Ltd SRC E7, Shipra Riviera Bazar, Gyan Khand-3, Indirapuram, Ghaziabad Website: www.sisoft.in Email:info@sisoft.in Phone: +91-9999-283-283

More information

Firebase Essentials. Android Edition

Firebase Essentials. Android Edition Firebase Essentials Android Edition Firebase Essentials Android Edition First Edition 2017 Neil Smyth / Payload Media, Inc. All Rights Reserved. This book is provided for personal use only. Unauthorized

More information

LTBP INDUSTRIAL TRAINING INSTITUTE

LTBP INDUSTRIAL TRAINING INSTITUTE Java SE Introduction to Java JDK JRE Discussion of Java features and OOPS Concepts Installation of Netbeans IDE Datatypes primitive data types non-primitive data types Variable declaration Operators Control

More information

Let s take a display of HTC Desire smartphone as an example. Screen size = 3.7 inches, resolution = 800x480 pixels.

Let s take a display of HTC Desire smartphone as an example. Screen size = 3.7 inches, resolution = 800x480 pixels. Screens To begin with, here is some theory about screens. A screen has such physical properties as size and resolution. Screen size - a distance between two opposite corners of the screens, usually measured

More information

Chapter 5 Flashing Neon FrameLayout

Chapter 5 Flashing Neon FrameLayout 5.1 Case Overview This case mainly introduced the usages of FrameLayout; we can use FrameLayout to realize the effect, the superposition of multiple widgets. This example is combined with Timer and Handler

More information

1 Getting Familiar with Datagrams (2 Points)

1 Getting Familiar with Datagrams (2 Points) Assignment 3 Start: 24 October 26 End: 3 November 26 Objectives In this assignment, you will get some experience with UDP communication. To highlight that UDP is connection-less and thus, the delivery

More information

Assignment 1: Port & Starboard

Assignment 1: Port & Starboard Assignment 1: Port & Starboard Revisions: Jan 7: Added note on how to clean project for submission. Submit a ZIP file of all the deliverables to the CourSys: https://courses.cs.sfu.ca/ All submissions

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

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

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

More information

Embedded Systems Programming - PA8001

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

More information

ANDROID DEVELOPMENT. Course Details

ANDROID DEVELOPMENT. Course Details ANDROID DEVELOPMENT Course Details centers@acadgild.com www.acadgild.com 90360 10796 01 Brief About the Course Android s share of the global smartphone is 81%. The Google Certified Android development

More information

Android Specifics. Jonathan Diehl (Informatik 10) Hendrik Thüs (Informatik 9)

Android Specifics. Jonathan Diehl (Informatik 10) Hendrik Thüs (Informatik 9) Android Specifics Jonathan Diehl (Informatik 10) Hendrik Thüs (Informatik 9) Android Specifics ArrayAdapter Preferences Widgets Jonathan Diehl, Hendrik Thüs 2 ArrayAdapter Jonathan Diehl, Hendrik Thüs

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

Brain Corporate Bulk SMS

Brain Corporate Bulk SMS Brain Corporate Bulk SMS W e S i m p l y D e l i v e r! API Documentation V.2.0 F e b r u a r y 2 0 1 9 2 Table of Contents Sending a Quick Message... 3 API Description... 3 Request Parameter... 4 API

More information

MOBILE CLIENT FOR ONLINE DICTIONARY. Constantin Lucian ALDEA 1. Abstract

MOBILE CLIENT FOR ONLINE DICTIONARY. Constantin Lucian ALDEA 1. Abstract Bulletin of the Transilvania University of Braşov Vol 4(53), No. 2-2011 Series III: Mathematics, Informatics, Physics, 123-128 MOBILE CLIENT FOR ONLINE DICTIONARY Constantin Lucian ALDEA 1 Abstract The

More information