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

PPTX
Zero to one with Android Things - Hieu Hua
PDF
Android Things - The IoT platform for everyone.
PPTX
Decrease build time and application size
PDF
Android things introduction - Development for IoT
PDF
Android Things
PPTX
Android Things, Alexey Rybakov, Technical Evangelist, DataArt
PDF
Android Things Latest News / Aug 25, 2017
PDF
Android Things Linux Day 2017
Zero to one with Android Things - Hieu Hua
Android Things - The IoT platform for everyone.
Decrease build time and application size
Android things introduction - Development for IoT
Android Things
Android Things, Alexey Rybakov, Technical Evangelist, DataArt
Android Things Latest News / Aug 25, 2017
Android Things Linux Day 2017

What's hot (20)

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

Similar to Build your first android things application (20)

PPTX
Android Things - The IoT platform from Google
PDF
Android things intro
PPT
Android Things Getting Started
PDF
Android Things in action
PDF
Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...
PPTX
Getting Started with Raspberry Pi and Arduino
PPTX
IoT from java perspective
PPTX
M.Tech Internet of Things Unit - III.pptx
PPT
Raspberry-Pi
PPTX
Using arduino and raspberry pi for internet of things
PDF
Connecting your phone and home with firebase and android things - James Cogga...
PDF
Taking the hard out of hardware
PPTX
Raspberry Pi - Unlocking New Ideas for Your Library
PDF
IoT Physical Devices and End Points.pdf
PPTX
KSS Session and Tech Talk-2019 on IOT.pptx
PDF
Internet of Things
PDF
Single Board Computers & Raspberry Pi Basics
PDF
Hardware hacking on the pi; what's js got to do with it
PPTX
Pi, Python, and Paintball??? Innovating with Affordable Tech!
PPTX
Build IoT Applications with C#
Android Things - The IoT platform from Google
Android things intro
Android Things Getting Started
Android Things in action
Android Things, from mobile apps to physical world - Stefano Sanna - Giovanni...
Getting Started with Raspberry Pi and Arduino
IoT from java perspective
M.Tech Internet of Things Unit - III.pptx
Raspberry-Pi
Using arduino and raspberry pi for internet of things
Connecting your phone and home with firebase and android things - James Cogga...
Taking the hard out of hardware
Raspberry Pi - Unlocking New Ideas for Your Library
IoT Physical Devices and End Points.pdf
KSS Session and Tech Talk-2019 on IOT.pptx
Internet of Things
Single Board Computers & Raspberry Pi Basics
Hardware hacking on the pi; what's js got to do with it
Pi, Python, and Paintball??? Innovating with Affordable Tech!
Build IoT Applications with C#
Ad

More from Keval Patel (10)

PPTX
Contributor Qualities
PPTX
Views and environment of management
PPTX
White revolution
PPTX
Control of dc drives
PPTX
Wave guide tees
PPTX
Demand forecasting
PPTX
Various types of data recorders
PPTX
Transition from 1G to 4G
PPTX
Log periodic antenna
PPTX
Dsp application on mobile communication
Contributor Qualities
Views and environment of management
White revolution
Control of dc drives
Wave guide tees
Demand forecasting
Various types of data recorders
Transition from 1G to 4G
Log periodic antenna
Dsp application on mobile communication

Recently uploaded (20)

PPTX
Post-Migration Optimization Playbook: Getting the Most Out of Your New Adobe ...
DOCX
Industrial Bio-Lynx: Advanced Biometric Solution for Workforce Management
PPTX
Human-Computer Interaction for Lecture 1
PDF
Mobile App Backend Development with WordPress REST API: The Complete eBook
PPTX
WJQSJXNAZJVCVSAXJHBZKSJXKJKXJSBHJBJEHHJB
PDF
Ragic Data Security Overview: Certifications, Compliance, and Network Safegua...
PDF
AI-Powered Fuzz Testing: The Future of QA
PPTX
Swiggy API Scraping A Comprehensive Guide on Data Sets and Applications.pptx
PDF
Sanket Mhaiskar Resume - Senior Software Engineer (Backend, AI)
PPTX
Lesson-3-Operation-System-Support.pptx-I
PDF
Workplace Software and Skills - OpenStax
PDF
Understanding the Need for Systemic Change in Open Source Through Intersectio...
PPTX
HackYourBrain__UtrechtJUG__11092025.pptx
PPTX
Why 2025 Is the Best Year to Hire Software Developers in India
PPTX
A Spider Diagram, also known as a Radial Diagram or Mind Map.
PDF
MiniTool Power Data Recovery 12.6 Crack + Portable (Latest Version 2025)
PPTX
Human Computer Interaction lecture Chapter 2.pptx
PPTX
Lecture 5 Software Requirement Engineering
PPTX
Folder Lock 10.1.9 Crack With Serial Key
PPTX
ROI from Efficient Content & Campaign Management in the Digital Media Industry
Post-Migration Optimization Playbook: Getting the Most Out of Your New Adobe ...
Industrial Bio-Lynx: Advanced Biometric Solution for Workforce Management
Human-Computer Interaction for Lecture 1
Mobile App Backend Development with WordPress REST API: The Complete eBook
WJQSJXNAZJVCVSAXJHBZKSJXKJKXJSBHJBJEHHJB
Ragic Data Security Overview: Certifications, Compliance, and Network Safegua...
AI-Powered Fuzz Testing: The Future of QA
Swiggy API Scraping A Comprehensive Guide on Data Sets and Applications.pptx
Sanket Mhaiskar Resume - Senior Software Engineer (Backend, AI)
Lesson-3-Operation-System-Support.pptx-I
Workplace Software and Skills - OpenStax
Understanding the Need for Systemic Change in Open Source Through Intersectio...
HackYourBrain__UtrechtJUG__11092025.pptx
Why 2025 Is the Best Year to Hire Software Developers in India
A Spider Diagram, also known as a Radial Diagram or Mind Map.
MiniTool Power Data Recovery 12.6 Crack + Portable (Latest Version 2025)
Human Computer Interaction lecture Chapter 2.pptx
Lecture 5 Software Requirement Engineering
Folder Lock 10.1.9 Crack With Serial Key
ROI from Efficient Content & Campaign Management in the Digital Media Industry

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