SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Qt on Android
Create a cross-platform
application with Qt
2
• Adrien Leravat
• Embedded Software Engineer
Introduction
• Witekio
• French company, German, USA, Taiwan
• BSP / OS porting to ARM (Linux, Windows, Android,
QNX)
• Embedded software architecture and development
• Mobile expertise (cloud, internet of things)
3
Context
• Creating a new application or service
– Multiple targets and OSes.
• Desktop
• Web
• Mobile and touch devices
– Your smartphones, fridge, …
– Android, iOS, WinRT/WP, Embedded OSes
• Meaning: a lot of time !
4
Qt answer
Your own components
• With Qt 5
– Desktop/Server
• Windows, Linux, Mac
• Smartphones
– Android, iOS, WinRT (preview)
• Embedded devices
– Windows CE, Linux, QNX
5
Qt answer
Your own components
• Why choose Qt for Android
– Build once, runs on multiple targets
• Less development, More maintainable
– No Android knowledge needed
• Big Qt features
– Databases, Threads, Networking, …
• Long living framework, large community
• Each 6 months: New major release !
6
Qt for Android
Your own components
• Two way to build Qt applications with Android
• Boot to Qt: Dedicated device running Android
– Android system without all unnecessary features
(Home, Dalvik, …)
– Make us of Android drivers (accelerometer,
camera,…)
• Qt Android application
– Regular application
– Can be published to Android Play Store
– Can be run on a dedicated Android device
7
Qt for Android
Your own components
• Android versions 2.3.3 (API 10) or later
• Download from free at : http://qt-project.org/downloads
• Qt 5
• Qt Creator
– Unified IDE for developing Qt applications
– Build, deploy and debug
• Qt Creator
– Toolchain for ARMv7 and x86 platforms, Qt
Linguist
8
Installation requirements
• External tools needed
– The Android SDK
• Java Development kit for Android
• The Android NDK
– Native code development kit for Android
• Apache Ant v1.8 or later
– Java code compilation
• JDK v6 or later
– Java development kit
9
Installation requirements
• External tools needed
– The Android SDK
– The Android NDK
– Apache Ant v1.8 or later
– JDK v6 or later
• Integration to Qt Creator
– Tools > Options >Android
– Let’s see !
10
Supported Items
• Qt 5 key features, and more !
– Widgets and Qt Quick graphical user interfaces
– Gestures
– Media player, video input
– Sensors: Accelerometer, Gyroscope, Light sensor,
…
– Databases, threads, networking,…
• Not supported: Webkit
Creating a new project
12
Project architecture
• New project for Android
– Several projects available: console, native
widgets, Qt Quick graphical application
• Qt Widgets
– No OpenGL hardware acceleration
– Certification needed for your application
– Desktop-only application, leverage all available
widgets
• Qt Quick 2 is preferred, being made
for modern devices
– Gestures, animations
– Design oriented
– Very easy to use
13
Project architecture
• New project for Android
14
Project architecture
• Qt Quick project
– Project file configuration .pro
– C++ sources and headers .cpp/.h
– QML and javascript (GUI) .qml/.js
15
Project architecture
• Interface with Android
– Done automatically
– The activity contains the
entry point of the
application
– Load Qt application and
execute native code
– Ministro
16
Project architecture
• AndroidManifest.xml
– Provide meta-information about the app
– Let you change application permissions
Polishing with effectsUsing Qt Quick
18
Qt Quick Design
• Perfectly fitted for Android
– Gestures, animations
– Network transparent, sensors
• Design oriented
– GUI conception accessible to designers
– Simples components to create your own UI
– Completely separate UI and logic
19
Qt Quick Design
• Completely separate UI and logic
– Allows switching UI at runtime
• Access C++ through bindings and functions
– C++ and UI data automatically synchronized
Development
Source code
.cpp/.h
Application
C++ Data
Objects
User interface
.qml .
Scripts
.js
Application
User interface
.qml .
Scripts
.js
Rectangle {
width: height*2; height: 200;
color: “white”
Text {
anchors.fill: parent
text: “Hello world!”
color: “black”
font.pixelSize: 20
}
}
20
Sensors and Gestures
• Sensors and gestures can be entirely managed
from QML
• Great ease of use, no knowledge of Android
needed at all
• Let’s try!
PinchArea {
width:200
height: 200
GridView {
// Some large content
}
}
Pinch / Zoom gesture
Accelerometer {
dataRate: 2
active: true
onReadingChanged{
// Use reading.x/y/z
}
}
Using accelerometer
21
Adapting to screen
• Devices come in various resolution and size
• QtQuick2ApplicationViewer::screen()
– Height and width in pixels
– Physical height and width
SmartphoneTablet
22
Adapting to screen
• Relative size and position
– Height: parent.height /2
– Limited hard to maintain
• Different QML files
– Very customizable for
each resolutions/size
SmartphoneTabletQt Quick components
23
Adapting to screen
• Automatic layouting
– Layout, Row, Grid, …
– Resize and/or move component in allocated space
• Anchors
– Anchors button left
with left the border
– Use anchors to constrain
size
SmartphoneTabletQt Quick components
Deployment
25
Deployment
• Deploying your application on Android
– Direct deployment to device
• Most convenient for development
• Needs the device to be connected (USB)
– Simulator
– Bundle Qt libraries and files into the apk
• Stand-alone and distributable application package
– Using Ministro
• Minimize the size of the APK
26
Deployment
• Ministro
– Available on Google Play
– Application asks Ministro for Qt components
– Ministro download components
• If not installed
• If newer versions exist
– Qt Open Source
• GPLv3+ license for the APK
• BSD License for the API
• Install LGPLv2.1 / GPLV3 Qt libraries
27
Deployment
• Simulator
– Let’s you create and simulate various Android
devices
– Simulate different screen size
– Very convenient for development
28
Deployment
• Finally
– Connect your device
– Hit “Play” !
Embedded device Smartphone
Simulator
29
Conclusion
• Qt is a powerful technology, covering more and
more devices and Oses
• Opens new opportunity and ways of doing
software development
• Became an interesting and powerful alternative
to native Android

Weitere ähnliche Inhalte

Was ist angesagt?

Codemotion Azure Container Apps
Codemotion Azure Container AppsCodemotion Azure Container Apps
Codemotion Azure Container AppsAndrea Tosato
 
Xpdays: Kubernetes CI-CD Frameworks Case Study
Xpdays: Kubernetes CI-CD Frameworks Case StudyXpdays: Kubernetes CI-CD Frameworks Case Study
Xpdays: Kubernetes CI-CD Frameworks Case StudyDenys Vasyliev
 
[WSO2Con EU 2018] Enabling Agile Integration Teams
[WSO2Con EU 2018] Enabling Agile Integration Teams[WSO2Con EU 2018] Enabling Agile Integration Teams
[WSO2Con EU 2018] Enabling Agile Integration TeamsWSO2
 
[Webinar] Automotive Media Management in Future IVI Systems
[Webinar] Automotive Media Management in Future IVI Systems[Webinar] Automotive Media Management in Future IVI Systems
[Webinar] Automotive Media Management in Future IVI SystemsICS
 
Cloud Native Computing Foundation: How Virtualization and Containers are Chan...
Cloud Native Computing Foundation: How Virtualization and Containers are Chan...Cloud Native Computing Foundation: How Virtualization and Containers are Chan...
Cloud Native Computing Foundation: How Virtualization and Containers are Chan...Experfy
 
Novelti Intro at Machine Learning Spain Meetup
Novelti Intro at Machine Learning Spain MeetupNovelti Intro at Machine Learning Spain Meetup
Novelti Intro at Machine Learning Spain MeetupNovelti
 
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...Vietnam Open Infrastructure User Group
 
ECTR IoT MisterX & IPS Live Demo
ECTR IoT MisterX & IPS Live DemoECTR IoT MisterX & IPS Live Demo
ECTR IoT MisterX & IPS Live DemoSergey Seleznev
 
Location & the Internet of Things (IoT)
Location & the Internet of Things (IoT)Location & the Internet of Things (IoT)
Location & the Internet of Things (IoT)Mark White
 
EDB Postgres in Public Sector
EDB Postgres in Public SectorEDB Postgres in Public Sector
EDB Postgres in Public SectorKangaroot
 
Compact models for compact devices: Visualisation of SAR using mobile apps
Compact models for compact devices: Visualisation of SAR using mobile appsCompact models for compact devices: Visualisation of SAR using mobile apps
Compact models for compact devices: Visualisation of SAR using mobile appsAlex Clark
 
ATO 2018 - What is Serverless Useful For?
ATO 2018 - What is Serverless Useful For?ATO 2018 - What is Serverless Useful For?
ATO 2018 - What is Serverless Useful For?BerndtJung
 
Troubles in Kubernetes Land: Vault to the Rescue
Troubles in Kubernetes Land: Vault to the RescueTroubles in Kubernetes Land: Vault to the Rescue
Troubles in Kubernetes Land: Vault to the RescueDevOps.com
 
Client presentation k & n
Client presentation   k & nClient presentation   k & n
Client presentation k & nLangn3r
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewboxLino Telera
 
Flare: an overview
Flare: an overviewFlare: an overview
Flare: an overviewCisco DevNet
 

Was ist angesagt? (20)

Codemotion Azure Container Apps
Codemotion Azure Container AppsCodemotion Azure Container Apps
Codemotion Azure Container Apps
 
Xpdays: Kubernetes CI-CD Frameworks Case Study
Xpdays: Kubernetes CI-CD Frameworks Case StudyXpdays: Kubernetes CI-CD Frameworks Case Study
Xpdays: Kubernetes CI-CD Frameworks Case Study
 
[WSO2Con EU 2018] Enabling Agile Integration Teams
[WSO2Con EU 2018] Enabling Agile Integration Teams[WSO2Con EU 2018] Enabling Agile Integration Teams
[WSO2Con EU 2018] Enabling Agile Integration Teams
 
[Webinar] Automotive Media Management in Future IVI Systems
[Webinar] Automotive Media Management in Future IVI Systems[Webinar] Automotive Media Management in Future IVI Systems
[Webinar] Automotive Media Management in Future IVI Systems
 
Cloud Native Computing Foundation: How Virtualization and Containers are Chan...
Cloud Native Computing Foundation: How Virtualization and Containers are Chan...Cloud Native Computing Foundation: How Virtualization and Containers are Chan...
Cloud Native Computing Foundation: How Virtualization and Containers are Chan...
 
Novelti Intro at Machine Learning Spain Meetup
Novelti Intro at Machine Learning Spain MeetupNovelti Intro at Machine Learning Spain Meetup
Novelti Intro at Machine Learning Spain Meetup
 
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...
Self Healing Trong Cloud Infrastructure với TICK Stack, Vitrage và Mistral | ...
 
how to simulate ACI
how to simulate ACIhow to simulate ACI
how to simulate ACI
 
ECTR IoT MisterX & IPS Live Demo
ECTR IoT MisterX & IPS Live DemoECTR IoT MisterX & IPS Live Demo
ECTR IoT MisterX & IPS Live Demo
 
Location & the Internet of Things (IoT)
Location & the Internet of Things (IoT)Location & the Internet of Things (IoT)
Location & the Internet of Things (IoT)
 
EDB Postgres in Public Sector
EDB Postgres in Public SectorEDB Postgres in Public Sector
EDB Postgres in Public Sector
 
Compact models for compact devices: Visualisation of SAR using mobile apps
Compact models for compact devices: Visualisation of SAR using mobile appsCompact models for compact devices: Visualisation of SAR using mobile apps
Compact models for compact devices: Visualisation of SAR using mobile apps
 
ATO 2018 - What is Serverless Useful For?
ATO 2018 - What is Serverless Useful For?ATO 2018 - What is Serverless Useful For?
ATO 2018 - What is Serverless Useful For?
 
Troubles in Kubernetes Land: Vault to the Rescue
Troubles in Kubernetes Land: Vault to the RescueTroubles in Kubernetes Land: Vault to the Rescue
Troubles in Kubernetes Land: Vault to the Rescue
 
android
androidandroid
android
 
Client presentation k & n
Client presentation   k & nClient presentation   k & n
Client presentation k & n
 
Serverless brewbox
Serverless   brewboxServerless   brewbox
Serverless brewbox
 
Vistrails and VTK Comparison
Vistrails and VTK ComparisonVistrails and VTK Comparison
Vistrails and VTK Comparison
 
Flare: an overview
Flare: an overviewFlare: an overview
Flare: an overview
 
Azure IoT Suite
Azure IoT Suite Azure IoT Suite
Azure IoT Suite
 

Andere mochten auch

Tizen Native Application Development with C/C++
Tizen Native Application Development with C/C++Tizen Native Application Development with C/C++
Tizen Native Application Development with C/C++Gilang Mentari Hamidy
 
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...FELGO SDK
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneAndreas Jakl
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Andreas Jakl
 
DDS 2010 Interoperability Demo
DDS 2010 Interoperability DemoDDS 2010 Interoperability Demo
DDS 2010 Interoperability DemoAngelo Corsaro
 

Andere mochten auch (7)

Tizen Native Application Development with C/C++
Tizen Native Application Development with C/C++Tizen Native Application Development with C/C++
Tizen Native Application Development with C/C++
 
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...
Qt World Summit 2015 Talk by V-Play: How to Develop with Qt for Multiple Scre...
 
Cross Platform Qt
Cross Platform QtCross Platform Qt
Cross Platform Qt
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
 
Qt Workshop
Qt WorkshopQt Workshop
Qt Workshop
 
DDS 2010 Interoperability Demo
DDS 2010 Interoperability DemoDDS 2010 Interoperability Demo
DDS 2010 Interoperability Demo
 

Ähnlich wie Witekio Qt and Android

Radu vunvulea building and testing windows 8 metro style applications using ...
Radu vunvulea  building and testing windows 8 metro style applications using ...Radu vunvulea  building and testing windows 8 metro style applications using ...
Radu vunvulea building and testing windows 8 metro style applications using ...Radu Vunvulea
 
Building the Ultimate Device Matrix
Building the Ultimate Device MatrixBuilding the Ultimate Device Matrix
Building the Ultimate Device MatrixCarly Vanderwert
 
Microsoft IT Academy Summit 2011
Microsoft IT Academy Summit 2011Microsoft IT Academy Summit 2011
Microsoft IT Academy Summit 2011Lee Stott
 
chapter7-151010022348-lva1-app6892 (1).pptx
chapter7-151010022348-lva1-app6892 (1).pptxchapter7-151010022348-lva1-app6892 (1).pptx
chapter7-151010022348-lva1-app6892 (1).pptxJayasheelanP
 
Android programming Assignment Help
Android programming Assignment HelpAndroid programming Assignment Help
Android programming Assignment Helpsmithjonny9876
 
IoT Node-Red Presentation
IoT  Node-Red PresentationIoT  Node-Red Presentation
IoT Node-Red PresentationThe IOT Academy
 
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureIEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureSebastien Kuntz
 
Internet of things (IoT) with Azure
Internet of things (IoT) with AzureInternet of things (IoT) with Azure
Internet of things (IoT) with AzureVinoth Rajagopalan
 
Chapter 7 : MAKING MULTIMEDIA
Chapter 7 : MAKING MULTIMEDIAChapter 7 : MAKING MULTIMEDIA
Chapter 7 : MAKING MULTIMEDIAazira96
 
Android Internals and Toolchain
Android Internals and ToolchainAndroid Internals and Toolchain
Android Internals and ToolchainVladimir Kotov
 
Synapseindia android apps application development
Synapseindia android apps application developmentSynapseindia android apps application development
Synapseindia android apps application developmentSynapseindiappsdevelopment
 
NUX Presentation from TechMixer Birmingham 2011
NUX Presentation from TechMixer Birmingham 2011NUX Presentation from TechMixer Birmingham 2011
NUX Presentation from TechMixer Birmingham 2011Michael Heydt
 

Ähnlich wie Witekio Qt and Android (20)

Radu vunvulea building and testing windows 8 metro style applications using ...
Radu vunvulea  building and testing windows 8 metro style applications using ...Radu vunvulea  building and testing windows 8 metro style applications using ...
Radu vunvulea building and testing windows 8 metro style applications using ...
 
Introdução ao Tizen
Introdução ao TizenIntrodução ao Tizen
Introdução ao Tizen
 
Project
ProjectProject
Project
 
Building the Ultimate Device Matrix
Building the Ultimate Device MatrixBuilding the Ultimate Device Matrix
Building the Ultimate Device Matrix
 
Android overview
Android overviewAndroid overview
Android overview
 
Android quick talk
Android quick talkAndroid quick talk
Android quick talk
 
Developers Safari into the Internet of Things (IoT) with Pi
Developers Safari into the Internet of Things (IoT) with PiDevelopers Safari into the Internet of Things (IoT) with Pi
Developers Safari into the Internet of Things (IoT) with Pi
 
Microsoft IT Academy Summit 2011
Microsoft IT Academy Summit 2011Microsoft IT Academy Summit 2011
Microsoft IT Academy Summit 2011
 
chapter7-151010022348-lva1-app6892 (1).pptx
chapter7-151010022348-lva1-app6892 (1).pptxchapter7-151010022348-lva1-app6892 (1).pptx
chapter7-151010022348-lva1-app6892 (1).pptx
 
Android programming Assignment Help
Android programming Assignment HelpAndroid programming Assignment Help
Android programming Assignment Help
 
IoT Node-Red Presentation
IoT  Node-Red PresentationIoT  Node-Red Presentation
IoT Node-Red Presentation
 
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architectureIEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
IEEE VR-SEARIS 2014 Keynote - MiddleVR - Philosophy and architecture
 
Internet of things (IoT) with Azure
Internet of things (IoT) with AzureInternet of things (IoT) with Azure
Internet of things (IoT) with Azure
 
Chapter 7 : MAKING MULTIMEDIA
Chapter 7 : MAKING MULTIMEDIAChapter 7 : MAKING MULTIMEDIA
Chapter 7 : MAKING MULTIMEDIA
 
Chapter 7
Chapter 7Chapter 7
Chapter 7
 
Android Internals and Toolchain
Android Internals and ToolchainAndroid Internals and Toolchain
Android Internals and Toolchain
 
Synapseindia android apps application development
Synapseindia android apps application developmentSynapseindia android apps application development
Synapseindia android apps application development
 
My androidpresentation
My androidpresentationMy androidpresentation
My androidpresentation
 
NUX Presentation from TechMixer Birmingham 2011
NUX Presentation from TechMixer Birmingham 2011NUX Presentation from TechMixer Birmingham 2011
NUX Presentation from TechMixer Birmingham 2011
 
Android
AndroidAndroid
Android
 

Mehr von Witekio

IoT & Embedded systems development
IoT & Embedded systems developmentIoT & Embedded systems development
IoT & Embedded systems developmentWitekio
 
IoT Device Security
IoT Device SecurityIoT Device Security
IoT Device SecurityWitekio
 
Conference Security by Design - Microsoft - Relever les défis de la sécurité ...
Conference Security by Design - Microsoft - Relever les défis de la sécurité ...Conference Security by Design - Microsoft - Relever les défis de la sécurité ...
Conference Security by Design - Microsoft - Relever les défis de la sécurité ...Witekio
 
Conference Security by Design - Gemalto - Security in IoT
Conference Security by Design - Gemalto - Security in IoTConference Security by Design - Gemalto - Security in IoT
Conference Security by Design - Gemalto - Security in IoTWitekio
 
Conference Security by Design - Lacroix Electronics - Comment conçoit on un o...
Conference Security by Design - Lacroix Electronics - Comment conçoit on un o...Conference Security by Design - Lacroix Electronics - Comment conçoit on un o...
Conference Security by Design - Lacroix Electronics - Comment conçoit on un o...Witekio
 
Machine learning - AI
Machine learning - AIMachine learning - AI
Machine learning - AIWitekio
 
Evoca Group - Smart connected coffee vending machine
Evoca Group - Smart connected coffee vending machineEvoca Group - Smart connected coffee vending machine
Evoca Group - Smart connected coffee vending machineWitekio
 
Containers demystified webinar detailed
Containers demystified webinar detailedContainers demystified webinar detailed
Containers demystified webinar detailedWitekio
 
Witekio Corporate presentation H2 2017
Witekio Corporate presentation H2 2017Witekio Corporate presentation H2 2017
Witekio Corporate presentation H2 2017Witekio
 
Why you should join Witekio
Why you should join WitekioWhy you should join Witekio
Why you should join WitekioWitekio
 
Witekio introducing-predictive-maintenance
Witekio introducing-predictive-maintenanceWitekio introducing-predictive-maintenance
Witekio introducing-predictive-maintenanceWitekio
 
System Software Integration, Witekio
System Software Integration, WitekioSystem Software Integration, Witekio
System Software Integration, WitekioWitekio
 
Witekio Corporate Presentation Q42016
Witekio Corporate Presentation Q42016Witekio Corporate Presentation Q42016
Witekio Corporate Presentation Q42016Witekio
 
Continuous Integration for BSP
Continuous Integration for BSPContinuous Integration for BSP
Continuous Integration for BSPWitekio
 
Witekio custom modern qt quick components
Witekio custom modern qt quick componentsWitekio custom modern qt quick components
Witekio custom modern qt quick componentsWitekio
 
Witekio IoT presentation
Witekio IoT presentation Witekio IoT presentation
Witekio IoT presentation Witekio
 
Adeneo Embedded stay tuned
Adeneo Embedded stay tuned Adeneo Embedded stay tuned
Adeneo Embedded stay tuned Witekio
 

Mehr von Witekio (17)

IoT & Embedded systems development
IoT & Embedded systems developmentIoT & Embedded systems development
IoT & Embedded systems development
 
IoT Device Security
IoT Device SecurityIoT Device Security
IoT Device Security
 
Conference Security by Design - Microsoft - Relever les défis de la sécurité ...
Conference Security by Design - Microsoft - Relever les défis de la sécurité ...Conference Security by Design - Microsoft - Relever les défis de la sécurité ...
Conference Security by Design - Microsoft - Relever les défis de la sécurité ...
 
Conference Security by Design - Gemalto - Security in IoT
Conference Security by Design - Gemalto - Security in IoTConference Security by Design - Gemalto - Security in IoT
Conference Security by Design - Gemalto - Security in IoT
 
Conference Security by Design - Lacroix Electronics - Comment conçoit on un o...
Conference Security by Design - Lacroix Electronics - Comment conçoit on un o...Conference Security by Design - Lacroix Electronics - Comment conçoit on un o...
Conference Security by Design - Lacroix Electronics - Comment conçoit on un o...
 
Machine learning - AI
Machine learning - AIMachine learning - AI
Machine learning - AI
 
Evoca Group - Smart connected coffee vending machine
Evoca Group - Smart connected coffee vending machineEvoca Group - Smart connected coffee vending machine
Evoca Group - Smart connected coffee vending machine
 
Containers demystified webinar detailed
Containers demystified webinar detailedContainers demystified webinar detailed
Containers demystified webinar detailed
 
Witekio Corporate presentation H2 2017
Witekio Corporate presentation H2 2017Witekio Corporate presentation H2 2017
Witekio Corporate presentation H2 2017
 
Why you should join Witekio
Why you should join WitekioWhy you should join Witekio
Why you should join Witekio
 
Witekio introducing-predictive-maintenance
Witekio introducing-predictive-maintenanceWitekio introducing-predictive-maintenance
Witekio introducing-predictive-maintenance
 
System Software Integration, Witekio
System Software Integration, WitekioSystem Software Integration, Witekio
System Software Integration, Witekio
 
Witekio Corporate Presentation Q42016
Witekio Corporate Presentation Q42016Witekio Corporate Presentation Q42016
Witekio Corporate Presentation Q42016
 
Continuous Integration for BSP
Continuous Integration for BSPContinuous Integration for BSP
Continuous Integration for BSP
 
Witekio custom modern qt quick components
Witekio custom modern qt quick componentsWitekio custom modern qt quick components
Witekio custom modern qt quick components
 
Witekio IoT presentation
Witekio IoT presentation Witekio IoT presentation
Witekio IoT presentation
 
Adeneo Embedded stay tuned
Adeneo Embedded stay tuned Adeneo Embedded stay tuned
Adeneo Embedded stay tuned
 

Kürzlich hochgeladen

DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 

Kürzlich hochgeladen (20)

DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 

Witekio Qt and Android

  • 1. Qt on Android Create a cross-platform application with Qt
  • 2. 2 • Adrien Leravat • Embedded Software Engineer Introduction • Witekio • French company, German, USA, Taiwan • BSP / OS porting to ARM (Linux, Windows, Android, QNX) • Embedded software architecture and development • Mobile expertise (cloud, internet of things)
  • 3. 3 Context • Creating a new application or service – Multiple targets and OSes. • Desktop • Web • Mobile and touch devices – Your smartphones, fridge, … – Android, iOS, WinRT/WP, Embedded OSes • Meaning: a lot of time !
  • 4. 4 Qt answer Your own components • With Qt 5 – Desktop/Server • Windows, Linux, Mac • Smartphones – Android, iOS, WinRT (preview) • Embedded devices – Windows CE, Linux, QNX
  • 5. 5 Qt answer Your own components • Why choose Qt for Android – Build once, runs on multiple targets • Less development, More maintainable – No Android knowledge needed • Big Qt features – Databases, Threads, Networking, … • Long living framework, large community • Each 6 months: New major release !
  • 6. 6 Qt for Android Your own components • Two way to build Qt applications with Android • Boot to Qt: Dedicated device running Android – Android system without all unnecessary features (Home, Dalvik, …) – Make us of Android drivers (accelerometer, camera,…) • Qt Android application – Regular application – Can be published to Android Play Store – Can be run on a dedicated Android device
  • 7. 7 Qt for Android Your own components • Android versions 2.3.3 (API 10) or later • Download from free at : http://qt-project.org/downloads • Qt 5 • Qt Creator – Unified IDE for developing Qt applications – Build, deploy and debug • Qt Creator – Toolchain for ARMv7 and x86 platforms, Qt Linguist
  • 8. 8 Installation requirements • External tools needed – The Android SDK • Java Development kit for Android • The Android NDK – Native code development kit for Android • Apache Ant v1.8 or later – Java code compilation • JDK v6 or later – Java development kit
  • 9. 9 Installation requirements • External tools needed – The Android SDK – The Android NDK – Apache Ant v1.8 or later – JDK v6 or later • Integration to Qt Creator – Tools > Options >Android – Let’s see !
  • 10. 10 Supported Items • Qt 5 key features, and more ! – Widgets and Qt Quick graphical user interfaces – Gestures – Media player, video input – Sensors: Accelerometer, Gyroscope, Light sensor, … – Databases, threads, networking,… • Not supported: Webkit
  • 11. Creating a new project
  • 12. 12 Project architecture • New project for Android – Several projects available: console, native widgets, Qt Quick graphical application • Qt Widgets – No OpenGL hardware acceleration – Certification needed for your application – Desktop-only application, leverage all available widgets • Qt Quick 2 is preferred, being made for modern devices – Gestures, animations – Design oriented – Very easy to use
  • 13. 13 Project architecture • New project for Android
  • 14. 14 Project architecture • Qt Quick project – Project file configuration .pro – C++ sources and headers .cpp/.h – QML and javascript (GUI) .qml/.js
  • 15. 15 Project architecture • Interface with Android – Done automatically – The activity contains the entry point of the application – Load Qt application and execute native code – Ministro
  • 16. 16 Project architecture • AndroidManifest.xml – Provide meta-information about the app – Let you change application permissions
  • 18. 18 Qt Quick Design • Perfectly fitted for Android – Gestures, animations – Network transparent, sensors • Design oriented – GUI conception accessible to designers – Simples components to create your own UI – Completely separate UI and logic
  • 19. 19 Qt Quick Design • Completely separate UI and logic – Allows switching UI at runtime • Access C++ through bindings and functions – C++ and UI data automatically synchronized Development Source code .cpp/.h Application C++ Data Objects User interface .qml . Scripts .js Application User interface .qml . Scripts .js Rectangle { width: height*2; height: 200; color: “white” Text { anchors.fill: parent text: “Hello world!” color: “black” font.pixelSize: 20 } }
  • 20. 20 Sensors and Gestures • Sensors and gestures can be entirely managed from QML • Great ease of use, no knowledge of Android needed at all • Let’s try! PinchArea { width:200 height: 200 GridView { // Some large content } } Pinch / Zoom gesture Accelerometer { dataRate: 2 active: true onReadingChanged{ // Use reading.x/y/z } } Using accelerometer
  • 21. 21 Adapting to screen • Devices come in various resolution and size • QtQuick2ApplicationViewer::screen() – Height and width in pixels – Physical height and width SmartphoneTablet
  • 22. 22 Adapting to screen • Relative size and position – Height: parent.height /2 – Limited hard to maintain • Different QML files – Very customizable for each resolutions/size SmartphoneTabletQt Quick components
  • 23. 23 Adapting to screen • Automatic layouting – Layout, Row, Grid, … – Resize and/or move component in allocated space • Anchors – Anchors button left with left the border – Use anchors to constrain size SmartphoneTabletQt Quick components
  • 25. 25 Deployment • Deploying your application on Android – Direct deployment to device • Most convenient for development • Needs the device to be connected (USB) – Simulator – Bundle Qt libraries and files into the apk • Stand-alone and distributable application package – Using Ministro • Minimize the size of the APK
  • 26. 26 Deployment • Ministro – Available on Google Play – Application asks Ministro for Qt components – Ministro download components • If not installed • If newer versions exist – Qt Open Source • GPLv3+ license for the APK • BSD License for the API • Install LGPLv2.1 / GPLV3 Qt libraries
  • 27. 27 Deployment • Simulator – Let’s you create and simulate various Android devices – Simulate different screen size – Very convenient for development
  • 28. 28 Deployment • Finally – Connect your device – Hit “Play” ! Embedded device Smartphone Simulator
  • 29. 29 Conclusion • Qt is a powerful technology, covering more and more devices and Oses • Opens new opportunity and ways of doing software development • Became an interesting and powerful alternative to native Android