• Like
Introduction to Android Development
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Introduction to Android Development

  • 2,306 views
Published

An introduction to Android development, as given internally to collegues

An introduction to Android development, as given internally to collegues

Published in Technology , Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,306
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
139
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

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

Transcript

  • 1.
      Inside Android Sander Alberink 2-9-2011
      6 september 2011
      www.humiq.nl
    • 2. Agenda
      • Intro to Android development
      • 3. Architecture of the Android OS
      • 4. Architecture of an android application
      • 5. Android future developments
    • 6.
        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
      • 7.
          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?
        • 8. What is Android?
          • Open source OS
          • 9. Developed by Google and Open Handset Alliance
          • 10. Based on Linux kernel and many open source libraries
          • 11. Development done in Java
          • 12. Two flavors
        • 14. 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
            • 15. Does not accept Java Bytecode, but only optimized DEX files
            • 16. Class libraries are similar to Java SE, but not completely compatible
        • 17.
            Android anatomy
            27 juni 2011
            www.humiq.nl
          • 18. Linux kernel changes
            • Wake-locks
              • Handles Android Power management
            • Binder IPC
              • Inter process communication system
              • 19. Based on Parcels, allows marshalling objects between processes
            • Ashmem
              • Simpler shared memory implementation
              • 20. Can re-claim shared memory from a crashed program
            • Out-of-memory killer
            • 21. Logger
              • Basis of Android Logcat system
              • 22. Maintains 4 separate log-buffers, exported via adb
          • 23. Dalvik VM
            • Java interpreter with JIT capability
            • 24. Concurrent GC since 2.3
            • 25. 16-bit, register-based
              • Java VM is 8-bit, stack-based
            • Loads DEX files
              • Pre-processed .class files, up to half the original size
              • 26. Optimized for low-memory, low-cpu environment
              • 27. Uses a different instruction set than Java VM
              • 28. Contains multiple .class files
              • 29. Class-files are stored uncompressed (execution speed)
            • Core libraries based on Apache Harmony project
          • 30.
            • Zygote process preloads typical (approx. 1800) classes and dynamic link libraries so that children start quickly.
            • 31. Copy-on-write
              • Only when new process writes page, new page is allocated.
              • 32. All pages not be written are shared among all zygote children.
            • Exec system call is not used in zygote.
              • Exec wipes the page mapping table of the process.
              • 33. It means exec discards zygote cache.
            • Zygote is running as UID=0 (root). After forking child process, its UID is changed by setuid system call.
            Zygote processes
          • 34. Intent system
            • Communication between OS and applications via Intents
            • 35. OS resolves requested action (e.g. 'edit contact') with all registered Intent receivers
            • 36. Highly versatile and modular
            • 37. Allows changing out default functionality for alternatives
          • 38. What is an Android application
            • Collection of building blocks
            • Glued together with XML-files
            • 42. Controlled by manifest file
            • 43. Run as a separate Linux process, in a sandbox
            • 44. Tight security model
          • 45. Activity lifecycle
            • An activity has a defined life-cycle
            • 46. Application can be killed by the Android OS if memory is needed
            • 47. State changes are triggered by Android OS
          • 48. Development environment Android SDK contains the following
            • Android platform libraries
            • 49. API for different android versions
            • 50. Full emulator for system
            • 51. ADB debugger bridge
            • 52. Unit testing environment
            • 53. Eclipse plugin
            • 54. Tooling for performance tuning etc
          • 55.
              Intro development on Android
              What does the Eclipse plugin offer?
              6 september 2011
              www.humiq.nl
            • 63.
                6 september 2011
                www.humiq.nl
                  Inleiding ontwikkeling op Android
              • 64.
                  Intro development on Android
                  6 september 2011
                  www.humiq.nl
                • 65. Different views
                • 66.
                    Intro development on Android
                    6 september 2011
                    www.humiq.nl
                  • 75.
                      Android Future developments
                    • Android Open Accessory Protocol
                    • 76. Project Tungsten/Android @ Home
                    • 77. Google TV
                    • 78. Android Native development
                      27 juni 2011
                      www.humiq.nl
                    • 79.
                        Android Open Accessory Protocol
                      • New way to develop accessories for a telephone
                      • 80. Gives the possibility for new accessories and applications for our mobile phones
                      • 81. For Android 3.1:
                        • Phones is USB Host (hookup any gamepad and game on!)
                      • For Gingerbread 2.3.4:
                        • Phone is a USB slave, accessory delivers power.
                      • Protocol is bi-directional
                        27 juni 2011
                        www.humiq.nl
                      • 82.
                          Project Tungsten
                        • Android @Home
                        • 83. Nieuwe klasse Android devices
                        • 84. Geen UI, wel netwerk en audio uitgangen
                        • 85. … En mogelijkheden tot home-control
                        • 86. Nieuw protocol (yet another...)
                        • 87. Idee is goed: zaken niet via een adapter controleren, maar direct.
                        • 88. Low-cost, low maintenance.
                          27 juni 2011
                          www.humiq.nl
                        • 89.
                            Android Native Development Kit
                          • Development in C/C++
                          • 90. Originally only subroutines in C/C++
                          • 91. Only suitable for computationally expensive routines (physics, graphical rendering)
                          • 92. Now: fully native applications possible
                          • But beware:
                            • No POSIX-compliant C-library
                            • 93. No kernel headers
                            • 94. Straightforward porting of software not always possible
                            27 juni 2011
                            www.humiq.nl
                          • 95.
                              Android Native Development Kit 2
                              27 juni 2011
                              www.humiq.nl
                            • 96.
                                Google TV
                              • Android, on your TV
                              • 97. Version 2.0 to be introduced, based on Honeycomb
                              • 98. Finally App-store enabled.
                              • 99. Coming to Europe in 2012
                                27 juni 2011
                                www.humiq.nl
                              • 100.
                                  Thank you for your attention! Questions?
                                  27 juni 2011
                                  www.humiq.nl