Arduino - Android Workshop Presentation

33
Android Workshop Yantra 3.0 Presented By:- Hem Shrestha [email protected] Yubaraj Poudel [email protected]

description

Slides for basic Hello World and develop an app for controlling arduino and robot. This app uses the API call and parse the JSON response from arduino to show the status of robot.

Transcript of Arduino - Android Workshop Presentation

Page 1: Arduino - Android Workshop Presentation

Android WorkshopYantra 3.0

Presented By:-

Hem Shrestha [email protected]

Yubaraj [email protected]

Page 2: Arduino - Android Workshop Presentation

Table of Content

● Introduction to Android Platform● Development Environment● Hello World!● Application Fundamentals● User Interface● Working with Web Services (JSON)● Building Interactive Android App

Page 3: Arduino - Android Workshop Presentation

Perquisites

Basic Java (If else, loops, Data Types, Data structures)

Object Oriented Programming (Class, Object, Inheritance)

Page 4: Arduino - Android Workshop Presentation

Android Platform Basics

Introduction and historyAndroid VersionsAndroid ArchitectureAndroid Virtual Machine (Dalvik VM, Ark VM is latest in 4.4)

Page 5: Arduino - Android Workshop Presentation

Introduction

A Linux based Operating System designed primarily for touch screen mobile devicesInitially developed by Android Inc, lead by Andy Rubin and later purchased by Google in 2005Android is Open Source and Google releases code under Apache2 license.

Page 6: Arduino - Android Workshop Presentation

Android Versions

Page 7: Arduino - Android Workshop Presentation

Android Versions Distribution

Page 8: Arduino - Android Workshop Presentation

Android Architecture

Page 9: Arduino - Android Workshop Presentation

Dalvik Virtual Machine

Page 10: Arduino - Android Workshop Presentation

Android Development Environment

JDK Eclipse IDEADT PluginAndroid SDKAVDDebugging with Android LogCatEclipse Perspective – Java/DDMS

Page 11: Arduino - Android Workshop Presentation

Hello World !

Page 12: Arduino - Android Workshop Presentation

Application Fundamentals

● Apps Development Flow● Build Cycle● Directory Structure● Android Manifest File● Android Application

Page 13: Arduino - Android Workshop Presentation

Apps Development Flow

Page 14: Arduino - Android Workshop Presentation

Apps Build Cycle

Page 15: Arduino - Android Workshop Presentation

Directory Structure

src/bin/ - Output directory of the build. final .apkgen/ - R.java etclibs/assets/res/ - Contains application resources, such as

drawable files, layout files, and string values.

drawable/ layout/ values/ menu/ xml/AndroidManifest.xml

Page 16: Arduino - Android Workshop Presentation

App Manifest File (AndroidManifest.xml)

"Starting point" of appIt describes:• Package name• Minimum level Android API • Application name + icon• Required Permissions• The components of the application (activities, services, broadcast receivers, and content providers)Describes first activity to launch• Other stuff

Page 17: Arduino - Android Workshop Presentation

Android Application

Components : 1. Activity2. Service3. Broadcast Receiver4. Content Provider

Page 18: Arduino - Android Workshop Presentation

Activity

Page 19: Arduino - Android Workshop Presentation
Page 20: Arduino - Android Workshop Presentation

Android UI - Design

Two ways to construct :1. xml2. code

Page 21: Arduino - Android Workshop Presentation

Using xml layout

Page 22: Arduino - Android Workshop Presentation

Using Java Code

Page 23: Arduino - Android Workshop Presentation

Android UI – Components (Elements)

Page 24: Arduino - Android Workshop Presentation

Click Event HandlingOnClickListener mClickListener = new OnClickListener() {@Override public void onClick(View v) { switch(v.getId()){ case R.id.btn1: // do action1 break; case R.id.btn2: // do action2 break; } }};

findViewById(R.id.btn1).setOnClickListener(mClickListener);findViewById(R.id.btn2).setOnClickListener(mClickListener);

Page 25: Arduino - Android Workshop Presentation

Working with Web Services

Concept of APIData exchange format (JSON)Android Stuffs

Page 26: Arduino - Android Workshop Presentation

API Concept

• Application Program Interface• An interface by software components to communicate

with each other• A set of routines, protocols, and tools for building

software applications.• A good API makes it easier to develop a program by

providing all the building blocks.

Page 27: Arduino - Android Workshop Presentation

JSON Data

• JSON (JavaScript Object Notation) is a lightweight text-based open standard designed for human-readable data interchange...

• Easy for machines to parse and generate• Familiar to programmers of the C-family of languages• JSON Object and JSON Array• Collection of name/value pairs

• Alternative: XML

Page 28: Arduino - Android Workshop Presentation

JSON Vs. XML{

"res": "success",

"data": {

"id": "1",

"username": ”hereshem",

“fname": "Hem",

“lname": "Shrestha",

”c_home": "014488535",

”c_mobile": "9843096958",

”c_office": "014782582",

"created": "2012-12-21 05:52:03 pm"

}

}

<?xml version="1.0" encoding="UTF-8" ?

<res>success</res>

<data>

<id>1</id>

<username>hereshem</username>

<fname>Hem</fname>

<lname>Shrestha</lname>

<c_home>014488535</c_home>

<c_mobile>9843096958</c_mobile>

<c_office>014782582</c_office>

<created>2012-12-21 05:52:03 pm</created>

</data>

Page 29: Arduino - Android Workshop Presentation

Android Stuffs

Adding permissionWriting server request fileCheck for internet connectionSync and Async TaskBackground and foreground process

Page 30: Arduino - Android Workshop Presentation

Building Apps

Initially 5 buttonsButton Action

CodePin Status

Response

Forward 1 1010 {“pin1”:1, “pin2”:0, “pin3”:1, “pin4”:0}

Reverse 2 0101 {“pin1”:0, “pin2”:1, “pin3”:0, “pin4”:1}

Left 3 0010 {“pin1”:0, “pin2”:0, “pin3”:1, “pin4”:0}

Right 4 1000 {“pin1”:1, “pin2”:0, “pin3”:0, “pin4”:0}

Stop 0 0000 {“pin1”:0, “pin2”:0, “pin3”:0, “pin4”:0}

Page 31: Arduino - Android Workshop Presentation

Keep on touch

public void showMyContact(){String username = “hereshem”; // here‘s Hem

Log.i(“GitHub”, “github.com/” + username);Log.i(“Facebook”, “facebook.com/” + username);Log.i(“Twitter”, “twitter.com/” + username);Log.i(“Blog”, username + “.blogspot.com”);Log.i(“Email”, username + “@gmail.com”);

}

Page 32: Arduino - Android Workshop Presentation

References

http://developer.android.com/http://www.androidhive.info/http://www.tutorialspoint.com/android/

More Source code Repositories in http://github.com/

Page 33: Arduino - Android Workshop Presentation

Thanks !!

Best of luck for the upcoming events cheers……….