android++ a cross platform framework
DESCRIPTION
A mobile framework based off Android and written in C++ to be cross-platform compatible.TRANSCRIPT
![Page 1: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/1.jpg)
Android Plus Plus A Cross Platform Framework
![Page 2: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/2.jpg)
A Brief History
• Cocos2d-‐x – Cross Pla6orm Open Source 2D Game Engine
– Good for games – Not as good for view-‐based applicaEons
– Augment?
![Page 3: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/3.jpg)
A Brief History
• Android – Great feature set – Open Source – Support for mulEple screen sizes and resoluEons
– Java and C++ similar – Android wriJen in C/C++
![Page 4: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/4.jpg)
A Brief History
• Android++ Born – Goal: Port a minimal version of Android to C++ – Leverage exisEng MoneyMobile Android project
![Page 5: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/5.jpg)
Android++ • Loopers, and Handlers, and Threads (oh my) – Mindroid Open Source Project – Basic Run Loop – Message Queues – Threading Support
![Page 6: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/6.jpg)
Android++ • Layout Engine – View & ViewGroup – View Hierarchy – Measure & Layout – XML Layouts
![Page 7: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/7.jpg)
Android++ • Widgets
– ViewGroups • FrameLayout • RelaEveLayout • LinearLayout
– Views • ImageView (BJ) • ListView • Custom Views
![Page 8: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/8.jpg)
Android++ • Touch Handling – Touch Traversal – Consuming Touches
![Page 9: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/9.jpg)
Android++
![Page 10: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/10.jpg)
Android++ • Rendering Pipeline
![Page 11: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/11.jpg)
Android++ • Rendering Pipeline
![Page 12: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/12.jpg)
Android++ • Rendering Pipeline
![Page 13: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/13.jpg)
Android++ • Rendering Pipeline
– libpng • Load PNGs naEvely
– Skia • 2D Graphics Library (OS) • WriJen in C++ • Used in Firefox, Chrome, Sublime, and Android
– HWUI • Display List • OpenGL Rendering • Glue for Font Renderer
![Page 14: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/14.jpg)
Android++ • Font Rendering
– Cocos2d-‐x does not do any true font rendering
– Open Source • ICU (Unicode Character Handling) • Har_uzz (Shaping Unicode Characters)
• Freetype (Renders text based on font file)
– Simply Draw Text
![Page 15: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/15.jpg)
Current State
• Port Android MoneyMobile Project • ConEnue work on Android++ framework
![Page 16: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/16.jpg)
DEMO
![Page 17: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/17.jpg)
Benefits
• One Code Base to Rule Them All! – Write once deploy to mulEple pla6orms – Fewer bugs across pla6orms – Bug fixes across pla6orms – Efficient developer usage
• BeJer app parity • Fast and Efficient Feature Rollout
![Page 18: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/18.jpg)
Challenges
![Page 19: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/19.jpg)
Challenges
• Staying true to pla6orm’s look & feel • Differing C libraries per pla6orm • Pla6orm specific features • C++/Java Differences – Memory Mgmt. – Data Structures – Language Features
![Page 20: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/20.jpg)
Roadmap
• Open Source Project • Port framework features
• Port MoneyMobile Android
![Page 21: Android++ A Cross Platform Framework](https://reader033.vdocuments.net/reader033/viewer/2022052618/554bd4e5b4c9058f6c8b4f9c/html5/thumbnails/21.jpg)
QuesEons?