21
Android Plus Plus A Cross Platform Framework

Android++ A Cross Platform Framework

Embed Size (px)

DESCRIPTION

A mobile framework based off Android and written in C++ to be cross-platform compatible.

Citation preview

Page 1: Android++ A Cross Platform Framework

Android Plus Plus A Cross Platform Framework

Page 2: Android++ A Cross Platform Framework

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

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

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

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

Android++  •  Layout  Engine  – View  &  ViewGroup  – View  Hierarchy  – Measure  &  Layout  – XML  Layouts  

Page 7: Android++ A Cross Platform Framework

Android++  •  Widgets  

–  ViewGroups  •  FrameLayout  •  RelaEveLayout  •  LinearLayout  

–  Views  •  ImageView  (BJ)  •  ListView  •  Custom  Views  

Page 8: Android++ A Cross Platform Framework

Android++  •  Touch  Handling  – Touch  Traversal  – Consuming  Touches  

Page 9: Android++ A Cross Platform Framework

Android++  

Page 10: Android++ A Cross Platform Framework

Android++  •  Rendering  Pipeline  

Page 11: Android++ A Cross Platform Framework

Android++  •  Rendering  Pipeline  

Page 12: Android++ A Cross Platform Framework

Android++  •  Rendering  Pipeline  

Page 13: Android++ A Cross Platform Framework

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

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

Current  State  

•  Port  Android  MoneyMobile  Project  •  ConEnue  work  on  Android++  framework  

Page 16: Android++ A Cross Platform Framework

DEMO  

Page 17: Android++ A Cross Platform Framework

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

Challenges  

Page 19: Android++ A Cross Platform Framework

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

Roadmap  

•  Open  Source  Project  •  Port  framework  features  

•  Port  MoneyMobile  Android  

Page 21: Android++ A Cross Platform Framework

QuesEons?