Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2.5 Years to put a webpage on a tablet

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

2.5 Years to put a webpage on a tablet

A Journey into the depths of the Android Platform

Avatar for Nick Marfleet

Nick Marfleet

December 02, 2014

Other Decks in Technology

Transcript

  1. How  it  took  us  2.5  years  to  put   HTML

     content  on  a  tablet     -­‐  A  journey  into  the  depths  of   Android  
  2. “There’s  no  way  we  want  to  take   responsibility  for

     the  Android  OS  -­‐   it’ll  be  a  rabbit  hole”   -­‐  past  me  
  3. Don’t  let  me  out,     don’t  prompt  me  for

     anything       No  navigaGon  bar   No  status  bar   No  popups   No  noGficaGons   No  toasts  
  4. Community  driven,  but  one   primary  maintainer   Chih-­‐Wei  Huang

      Run  by  Intel.    Opensource,   but  not  community  focussed   Android-­‐x86.org   01.org/android-­‐ia  
  5. System  Images   •  Kernel   •  Exactly  what  is

     says  –  it’s  the  kernel   •  Ramdisk.img   •  Contains  init.   •  System.img   •  -­‐  ‘everything  else’  –  the  Android  layer  
  6. Other  Stuff   •  Proxy  networks   •  Android  STILL

     doesn’t  support   authenRcated  HTTP  proxies  –  so  we  built   it  (twice)   •  Scheduling  naRve  apps   •  Peripherals   •  Sonar  sensors  /  Lap  Counters  /  USB  lights   •  AllJoyn  Support  
  7. Lessons  Learned   •  Use  the  code  as  a  reference,

     not  the  docs     •  (many  hidden  methods  etc)   •  Mission  criGcal  code  should  not  be  in  the  ApplicaGon  layer!   •  Move  it  to  the  naGve  layer.   •  Hardware  manufacturers  have  a  penchant  for  inflicGng  pain   •  They  don’t  like  making  things  easy!   •  Consumer  devices  expect  user  input  /  have  many  quirks   •  People  have  already  thought  about  this  stuff!   •           hardware  watchdogs  etc.   •  Google  like  to  do  things  *almost*  the  same  but  not  quite   •  Linux  kernel   •  bionic  -­‐  their  version  of  c  library   •  custom  init  service   •  bluedroid