SlideShare a Scribd company logo
1 of 37
Build your first Android
Things application
Keval Patel
Android Developer @
1
Agenda
- Introduction to Raspberry Pi.
- Specifications & Schematics of Raspberry Pi.
- How to connect Raspberry Pi to your computer?- Create a new project for Android Things.
- What’s different than normal app development?
- Accessing hardware components in Android app.
- Introduction: Smart Switch App
2
What is Raspberry Pi?
3
What is Raspberry Pi?
A computer.
A small single-board computer that plugs into your TV and a keyboard,
which can be used for many of the things that your average desktop does -
spreadsheets, word-processing, games and it also plays high-definition video.
4
What is Raspberry Pi?
Small - Size of the credit card.
Affordable - Just $35!!!
Single Board SoC.
Consumes less than 5W power.
Developed by Raspberry Pi foundation.
Board for the hobbyist.
5
6
Which OS you can run?
- Raspbian OS
- Fedora OS
- Debian OS
- Windows 10
- And now Android...
7
Raspberry Pi 3 Model B
- Released in Feb 2016.
- Costs $35.
- Supports Android Things.
8
Raspberry Pi 3 Model B Specification
- Quad-core 64-bit ARM Cortex-A53, 1.2GHz
- Broadcom VideoCore IV
- 1GB LPDDR2 (900 MHz)
- 10/100 Ethernet
- 2.4GHz 802.11n wireless
- Bluetooth 4.1 and Bluetooth Low Energy
- 40-pin GPIO header
- Ports: HDMI, 3.5mm analog audio-video jack, 4× USB 2.0, Ethernet, Camera
Serial Interface (CSI), Display Serial Interface (DSI) 9
10
GPIO
- GPIO = General Purpose Input Output.
- You can configure that pin to act as
input or output pin at runtime.
- No predefined purpose, and go unused
by default.
- Raspberry Pi has 40 GPIO pins.
- The pins allow us to interact with
different components and receive and
send information to them. 11
GPIO Pin Diagram
12
How to connect with Raspberry Pi?
13
How to connect with Raspberry Pi?
1. Connect USB cable for power.
2. Connect an Ethernet cable your local network.
3. Connect an HDMI cable to an display. (Optional)
4. Find the IP of Raspberry Pi using IP scanner tool. (e.g.
Angry IP scanner.) The host name will be “Android.local”.
5. Connect to this IP address using the adb.
$ adb connect <ip-address>
connected to <ip-address>:5555
14
How to connect with Wi-Fi?
1. Send an intent to the Wi-Fi service with the SSID and passcode of your Wi-Fi
network. You need to do it only when connecting to new Wi-Fi network.
$ adb shell am startservice 
-n com.google.wifisetup/.WifiSetupService 
-a WifiSetupService.Connect 
-e ssid <Network_SSID> 
-e passphrase <Network_Passcode>
$ adb connect <ip-address>
connected to <ip-address>:5555
2. Find the IP of Raspberry Pi using IP scanner tool.
3. Connect to this IP address using the adb.
15
How to check if the internet access available?
rpi3:/ $ ping google.com
PING google.com (216.58.199.142) 56(84) bytes of data.
16
Creating
Android Things
Project In
Android Studio
17
Build Android Things Project
- Create new android project.
18
Build Android Things Project
- Set the minSdkVersion for the project to 24.
19
Build Android Things Project
- Add “com.google.android.things” library to “AndroidManifest.xml”.
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<uses-library android:name="com.google.android.things"/>
<activity android:name=".MainActivity">
....
....
</activity>
</application>
20
Add Home activity support
- "Home activity" in its manifest as the main entry point for the system to
automatically launch on boot.
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<!-- Launch activity automatically on boot -->
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.IOT_LAUNCHER"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
21
Android Things
Vs.
Android Phone
22
Android Things App Vs. Phone App
- In Android Things UI is optional.
- Android Things launcher does not
have an app drawer. You need to
launch the application using ADB.
- There is no system-wide status
bar and window shade in Android
Things. So, notifications are not
supported.
- No system-wide navigation bar.
So, back button, home button, and
app switcher are supported. 23
Android Things App Vs. Phone App
- Android Things supports a subset of the Google APIs for Android.
- Each release of Android Things bundles the latest stable version of Google
Play Services, and requires at least version 10.0.0 of the client SDK.
24
- No runtime permission. Just declare permission in AndroidManifest. (Just like
old days!!!)
- No support for the Google Play.
Android Things App Vs. Phone App
- Doesn't include the all of the standard system apps and content providers.
Like SMS application and SMS provider. Avoid using them.
25
How to access GPIO?
26
Setting GPIO
- Open GPIO pin using PeripheralManagerService.
PeripheralManagerService service = new PeripheralManagerService();
mRedPin = service.openGpio(BoardDefaults.getGPIOForRedLED());
- Define pin as input or output.
//Define as output
mRedPin.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW);
//Or
mRedPin.setDirection(Gpio.DIRECTION_OUT_INITIALLY_HIGH);
//Set as input
mRedPin.setDirection(Gpio.DIRECTION_IN);
27
Peripheral Driver Library
- There are many sensors we may need in our project.
- All sensors have different specs and different types of
input/output.
- You don’t want to write code to integrate those sensors
in your application.
- Peripheral Driver Library contains pre-written user
drivers for popular peripherals available for supported
Android Things hardware.
- It is open sourced.
(https://github.com/androidthings/contrib-drivers) 28
Let’s build something REAL!!!
29
Smart Switch
30
Control the devices like fan, light bulb using your phone.
- Can control 1 fan, 1 light bulb and 1 LED.
- Uses firebase real-time database to sync the
status of the home device between raspberry pi
and companion app.
Components required
- Raspberry Pi
31
- 2 x 5V Relay
- 1 LED
- 1K resistor
- Breadboard
- Wires/Connectors
32
33
Firebase Real Time
Database
It’s demo time!!!
34
What’s next???
35
- Go ahead and download from GitHub (https://goo.gl/1CHzrB). Play with your
own devices.
- Try out different samples from Android Things samples
(https://goo.gl/aTRWTN) page.
- Make your own project.
References
36
- Android Things - Android Developers (https://goo.gl/PefyPY)
- Android Things - GitHub (https://goo.gl/AWA1Co)
- Android Things – Hardware Basics for the Software Engineer
(https://goo.gl/ini66V)
- SmartSwitch - Github (https://goo.gl/1CHzrB)
What you are going to build
now?
@kevalpatel2106
@multidots
37

More Related Content

What's hot

Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...Codemotion
 
Windows 10 IoT Core, a real sample
Windows 10 IoT Core, a real sampleWindows 10 IoT Core, a real sample
Windows 10 IoT Core, a real sampleMirco Vanini
 
Android Things, from mobile apps to physical world
Android Things, from mobile apps to physical worldAndroid Things, from mobile apps to physical world
Android Things, from mobile apps to physical worldStefano Sanna
 
Hack the Real World with ANDROID THINGS
Hack the Real World with ANDROID THINGSHack the Real World with ANDROID THINGS
Hack the Real World with ANDROID THINGSDevFest DC
 
Myths of Angular 2: What Angular Really Is
Myths of Angular 2: What Angular Really IsMyths of Angular 2: What Angular Really Is
Myths of Angular 2: What Angular Really IsDevFest DC
 
Windows 10 on Raspberry PI 2
Windows 10 on Raspberry PI 2Windows 10 on Raspberry PI 2
Windows 10 on Raspberry PI 2Mirco Vanini
 
Android Things Robocar with TensorFlow for object recognition
Android Things Robocar with TensorFlow for object recognitionAndroid Things Robocar with TensorFlow for object recognition
Android Things Robocar with TensorFlow for object recognitionDevFest DC
 
Hacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT CoreHacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT CoreNick Landry
 
Google I/O 2018 Extended, Baghdad - Flutter
Google I/O 2018 Extended, Baghdad  - FlutterGoogle I/O 2018 Extended, Baghdad  - Flutter
Google I/O 2018 Extended, Baghdad - FlutterAbdElmomenKadhim
 
Cross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React NativeCross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React NativeKorhan Bircan
 
Customize and control connected devices
Customize and control connected devicesCustomize and control connected devices
Customize and control connected devicesCodemotion
 
C language in our world 2017
C language in our world 2017C language in our world 2017
C language in our world 2017Juraj Michálek
 
Development of Mobile Applications
Development of Mobile ApplicationsDevelopment of Mobile Applications
Development of Mobile ApplicationsDávid Kaya
 
Introduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fastIntroduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fastBartosz Kosarzycki
 
Android Open Accessory APIs
Android Open Accessory APIsAndroid Open Accessory APIs
Android Open Accessory APIsPearl Chen
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowKarim Yaghmour
 
[Alexandria Devfest] the magic of flutter
[Alexandria Devfest] the magic of flutter[Alexandria Devfest] the magic of flutter
[Alexandria Devfest] the magic of flutterAhmed Abu Eldahab
 

What's hot (20)

Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
Android Things, from mobile apps to physical world by Giovanni Di Gialluca an...
 
Windows 10 IoT Core, a real sample
Windows 10 IoT Core, a real sampleWindows 10 IoT Core, a real sample
Windows 10 IoT Core, a real sample
 
Android Things, from mobile apps to physical world
Android Things, from mobile apps to physical worldAndroid Things, from mobile apps to physical world
Android Things, from mobile apps to physical world
 
Hack the Real World with ANDROID THINGS
Hack the Real World with ANDROID THINGSHack the Real World with ANDROID THINGS
Hack the Real World with ANDROID THINGS
 
Myths of Angular 2: What Angular Really Is
Myths of Angular 2: What Angular Really IsMyths of Angular 2: What Angular Really Is
Myths of Angular 2: What Angular Really Is
 
Windows 10 on Raspberry PI 2
Windows 10 on Raspberry PI 2Windows 10 on Raspberry PI 2
Windows 10 on Raspberry PI 2
 
Android Things Robocar with TensorFlow for object recognition
Android Things Robocar with TensorFlow for object recognitionAndroid Things Robocar with TensorFlow for object recognition
Android Things Robocar with TensorFlow for object recognition
 
Hacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT CoreHacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT Core
 
Project Ara
Project AraProject Ara
Project Ara
 
Google I/O 2018 Extended, Baghdad - Flutter
Google I/O 2018 Extended, Baghdad  - FlutterGoogle I/O 2018 Extended, Baghdad  - Flutter
Google I/O 2018 Extended, Baghdad - Flutter
 
Flutter 1
Flutter 1Flutter 1
Flutter 1
 
Flutter Intro
Flutter IntroFlutter Intro
Flutter Intro
 
Cross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React NativeCross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React Native
 
Customize and control connected devices
Customize and control connected devicesCustomize and control connected devices
Customize and control connected devices
 
C language in our world 2017
C language in our world 2017C language in our world 2017
C language in our world 2017
 
Development of Mobile Applications
Development of Mobile ApplicationsDevelopment of Mobile Applications
Development of Mobile Applications
 
Introduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fastIntroduction to Flutter - truly crossplatform, amazingly fast
Introduction to Flutter - truly crossplatform, amazingly fast
 
Android Open Accessory APIs
Android Open Accessory APIsAndroid Open Accessory APIs
Android Open Accessory APIs
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
[Alexandria Devfest] the magic of flutter
[Alexandria Devfest] the magic of flutter[Alexandria Devfest] the magic of flutter
[Alexandria Devfest] the magic of flutter
 

Similar to Build your first android things application

Building your own RC Car with Raspberry Pi
Building your own RC Car with Raspberry PiBuilding your own RC Car with Raspberry Pi
Building your own RC Car with Raspberry PiJeff Prestes
 
Internet of things aktu lab file
Internet of things  aktu lab fileInternet of things  aktu lab file
Internet of things aktu lab fileNitesh Dubey
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfWiseNaeem
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfWiseNaeem
 
Advanced view of projects raspberry pi list raspberry pi projects
Advanced view of projects raspberry pi list   raspberry pi projectsAdvanced view of projects raspberry pi list   raspberry pi projects
Advanced view of projects raspberry pi list raspberry pi projectsWiseNaeem
 
Advanced view of projects raspberry pi list raspberry pi projects
Advanced view of projects raspberry pi list   raspberry pi projectsAdvanced view of projects raspberry pi list   raspberry pi projects
Advanced view of projects raspberry pi list raspberry pi projectsWiseNaeem
 
Introduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlIntroduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlPradip Bhandari
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfWiseNaeem
 
5 IOT MODULE 5 RaspberryPi Programming using Python.pdf
5 IOT MODULE 5 RaspberryPi Programming using Python.pdf5 IOT MODULE 5 RaspberryPi Programming using Python.pdf
5 IOT MODULE 5 RaspberryPi Programming using Python.pdfJayanthi Kannan MK
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfWiseNaeem
 
Raspberry Pi Introductory Lecture
Raspberry Pi Introductory LectureRaspberry Pi Introductory Lecture
Raspberry Pi Introductory LectureSyed Umaid Ahmed
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfWiseNaeem
 
Android Things - The IoT platform from Google
Android Things - The IoT platform from GoogleAndroid Things - The IoT platform from Google
Android Things - The IoT platform from GoogleEmmanuel Obot
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfWiseNaeem
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfWiseNaeem
 
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi [Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi Tomomi Imura
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfWiseNaeem
 
Node red for Raspberry Pi
Node red for Raspberry PiNode red for Raspberry Pi
Node red for Raspberry PiAnshu Pandey
 
Raspberry pi pico projects raspberry pi projects
Raspberry pi pico projects raspberry pi projectsRaspberry pi pico projects raspberry pi projects
Raspberry pi pico projects raspberry pi projectsIsmailkhan77481
 
An introduction to workflow-based programming with Node-RED
An introduction to workflow-based programming with Node-REDAn introduction to workflow-based programming with Node-RED
An introduction to workflow-based programming with Node-REDBoris Adryan
 

Similar to Build your first android things application (20)

Building your own RC Car with Raspberry Pi
Building your own RC Car with Raspberry PiBuilding your own RC Car with Raspberry Pi
Building your own RC Car with Raspberry Pi
 
Internet of things aktu lab file
Internet of things  aktu lab fileInternet of things  aktu lab file
Internet of things aktu lab file
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
 
Advanced view of projects raspberry pi list raspberry pi projects
Advanced view of projects raspberry pi list   raspberry pi projectsAdvanced view of projects raspberry pi list   raspberry pi projects
Advanced view of projects raspberry pi list raspberry pi projects
 
Advanced view of projects raspberry pi list raspberry pi projects
Advanced view of projects raspberry pi list   raspberry pi projectsAdvanced view of projects raspberry pi list   raspberry pi projects
Advanced view of projects raspberry pi list raspberry pi projects
 
Introduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlIntroduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin Control
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
 
5 IOT MODULE 5 RaspberryPi Programming using Python.pdf
5 IOT MODULE 5 RaspberryPi Programming using Python.pdf5 IOT MODULE 5 RaspberryPi Programming using Python.pdf
5 IOT MODULE 5 RaspberryPi Programming using Python.pdf
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
 
Raspberry Pi Introductory Lecture
Raspberry Pi Introductory LectureRaspberry Pi Introductory Lecture
Raspberry Pi Introductory Lecture
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
 
Android Things - The IoT platform from Google
Android Things - The IoT platform from GoogleAndroid Things - The IoT platform from Google
Android Things - The IoT platform from Google
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
 
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi [Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
 
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdfAdvanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
Advanced View of Projects Raspberry Pi List - Raspberry PI Projects.pdf
 
Node red for Raspberry Pi
Node red for Raspberry PiNode red for Raspberry Pi
Node red for Raspberry Pi
 
Raspberry pi pico projects raspberry pi projects
Raspberry pi pico projects raspberry pi projectsRaspberry pi pico projects raspberry pi projects
Raspberry pi pico projects raspberry pi projects
 
An introduction to workflow-based programming with Node-RED
An introduction to workflow-based programming with Node-REDAn introduction to workflow-based programming with Node-RED
An introduction to workflow-based programming with Node-RED
 

More from Keval Patel

Contributor Qualities
Contributor QualitiesContributor Qualities
Contributor QualitiesKeval Patel
 
Views and environment of management
Views and environment of management Views and environment of management
Views and environment of management Keval Patel
 
White revolution
White revolutionWhite revolution
White revolutionKeval Patel
 
Control of dc drives
Control of dc drivesControl of dc drives
Control of dc drivesKeval Patel
 
Demand forecasting
Demand forecastingDemand forecasting
Demand forecastingKeval Patel
 
Various types of data recorders
Various types of data recordersVarious types of data recorders
Various types of data recordersKeval Patel
 
Transition from 1G to 4G
Transition from 1G to 4GTransition from 1G to 4G
Transition from 1G to 4GKeval Patel
 
Log periodic antenna
Log periodic antennaLog periodic antenna
Log periodic antennaKeval Patel
 
Dsp application on mobile communication
Dsp application on mobile communicationDsp application on mobile communication
Dsp application on mobile communicationKeval Patel
 

More from Keval Patel (10)

Contributor Qualities
Contributor QualitiesContributor Qualities
Contributor Qualities
 
Views and environment of management
Views and environment of management Views and environment of management
Views and environment of management
 
White revolution
White revolutionWhite revolution
White revolution
 
Control of dc drives
Control of dc drivesControl of dc drives
Control of dc drives
 
Wave guide tees
Wave guide teesWave guide tees
Wave guide tees
 
Demand forecasting
Demand forecastingDemand forecasting
Demand forecasting
 
Various types of data recorders
Various types of data recordersVarious types of data recorders
Various types of data recorders
 
Transition from 1G to 4G
Transition from 1G to 4GTransition from 1G to 4G
Transition from 1G to 4G
 
Log periodic antenna
Log periodic antennaLog periodic antenna
Log periodic antenna
 
Dsp application on mobile communication
Dsp application on mobile communicationDsp application on mobile communication
Dsp application on mobile communication
 

Recently uploaded

Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 

Recently uploaded (20)

Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 

Build your first android things application

  • 1. Build your first Android Things application Keval Patel Android Developer @ 1
  • 2. Agenda - Introduction to Raspberry Pi. - Specifications & Schematics of Raspberry Pi. - How to connect Raspberry Pi to your computer?- Create a new project for Android Things. - What’s different than normal app development? - Accessing hardware components in Android app. - Introduction: Smart Switch App 2
  • 4. What is Raspberry Pi? A computer. A small single-board computer that plugs into your TV and a keyboard, which can be used for many of the things that your average desktop does - spreadsheets, word-processing, games and it also plays high-definition video. 4
  • 5. What is Raspberry Pi? Small - Size of the credit card. Affordable - Just $35!!! Single Board SoC. Consumes less than 5W power. Developed by Raspberry Pi foundation. Board for the hobbyist. 5
  • 6. 6
  • 7. Which OS you can run? - Raspbian OS - Fedora OS - Debian OS - Windows 10 - And now Android... 7
  • 8. Raspberry Pi 3 Model B - Released in Feb 2016. - Costs $35. - Supports Android Things. 8
  • 9. Raspberry Pi 3 Model B Specification - Quad-core 64-bit ARM Cortex-A53, 1.2GHz - Broadcom VideoCore IV - 1GB LPDDR2 (900 MHz) - 10/100 Ethernet - 2.4GHz 802.11n wireless - Bluetooth 4.1 and Bluetooth Low Energy - 40-pin GPIO header - Ports: HDMI, 3.5mm analog audio-video jack, 4× USB 2.0, Ethernet, Camera Serial Interface (CSI), Display Serial Interface (DSI) 9
  • 10. 10
  • 11. GPIO - GPIO = General Purpose Input Output. - You can configure that pin to act as input or output pin at runtime. - No predefined purpose, and go unused by default. - Raspberry Pi has 40 GPIO pins. - The pins allow us to interact with different components and receive and send information to them. 11
  • 13. How to connect with Raspberry Pi? 13
  • 14. How to connect with Raspberry Pi? 1. Connect USB cable for power. 2. Connect an Ethernet cable your local network. 3. Connect an HDMI cable to an display. (Optional) 4. Find the IP of Raspberry Pi using IP scanner tool. (e.g. Angry IP scanner.) The host name will be “Android.local”. 5. Connect to this IP address using the adb. $ adb connect <ip-address> connected to <ip-address>:5555 14
  • 15. How to connect with Wi-Fi? 1. Send an intent to the Wi-Fi service with the SSID and passcode of your Wi-Fi network. You need to do it only when connecting to new Wi-Fi network. $ adb shell am startservice -n com.google.wifisetup/.WifiSetupService -a WifiSetupService.Connect -e ssid <Network_SSID> -e passphrase <Network_Passcode> $ adb connect <ip-address> connected to <ip-address>:5555 2. Find the IP of Raspberry Pi using IP scanner tool. 3. Connect to this IP address using the adb. 15
  • 16. How to check if the internet access available? rpi3:/ $ ping google.com PING google.com (216.58.199.142) 56(84) bytes of data. 16
  • 18. Build Android Things Project - Create new android project. 18
  • 19. Build Android Things Project - Set the minSdkVersion for the project to 24. 19
  • 20. Build Android Things Project - Add “com.google.android.things” library to “AndroidManifest.xml”. <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <uses-library android:name="com.google.android.things"/> <activity android:name=".MainActivity"> .... .... </activity> </application> 20
  • 21. Add Home activity support - "Home activity" in its manifest as the main entry point for the system to automatically launch on boot. <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> <!-- Launch activity automatically on boot --> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.IOT_LAUNCHER"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity> 21
  • 23. Android Things App Vs. Phone App - In Android Things UI is optional. - Android Things launcher does not have an app drawer. You need to launch the application using ADB. - There is no system-wide status bar and window shade in Android Things. So, notifications are not supported. - No system-wide navigation bar. So, back button, home button, and app switcher are supported. 23
  • 24. Android Things App Vs. Phone App - Android Things supports a subset of the Google APIs for Android. - Each release of Android Things bundles the latest stable version of Google Play Services, and requires at least version 10.0.0 of the client SDK. 24
  • 25. - No runtime permission. Just declare permission in AndroidManifest. (Just like old days!!!) - No support for the Google Play. Android Things App Vs. Phone App - Doesn't include the all of the standard system apps and content providers. Like SMS application and SMS provider. Avoid using them. 25
  • 26. How to access GPIO? 26
  • 27. Setting GPIO - Open GPIO pin using PeripheralManagerService. PeripheralManagerService service = new PeripheralManagerService(); mRedPin = service.openGpio(BoardDefaults.getGPIOForRedLED()); - Define pin as input or output. //Define as output mRedPin.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW); //Or mRedPin.setDirection(Gpio.DIRECTION_OUT_INITIALLY_HIGH); //Set as input mRedPin.setDirection(Gpio.DIRECTION_IN); 27
  • 28. Peripheral Driver Library - There are many sensors we may need in our project. - All sensors have different specs and different types of input/output. - You don’t want to write code to integrate those sensors in your application. - Peripheral Driver Library contains pre-written user drivers for popular peripherals available for supported Android Things hardware. - It is open sourced. (https://github.com/androidthings/contrib-drivers) 28
  • 30. Smart Switch 30 Control the devices like fan, light bulb using your phone. - Can control 1 fan, 1 light bulb and 1 LED. - Uses firebase real-time database to sync the status of the home device between raspberry pi and companion app.
  • 31. Components required - Raspberry Pi 31 - 2 x 5V Relay - 1 LED - 1K resistor - Breadboard - Wires/Connectors
  • 32. 32
  • 35. What’s next??? 35 - Go ahead and download from GitHub (https://goo.gl/1CHzrB). Play with your own devices. - Try out different samples from Android Things samples (https://goo.gl/aTRWTN) page. - Make your own project.
  • 36. References 36 - Android Things - Android Developers (https://goo.gl/PefyPY) - Android Things - GitHub (https://goo.gl/AWA1Co) - Android Things – Hardware Basics for the Software Engineer (https://goo.gl/ini66V) - SmartSwitch - Github (https://goo.gl/1CHzrB)
  • 37. What you are going to build now? @kevalpatel2106 @multidots 37