Your SlideShare is downloading. ×
Multithreading in Android
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Multithreading in Android

7,740
views

Published on

shared by Mansoor Mirza

shared by Mansoor Mirza

Published in: Technology, Education

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,740
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
217
Comments
0
Likes
4
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

Transcript

  • 1. Multithreading in Android Ahsen Tahir
  • 2. Talk Outline Android Overview Android Stack Android Development Tools Main Building Blocks (Activity Life Cycle) Threading in Android Multithreading via AsyncTask Class Multithreading via Handler -> MessagePassing & Post() method
  • 3. Android OverviewAwesome Ingredients: Semiconductor Open Source Platform Manufacturers  Apache/MIT License  Third party libraries rewritten Designed for Mobile Devices OHA  Limited Memory, Battery & Speed Mobile Software Comprehensive platform Operators Development Android is owned by Open Handset Alliance (OHA).
  • 4. Android Stack Layers  Linux Kernel  Dalvik Runtime  Native Libraries  Application Framework
  • 5. Android Stack LayersLinux kernel layer Why linux kernel?  Portability  Security  Features Linux kernel 2.6.39 kernel enhancements  Drivers, Pluggable modules, Power management, IPC
  • 6. Android Stack LayersNative Libraries Function Libraries  Webkit, Media framework, SQLite Bionic Libs  Optimized for embedded use: libc Native Servers  Surface flinger(manager),Audio flinger Hardware Abstraction Libraries (HAL)
  • 7. Android Stack LayersAndroid RunTime Core Libraries Java Source Java Source  Mostly Java SE (No AWT & Swing) Code Code  More features Java Compiler Java Compiler Dalvik VM Java Byte Java Byte  Low memory, slow cpu, no swap Code Code space Dex Compiler Execution Dalvik Byte Code Execution Java VM Dalvik VM
  • 8. Android Stack LayersApplication Framework Java Libraries Built for Android Services (Managers)
  • 9. Android DevelopmentDevelopment requirements Android SDKhttp://developer.android.com/sdk/index.html Eclipse IDE for Java Developershttp://www.eclipse.org/downloads/packages/release/helios/sr2 Android Development Pluginhttp://developer.android.com/sdk/eclipse-adt.html
  • 10. Android DevelopmentIDE & Tools Android SDK  Class Library  Emulator and System Images  Documentation and Sample Code  Developer Tools dx – Dalvik Cross-Assembler aapt – Android Asset Packaging Tool adb – Android Debug Bridge ddms – Dalvik Debug Monitor Service Eclipse IDE + ADT plugin  UI creation easier, reduces development time
  • 11. Android DevelopmentProgramming Languages Java C/C++ (Restricted official support)  http://developer.android.com/sdk/ndk/index.html
  • 12. Android Activity Life Cycle Activity -> GUI/Window on screen Activity Life Cycle
  • 13. Threading in Android A Thread is a concurrent unit of execution. A thread has its own call stack for methods being invoked, their arguments and local variables. Each virtual machine instance has at least one main Thread running when it is started; typically, there are several others for housekeeping. The application might decide to launch additional Threads for specific.
  • 14. Threading in Android Threads in the same VM interact and synchronize by the use of shared objects and monitors associated with these objects. There are basically two main ways of having a Thread execute application code.  One is providing a new class that extends Thread and overriding its run() method.  The other is providing a new Thread instance with a Runnable object during its creation. In both cases, the start() method must be called to actually execute the new Thread.
  • 15. Threading in Android Threads share the process resources but are able to execute independently. Applications responsibilities can be separated  main thread runs UI, and  slow tasks are sent to background threads. Particularly useful in the case of a single process that spawns multiple threads on top of a multiprocessor system. In this case real parallelism is achieved. Consequently, a multithreaded program operates faster on computer systems that have multiple CPUs.
  • 16. Multithreading Via AsycTaskUsing the AsyncTask Class AsyncTask enables proper and easy use of the UI thread. This class allows to perform background operations and publish results on the UI thread without having to manipulate threads and/or handlers. An asynchronous task is defined by a computation that runs on a background thread and whose result is published on the UI thread. An asynchronous task is defined
  • 17. Multithreading in AndroidUsing the AsyncTask Class
  • 18. Multithreading Via HandlerHandler allows you to send and process Message and Runnable objects associated with a threads MessageQueue Each Handler instance is associated with a single thread and that threads message queue  (1) to schedule messages and runnables to be executed as some point in the future; and  (2) to enqueue an action to be performed on a different thread than your own. Post(Runnable) & sendMessage(Message)
  • 19. Thanks