Android

1,486 views

Published on

Introduction to the Android platform

Published in: Technology
  • Be the first to comment

Android

  1. 2. Agenda <ul><ul><li>Wat is Android </li></ul></ul><ul><ul><li>Waarom Android </li></ul></ul><ul><ul><li>Waaruit bestaat een applicatie </li></ul></ul><ul><ul><li>Zelf aan de slag / voorbeelden </li></ul></ul>
  2. 3. Wat is het <ul><ul><li>Een modern operating systeem voor mobiele apparaten </li></ul></ul><ul><ul><li>Linux kernel 2.6  </li></ul></ul><ul><ul><li>Java 5 compatible VM </li></ul></ul><ul><ul><li>Open Source </li></ul></ul><ul><ul><li>Google / Open Handset Alliance </li></ul></ul>
  3. 4. Waarom is het interessant? <ul><ul><li>Open platform </li></ul></ul><ul><ul><li>Niet device gebonden </li></ul></ul><ul><ul><li>Open Source (http://android.git.kernel.org/) </li></ul></ul><ul><ul><li>Java </li></ul></ul><ul><ul><li>Mobiel! </li></ul></ul>
  4. 5. de android stack  
  5. 6.   <ul><li>  </li></ul>
  6. 7. Java Framework <ul><ul><li>J2SE ipv J2ME </li></ul></ul><ul><ul><li>Dalvik VM: snelle register gebaseerde VM </li></ul></ul><ul><ul><ul><li>eigen bytecode (.java => .class => .dex) </li></ul></ul></ul><ul><ul><ul><li>geen JIT </li></ul></ul></ul><ul><ul><li>modular app architecture </li></ul></ul><ul><ul><ul><li>screens & services ipv black boxes </li></ul></ul></ul><ul><ul><li>Andere applicaties als 'service' benaderbaar </li></ul></ul><ul><ul><li>Apps draaien in hun eigen proces </li></ul></ul><ul><ul><li>Achtergrond processen (!!) </li></ul></ul><ul><ul><li>Alternatieve frameworks mogelijk </li></ul></ul>
  7. 8. applicaties  
  8. 9.   <ul><li>myapp.apk één of meer activities AndroidManifest.xml Views Layouts Intents & IntentReceivers Permissies Services Notifications Content providers </li></ul>
  9. 10. Een applicatie is dus een verzameling activities die gebruik maken van services, beschikken over resources en praten met de hardware.
  10. 11. Activity lifecycle <ul><li>  </li></ul>
  11. 12. views  
  12. 13. <ul><ul><li>Rijke Java UI API </li></ul></ul><ul><ul><ul><li>layouts en widgets </li></ul></ul></ul><ul><ul><li>Gericht op 'maatwerk' </li></ul></ul><ul><ul><ul><li>inherit and override a base widgets </li></ul></ul></ul><ul><ul><ul><li>combine existing widgets </li></ul></ul></ul><ul><ul><ul><li>fully draw yourself </li></ul></ul></ul><ul><ul><ul><ul><li>View::onDraw(Canvas canvas) </li></ul></ul></ul></ul><ul><ul><ul><li>9-Patch Bitmaps </li></ul></ul></ul><ul><ul><li>Ontworpen voor 'alternatieve' controllers </li></ul></ul><ul><ul><ul><li>padmode, touchmode </li></ul></ul></ul><ul><ul><ul><li>context menu with a long touch </li></ul></ul></ul><ul><ul><li>Animation framework  </li></ul></ul><ul><ul><li>OpenGL </li></ul></ul><ul><ul><li>Framework voor preferences </li></ul></ul><ul><ul><li>Skinning </li></ul></ul><ul><li>  </li></ul>
  13. 14. controllers en sensors  
  14. 15.   <ul><ul><li>GPS </li></ul></ul><ul><ul><li>Beweging </li></ul></ul><ul><ul><li>Kompas </li></ul></ul><ul><ul><li>Camera </li></ul></ul><ul><ul><li>Thermometer </li></ul></ul>
  15. 16. Performance? <ul><ul><li>Objecten maken is duur </li></ul></ul><ul><ul><li>Pas op je scopes! </li></ul></ul><ul><ul><li>Variabelen goedkoper dan object fields (bijv: array.length) </li></ul></ul><ul><ul><li>Final, final, final! </li></ul></ul><ul><ul><li>Virtual ipv Inteface (ArrayList list = new ArrayList()) </li></ul></ul><ul><ul><li>Geen getters en setters... maak instance viariabelen final en public </li></ul></ul><ul><ul><li>Native methods waar mogelijk (substring, indexOf) </li></ul></ul>
  16. 17. Aan de slag <ul><ul><li>installeer JDK 1.5 </li></ul></ul><ul><ul><li>installeer Android SDK </li></ul></ul><ul><ul><ul><li>Tooling zoals debugger, file sync, screen dumper </li></ul></ul></ul><ul><ul><ul><li>Emulator </li></ul></ul></ul><ul><ul><ul><li>Eclipse design plugins </li></ul></ul></ul><ul><ul><li>installeer eclipse </li></ul></ul><ul><ul><li>bekijk SDK docs </li></ul></ul><ul><ul><li>bekijk de voorbeelden en API demos  </li></ul></ul><ul><ul><ul><li>let op, véél voorbeelden op het web gebruiken oudere versies van de SDK </li></ul></ul></ul>
  17. 18. voorbeeld: Hello World!  
  18. 19. voorbeeld: tw33t0r <ul><ul><li>messaging client </li></ul></ul><ul><ul><li>maakt gebruik van de twitter api </li></ul></ul><ul><ul><li>background service voor notificaties </li></ul></ul><ul><ul><li>offline storage in SQLLite </li></ul></ul><ul><li>  </li></ul><ul><li>         ==> www.tw33t0r.com </li></ul>
  19. 21. Cool: <ul><li>Wikitude AR Travel Guide:   </li></ul><ul><li>http://www.youtube.com/watch?v=tpaJBu4BEuA </li></ul>
  20. 23. Owja, de Android Market... <ul><ul><li>Bestaat sinds oktober '08 </li></ul></ul><ul><ul><li>Sinds februari '09 betaalde apps in de US/UK  </li></ul></ul><ul><ul><ul><li>Google Checkout system </li></ul></ul></ul><ul><ul><li>$25 registration fee per developer </li></ul></ul><ul><ul><li>developer krijgt 70% van de verkopen </li></ul></ul><ul><ul><li>prijs moet tussen $0.99 - $200 </li></ul></ul><ul><ul><ul><li>geen &quot;I'm rich!&quot;-apps </li></ul></ul></ul><ul><ul><li>13 jaar of ouder </li></ul></ul><ul><ul><li>Geld terug binnen 1 dag </li></ul></ul><ul><ul><li>Geen 'explicit' content </li></ul></ul><ul><ul><li>Upgrade systeem </li></ul></ul><ul><ul><li>User ratings </li></ul></ul><ul><ul><li>Uninstall percentage </li></ul></ul>

×