Application Framework: Apertis Hands-On Application Framework: Apertis
Total Page:16
File Type:pdf, Size:1020Kb
ApplicationApplication Framework:Framework: RobertRobert BoschBosch CarCar MultimediaMultimedia GmbHGmbH Apertis Hands-on Apertis Hands-on CollaboraCollabora LimitedLimited 2016-04-282016-04-28 Apertis 2 Apertis ● Free and open source, GNU/Linux-based platform for infotainment in automotive vehicles ● End-to-end implementation of an application centric solution for IVI ● Aiming at providing secure yet flexible environment that satisfy automotive OEM requirements and application developers' needs 3 Apertis ● GNU/Linux distribution derived from Debian/Ubuntu ● Product-specific images for ARM and Intel x86 ● SDK virtual machine with full developer tools ● Developer portal and App Store for distribution 4 Release early, Release often While staying as stable as possible: ● Release every 3 months ● Rebase every 6 months 5 Apertis Managed ““Apps“,Apps“, e.g.e.g. CommercialCommercial MusicMusic ServicesServices WeatherWeather SocialSocial Networks...Networks... E.g. Vehicle Functions Climate (HVAC) Navigation Radio ... Native Applications System User Interface Applications Application Manager Web App Runtime Java App Runtime Prog. framework/abstraction (Qt and others) BusinessBusiness LogicLogic // PlatformPlatform AdaptionsAdaptions (optional,(optional, dep.dep. onon circumstance)circumstance) Legend Requirements or purpose description (likely Placeholder Component) Full-featured Interfaces Defined (likely Abstract Component) Shared Implementation (likely Specific Component) Not specified The colors are a close approximation – sometimes each box will be broken down intoapplication framework detailed components in a full architecture. overlaps GENIVI boxes GenericGeneric librarieslibraries (libc,(libc, etc.)etc.) Low-level system libraries (libusb etc.) Drivers,Drivers, BSP,BSP, LinuxLinux KernelKernel 6 InitialInitial BootloaderBootloader Applications ● Distinctions between applications – Built-in applications: ● Core applications (required to run) ● Pre-installed applications (selected by OEM, can not be uninstalled) – Applications coming from the application store ● Native and web applications – APIs currently primarily cater to proper C applications ● Services / Libraries – Provide functionalities to others 7 Application framework for developers ● Leverage APIs from open source community ● Focuses on lowest common denominator for improving performance and memory consumption ● Roadmap items: – Adding JavaScript bindings for HTML5 applications is on the roadmap – Additional languages bindings (Python, C++, etc.) – Additional toolkits support 8 Application development framework Develop Package • Download SDK • Simulator • Install and Configure • Tutorials and API • Development target • Package creation reference • GDB • Publish on portal App • Develop app Developers Install Test SDK Image & community Publish packages support HTTPS Developer Portal Deployment ValidationValidation •Application security profile •App gesture verification creation. •App memory and CPU •Appstore versioning. usage APPSTORE •App upload to store •App’s UI integrity • Apertis User privacy verification Maintainers 9 Security ● cgroups provide resource control ● polkit provides policy decisions for services which talk to multiple applications ● AppArmor provides mandatory access control (MAC) 10 Architecture systemd Application manager D-Bus Compositor (user session) (Canterbury) Application Application / Agent sandbox User SDK APIs System polkit AppArmor cgroups Application installer & general manager (Ribchester) Linux 11 Architecture Application libmildenhall sandbox r Agent e m liblightwood a Application UI e r t Clutter S G Agent GLib System bus Session bus (proxy) (proxy) connman oFono GeoClue 12 Communication with the automotive domain 13 SDK virtual machine Your virtual machine image – Eclipse IDE with plugins – Offline documentation – Sample code – Target simulator – Packaging for App Store 14 Application development support On-line resources – Populated wiki – API documentation – Developer portal for app publication – Developer forum, mailing lists, ... 15 Application development support 16 Application development portal ● SDK download ● Latest documentation ● Upload applications for validation ● App revenue management ● Developer forum 17 Application development portal 18 Application validation ● License compliance ● Ethical and legal compliance ● Robustness checks ● UI/design compliance ● Version compatibility ● Security checks ● Backwards compatibility checks 19 Updates to applications ● Updated versions can be uploaded through the development portal ● Updates through full validation as for first upload ● Deployed to App Store as soon as validation passes 20 Apertis 21 Hands-on session 1) Set up virtual machine in VirtualBox 2) Create your first Apertis application 3) Deploy application to simulator for testing 4) Deploy application to target for testing 5) Upload application to App Store 22 Hands on demo ● Download SDK from appdev.apertis.org https://Appdev.Apertis.org 23 Apertis 24 Apertis Thank you 25.