[筆記]2013 三月份 SA@Tainan 從 Binder 理解 Android 系統服務的運作原理-台南場

大家好~

小弟這次再度來嘴砲了,似乎有點久沒打blog,這次參與台南場活動.
感謝演講者的熱心分享 ,演講者Jim先生(如有研究android的人應該沒有人不認識的)

演講的PDF 檔案   請見酷學園  活動聚會區  整理之後會釋出

基本上PDF的內容是延續 Jim先生以前在南台科大的分享

http://blog.linux.org.tw/~jserv/archives/2012/03/android_6.html

以下是小弟 簡短的潦草筆記


從大約2008/10/27 研究android 至今

android 有七個虛擬機器  ex: webkit  sqlite  llvm

android 改版速度超快   一年幾乎變了四版

外表運作看起來改變不多,細部其實變動很多.

今天主要探討binder

2D變動最大,目前有加入硬體加速

Binder:heart of Android.

重點在於系統原件之間怎麼互動


舉例:手機如何去控制音量
很多程式都會接觸到.

想瞭解android 內部
可藉由Activity , Service  ,   Content Provider  ,Broadcast  Receiver

瞭解一些基本原則,就比較易掌握.

把撥號器  聯絡人 都當做原件
背景會有一些process 維持系統運作

元件之間的RPC溝通,在android 術語 intents
底層為object invocation
(Binder)

Services 最大困難在於控制

打電話SMS等功能,在通訊過程有很多例外狀況 這些都是困難的.
但是現在有多媒體的簡訊(SMS)
需要一個機制可以去傳送出broadcast 告訴說我需要一個元件支援美一些功能.
用Broadcast  Receiver

content provider

鬧鐘  必須透過其他地方 去驅動Activity Manger Service

Binder IPC/RPC

Why IPC?

Be OS  有特色的   真正的桌面作業系統  在那時有優秀的作業系統  在當時是486電腦

Aandroid 的 OpenBinder 是從be os再去實做出來的

binder 不只是單純一個socket  ,We can implement userspace realtime application with Locked Mutex Method (FUTEX)
Example: Priority Queuing , Priority Inheritance , Robust mutex
UI  thread,      , event loop
adding services
RPC  process 等級
何謂呼叫service?
呼叫  寫一個string 進去 service manger

推薦書籍 侯捷翻譯  COM本質論
RMI
xxxFlinger    =>  xxx負責合成的意思
surfaceflinger  改版超嚴重的   主要就是在處理畫面的

從adb shell 連進去後
dumpsys  gfxinfo
可以藉由binder 來得知做一些系統服務  或是  得知 系統訊息

以上大概是這些  每次感覺看到Jim先生做的簡報  和  演講  都是一種享受啊!
再次感謝Jim先生分享


以上大概是這些  感謝您的觀看



留言