• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Android ipm 20110409
 

Android ipm 20110409

on

  • 12,022 views

Inter-process method invocation using Binder in Android.

Inter-process method invocation using Binder in Android.

Statistics

Views

Total Views
12,022
Views on SlideShare
4,551
Embed Views
7,471

Actions

Likes
8
Downloads
386
Comments
1

6 Embeds 7,471

http://blog.kmckk.com 7420
http://translate.googleusercontent.com 18
url_unknown 14
http://www.slideshare.net 13
https://twitter.com 4
http://webcache.googleusercontent.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Android ipm 20110409 Android ipm 20110409 Presentation Transcript

    • Inter-process method invocation in Android 2011.4.9 Tetsuyuki Kobayashi 1
    • Who am I? 20+ years involved in embedded systems  10 years in real time OS, such as iTRON  10 years in embedded Java Virtual Machine  Now GCC, Linux, QEMU, Android, … Blogs  http://d.hatena.ne.jp/embedded/ (Personal)  http://blog.kmckk.com/ (Corporate) Twitter  @tetsu_koba 2
    • Todays topic inter process communications in Android Inter process method invocation using Binder AIDL Example of inter process method invocation 3
    • Inter Process Communication Activity Activity Window Alarm Manager Manager Manager Kernel 4
    • Abstraction of Inter Process Communication More abstract Intent AIDL Binder No need to use Binder directly. AIDL requires multi-thread programming 5 In most case Intent is easy and powerful enough.
    • Invoking method via interface caller callee In the same process 6
    • Inter-process invocation caller interfacecaller interface How?callee interface callee 7
    • Inter-process invocation caller interface Proxycaller interface Binder in kernel Binder Threadcallee Stub interface callee 8
    • android.os.Parcel Delivering arguments of method”flatten” ”unflatten” transmit 9
    • Describing in UML ... <<interface>> Proxy Stub 10
    • Describing in UML ... caller <<interface>> calls implements Proxy Stub extends callee 11
    • AIDLAuto generated from .aidl file caller <<interface>> Proxy Stub callee 12
    • Use case: Who calls ”onPause” in Activity? 2:Send message Activity by Handler 3:”onPause” is called queue Looper in main thread Activity Manager Main Main Binder Thread Thread Binder Thread #1 Thread #1 Kernel 1:Call ”schedulePauseActivity” across process 13
    • Binder /etc/binder Not for general purpose. Tuned for specific transaction. Multi-thread aware  Have internal data per thead  (CF. Socket have internal data per fd.) Not use ”write” and ”read”. Write and read at once by ”ioctl”. 14
    • Transaction of Binder Process A and B have different memory space. They can not see each other.Kernel Process B Process A Binder Copy memory by copy_from _user Then, wake up process BKernel Process B Binder Process A Copy memory by copy_to_user 15
    • See also rd 3 session of Yokohama Android Platform club  http://www.yokohama.android-pf.org/study/dai-san-kai-benkyou-kai 1st session of Android SDK work group  http://www.android-group.jp/index.php?%CA%D9%B6%AF%B2%F1%2FAndr KMC blog  http://blog.kmckk.com/archives/3611344.html  http://blog.kmckk.com/archives/3613707.html  http://blog.kmckk.com/archives/3627888.html  http://blog.kmckk.com/archives/3645070.html  http://blog.kmckk.com/archives/3647635.html  http://blog.kmckk.com/archives/3617229.html 16
    • Q&AThank you for listening!Any comments to blogs are welcome. 17