Inside Android Sander Alberink 2-9-2011 6 september 2011 www.humiq.nl
Agenda Intro to Android development
Architecture of the Android OS
Architecture of an android application
Android future developments
About me 6 september 2011 www.humiq.nl Sander Alberink Senior Technical Consultant Android Qt Open Source Working for HUMIQ since 2007 High Tech Embedded Internet 35 years ‘old’ New standards Linux Telecom
Show of hands Who owns an Android phone? 27 juni 2011 www.humiq.nl Who has a shipping application in the Android Market? Who has developed for that Android phone?
What is Android? Open source OS
Developed by Google and Open Handset Alliance
Based on Linux kernel and many open source libraries
Development done in Java
Two flavors AOSP
'With Google'
What Android is not It's not another Linux distribution Userland is completely different It is not another J2ME implementation Uses its own optimized VM: Dalvik
Does not accept Java Bytecode, but only optimized DEX files
Class libraries are similar to Java SE, but not completely compatible
Android anatomy 27 juni 2011 www.humiq.nl
Linux kernel changes Wake-locks Handles Android Power management Binder IPC Inter process communication system
Based on Parcels, allows marshalling objects between processes Ashmem Simpler shared memory implementation
Can re-claim shared memory from a crashed program Out-of-memory killer
Logger Basis of Android Logcat system
Maintains 4 separate log-buffers, exported via adb
Dalvik VM Java interpreter with JIT capability
Concurrent GC since 2.3
16-bit, register-based Java VM is 8-bit, stack-based Loads DEX files Pre-processed .class files, up to half the original size
Optimized for low-memory, low-cpu environment

Introduction to Android Development

Editor's Notes

  • #4 Kort over mij, niet elk punt noemen, gewoon even wie ik ben
  • #16 Met al deze tools kun je nu een project maken… zie volgende sheets (eerst logging en debugging)
  • #17 Als je emulator draait kun je ook de log gegevens realtime bekijken
  • #18 Nu kun je de applicatie al draaien… zie volgende sheet
  • #20 Volgende sheet: Gui builder voor layouts
  • #21 Mention project necessitas
  • #24 Bionic libc Libc/OpenGL ES/
  • #25 Bionic libc Libc/OpenGL ES/
  • #26 Bionic libc Libc/OpenGL ES/