android things, alexey rybakov, technical evangelist, dataart

28
#gdg_kharkiv_cent er Android Things Alexey Rybakov Technical Evangelist @ DataArt Organizer @ GDG Kharkiv-Center

Upload: alina-vilk

Post on 12-Apr-2017

45 views

Category:

Education


4 download

TRANSCRIPT

Page 1: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Android Things

Alexey RybakovTechnical Evangelist @ DataArtOrganizer @ GDG Kharkiv-Center

Page 2: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

What is Android Things?

Page 3: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

What is Android Things? Market

Page 4: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

What is Android Things? Power of Android Ecosystem

•2015 Google I/O: Project Brello•Trusted security: regular updates by building on top of the Android System•The Android Ecosystem: Leverage existing Android developer tools, APIs, resources etc

•New APIs for IoT devices: Android framework that provide low level I/O and liveries for common components

Page 5: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Power of Android Ecosystem: Regular updates•Zero-Day Vulnerability•Hardcoded Admin Access / Firmware Errors ( Botnet / Worm Mirai)

•Developers Errors

Developers can push Google-provided OS updates and custom app updates using the same OTA infrastructure that Google uses for its products and services

Page 6: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Power of Android Ecosystem: The Android Ecosystem

•Android reduces time to market• Smartphone/tablet app can be reused• UI work can easily be outsourced• Many app developers out there UI designers know Android•App has shorter release cycle• Reuse testing of smartphone/tablet app Just add another device to the pool• Good test frameworks exist App is a smaller part ⇒ less risk

Page 7: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Power of Android: Architecture

Page 8: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Android Things Architecture: Avoid Use this API•CalendarContract

•ContactsContract•DocumentsContract•DownloadManager•MediaStore•Settings•Telephony•UserDictionary•VoicemailContract

Page 9: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Android Things Architecture: Supported Play Services•Supported

•Cast•Drive•Firebase Analytics•Firebase Cloud Messaging (FCM)

•Firebase Crash Reporting•Firebase Realtime Database•Firebase Remote Config

•Firebase Storage•Fit•Instance ID•Location•Nearby•Places•Mobile Vision

Page 10: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Android Things Architecture: Unsupported Play Services•AdMob

•Android Pay•Firebase App Indexing•Firebase Authentication•Firebase Dynamic Links•Firebase Invites•Firebase Notifications

•Maps•Play Games•Search•Sign-In

Page 11: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Android Things Support Library: User-Space Drivers

•Portability: run on a variety of different boards and configurations without additional abstractions•Reuse: Pull existing Android code snippets your application without the modify your specific hardware implementation.

•Device driver types: GPS, HID, Sensor

Page 12: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Android Things Support Library: Peripheral I/O API• GPIO (General Purpose Input/Output) Use this API for simple sensors such as

motion detectors, proximity detectors, and level switches that report their current state as a binary value—high or low.

• PWM (Pulse Width Modulation) Use this API for servo motors, DC motors, and lights that require a proportional signal to provide fine-grained control over the output.

• Serial Communication Use these APIs to transfer larger payloads of data between two or more smart devices connected on the same local bus. The following table outlines the basic attributes of each supported serial protocol

Page 13: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Peripheral I/O API: GPIO Initialization and Read/Write

Page 14: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Peripheral I/O API: I2C Initialization and Read/Write

Page 15: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Android Things: Application Layer

• Displays are optional Android Things does not require a display

• Supports graphical user interfaces using the same UI toolkit

• Does not include the system status bar or navigation buttons.

• Even without display, activities are still a primary component of your app

Page 16: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Android Things: Application Layer

• Permissions are not supported since UI is not required.

• Declare permission in the AndroidManifest.xml• Notifications are no supported since SystemBar is

not required

Page 17: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

What is Android Things? Hardware

• IoT Hardware Requirements :

• Internet connection

• low level IO communication with external parts

• Energy saving

Page 18: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Android Things Device: NX Pico i.MX6UL• CPU: NXP i.MX6Ultralite

500MHz ARM Cortex A7

• Memory: 512MB RAM

• Storage: 4GB eMMC

• Display: No

• Camera: No

• Audio: 3.5mm Analog

• Networking: 10/100 Ethernet Wi-Fi 802.11n Bluetooth® 4.1

• USB: 1xUSB 2.0 Host 1xUSB 2.0 OTG

Page 19: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Android Things Devices: Intel® Edison• CPU: Intel® Atom™

500MHz dual-core x86

• Memory: 1GB RAM

• Storage: 4GB eMMC

• Display: No

• Camera: No

• Audio: USB 2.0

• Networking: Wi-Fi 802.11n Bluetooth® 4.0

• USB: 1xUSB 2.0 OTG

Page 20: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Android Things Device: Intel® Joule• CPU: Intel® Atom™

1.5GHz/1.7GHz quad-core x86

• Memory: 3GB/4GB RAM

• Storage: 8GB/16GB eMMC

• Display: HDMI

• Camera: CSI-2

• Audio: USB 2.0

• Networking: Wi-Fi 802.11ac Bluetooth® 4.2

• USB: 1xUSB 3.0 OTG

Page 21: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Android Things Device: Raspberry Pi 3• CPU: Broadcom BCM2837

1.2GHz quad-core ARM Cortex A53

• Memory: 1GB RAM

• Storage: MicroSD card slot 32GB max size

• Display: HDMI

• Camera: CSI-2

• Audio: USB 2.0

• Networking: Wi-Fi 802.11ac Bluetooth® 4.2

• USB: 1xUSB 3.0 OTG

Page 22: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Demo: RPi Hardware

Page 23: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Demo: How to Develop

Page 24: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Android Things Current State: Developer preview 0.2• System power management is currently disabled. Devices will not suspend

and wake locks are not necessary.• Bluetooth APIs are currently disabled.• USB APIs are currently disabled.• Dangerous permissions requested by apps are not granted until the next

device reboot. This includes new app installs and new <uses-permission> elements in existing apps.

• Apps using Google Play Services APIs must compile against SDK version 10.0.0 or newer.

• Google Play Services requires 2-3 minutes on first boot to pre-optimize dex. App installs are blocked until this process is complete.

Page 25: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Android Things Current State: Developer preview 0.2• Hardware graphics acceleration (OpenGL) is not currently enabled. APIs

depedent on this functionality (such as WebView) are not available.• Peripherals do not clear or reset after calling close(). Outputs will retain their

state and serial ports may continue to transmit previously buffered data.• GPIO pins cannot be used as an output if they were previously enabled as an

input with an edge trigger enabled since the last reboot.• User Drivers: User sensors cannot currently be unregistered manually. They

are unregistered automatically when the app process terminates.• User Drivers: User sensors only support continuous and on-change sensors.

One-shot and special reporting modes may not function as expected.

Page 26: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Android Things: Conclusion

It’s Cool but it is still in Developer Preview!

Page 27: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center

Alexey Rybakov@DataArt@GDGKharkiv-Center@[email protected]

https://developer.android.com/thingshttp://www.nxp.com/pip/IOT-DEV-PLATFORMS-I.MX6ULhttps://software.intel.com/en-us/iot/android-thingshttps://github.com/jgamblin/Mirai-Source-Code

Thank You!

Page 28: Android Things, Alexey Rybakov, Technical Evangelist, DataArt

#gdg_kharkiv_center