Android goes reading


Published on

Running android on an eInk device? Does this sound like a good plan? We did exactly that and we'll talk about the experiences we made during this project. We'll show parts of the product we build, and we'll have a look at the changes we made on the system level as well as tweaks on the framework side. You'll hear how a we made the applications for this device and how this work was very different from a usual android-App development. Join us and see if android does a good job powering our eInk device.

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Android goes reading

  1. 1. MobileSolutionsAndroid goes readingMobileSolutions
  2. 2. MobileSolutionsHistoryFrom first contact to Go Live2Bernhard Hochstätter, Dominik Helleberg, Michael KrümmlingFirst contact12/2011Contract12/2012Go Live03/2013Start pitch06/2012
  3. 3. MobileSolutionsMobile Solutions3Bernhard Hochstätter, Dominik Helleberg, Michael Krümmling§  We offer solutions forapplication and softwaredevelopment§  We support all the way – fromthe first idea until go-live andeven afterwards§  We assemble the best teamaccording to your specific needs„Software developmentof mobile applications(Apps)on all current platforms(iOS, Android, WP7) andplatform independentwith HTML5.“„Deployment of mobileapplications for theplatforms iOS,Android,WindowsPhone andBlackBerry.“What we do… Our ProductsApp DeploymentApp DevelopmentWe are hiring!
  4. 4. MobileSolutionsAndroid goes readingReader Application DevelopmentMobileSolutions
  5. 5. MobileSolutionsAgenda1.  Android with changed conditions2.  Android with new challenges3.  Clean drawing4.  Android without animations5.  Android without Settings App6.  New challenges for testing5Bernhard Hochstätter, Dominik Helleberg, Michael Krümmling
  6. 6. MobileSolutionsAndroid with changed conditions§  PagePlace Reader App as foundation§  Supports all Android Smartphones and Tablets but no eInk Device§  Reader Application supports only one device à no devicediversity§  One resolution§  One display size§  One aOS version (Android 2.3.3)§  No device specialities§  Unlimited rights and possibilities§  Using any permission§  Less restricted Android SDK§  System Application6Bernhard Hochstätter, Dominik Helleberg, Michael Krümmling
  7. 7. MobileSolutionsAndroid with new challenges§  challenges due to hardware§  eInk display with only 16 grey shades, 4 fps and ghosting susceptibility§  Specific performance characteristics§  Limited key availability§  Optimise battery lifetime up to 7 weeks§  challenges due to system environment§  Being the only application on the device§  Being Homescreen§  Being Settings App§  Handle all important system events7Bernhard Hochstätter, Dominik Helleberg, Michael Krümmling
  8. 8. MobileSolutionsClean drawing§  Drawing problems with eInk:§  Switching between screens§  Ghosting of dialogs§  Page turning§  Time delays between view and display§  System was enhanced with new functionality forscreen refresh (Java and native)§  “The triangle of clean drawing”§  Final solution for the switch between the screens:§  Custom view that handles drawing in every screen§  Reduce ghosting through multistep process and screeninteraction8Bernhard Hochstätter, Dominik Helleberg, Michael KrümmlingSpeed GhostingFlickering“The triangle of clean drawing”
  9. 9. MobileSolutionsAndroid without animations§  Custom view for lists and grids§  No scrolling§  Navigation through paging§  Web Shop§  No scrolling§  Enhanced interfaces (e.g. control thedisplay from Website)§  Replace 2D and 3D animationsfrom application9Bernhard Hochstätter, Dominik Helleberg, Michael Krümmling
  10. 10. MobileSolutionsAndroid without Settings App§  Settings App not visible on the device§  Reader has to offer important settings§  Handle WiFi§  Adoption and customization of nativeimplementation from Android 2.3.3§  Setting system time§  Setting brightness of frontlight§  Setting timeout delays§  Factory reset§  Managing battery§  Managing system updates§  Handling internal and external storage10Bernhard Hochstätter, Dominik Helleberg, Michael Krümmling
  11. 11. MobileSolutionsNew challenges for testing§  New test requirements coming up besidesapplication- and integration tests§  Complex investigations and benchmarkswere made§  Current measurements on the device§  Performance benchmarks and comparisons tocompetitors products§  Current measurements during over 10.000 pageturns in the reader§  We had to find new testing procedures11Bernhard Hochstätter, Dominik Helleberg, Michael Krümmling“Manekineko”
  12. 12. MobileSolutionsAndroid goes readingSystem DevelopmentMobileSolutions
  13. 13. MobileSolutionsSystem developmentHow to work inside the Droid§  7 GB Source§  Compile Time ~ 45 minutes§  „Deployment Time“ ~ 5-10 minutes§  Dependencies ususally fail at runtime§  You can change everything... Maybeyou shouldn‘t ;)13Bernhard Hochstätter, Dominik Helleberg, Michael Krümmling
  14. 14. MobileSolutionsDownsizing/Boot-time tuningHow a droid comes to life....bootloaderkernelinitservicemanagerzygotedaemonsbootanimiationSystemServerPackageManagerActivityManagerPowerManager...launcher14Bernhard Hochstätter, Dominik Helleberg, Michael Krümmling
  15. 15. MobileSolutionsDownsizing/Boot-time tuningHow a droid comes to life....15Bernhard Hochstätter, Dominik Helleberg, Michael Krümmling
  16. 16. MobileSolutionsDownsizing/Boot-time tuningHow a droid comes to life....bootloaderkernelinitservicemanagerzygotedaemonsbootanimiationSystemServerPackageManagerActivityManagerPowerManager...launcher16Bernhard Hochstätter, Dominik Helleberg, Michael Krümmling
  17. 17. MobileSolutionsPower ManagementLet the droid sleep...17Bernhard Hochstätter, Dominik Helleberg, Michael Krümmling
  18. 18. MobileSolutionsPower ManagementLet the droid sleep.../sys/devices/system/cpu/cpuX/cpufreq/stats/time_in_state    350000  174343  700000  248177  920000  47966  1200000  57356      deepSleepTime  =  SystemClock.elapsedRealtime()  -­‐  (Σ  (all  cpu_states));  deepSleepTime  =  SystemClock.elapsedRealtime()  -­‐  SystemClock.uptimeMillis();  18Bernhard Hochstätter, Dominik Helleberg, Michael Krümmling
  19. 19. MobileSolutionsPower ManagementLet the droid sleep...$  adb  shell  dumpsys  batteryinfo    ....  Statistics  since  last  charge:      System  starts:  0,  currently  on  battery:  false      Time  on  battery:  3h  13m  20s  916ms  (0,2%)  realtime,  1h  23m  39s  681ms  (0,1%)  uptime      Total  run  time:  81d  20h  13m  10s  836ms  realtime,  33d  20h  15m  30s  182ms  uptime,        Screen  on:  21m  34s  334ms  (11,2%),  Input  events:  0,  Active  phone  call:  0ms  (0,0%)      Screen  brightnesses:  dark  2m  46s  112ms  (12,8%),  dim  9m  53s  192ms  (45,8%),              medium  8m  32s  673ms  (39,6%),  light  22s  356ms  (1,7%)      Kernel  Wake  lock  "PowerManagerService":  1h  4m  50s  972ms  (1180  times)  realtime      Kernel  Wake  lock  "main":  36m  28s  908ms  (14  times)  realtime      Kernel  Wake  lock  "mipi_link":  33m  4s  670ms  (2137  times)  realtime      Kernel  Wake  lock  "radio-­‐interface":  16m  30s  724ms  (808  times)  realtime      Kernel  Wake  lock  "gps-­‐lock":  11m  1s  604ms  (5  times)  realtime      Kernel  Wake  lock  "wlan_rx_wake":  9m  3s  70ms  (186  times)  realtime      Kernel  Wake  lock  "alarm_rtc":  4m  30s  287ms  (448  times)  realtime      Kernel  Wake  lock  "BTLowPower":  3m  13s  600ms  (221  times)  realtime      Kernel  Wake  lock  "musb_autosuspend_wake_lock":  31s  998ms  (594  times)  realtime      Kernel  Wake  lock  "wlan_wake":  31s  786ms  (17901  times)  realtime  ...  19Bernhard Hochstätter, Dominik Helleberg, Michael Krümmling
  20. 20. MobileSolutionsThanks for Attention!MobileSolutions