編輯:Android開發教程
我對Android Camera的認識,會陸續的全部寫下來,逐步完善大腦裡的Camera網絡。
1.Android Camera的2個獨立進程
Android Camera 是C/S架構已經被說爛了,但是我還是要把這條記下來,因為我時常會腦袋短路,在client端做些無用的勞動希望來解決問題,那麼這個希望真的就是奢望了。
核心自然不用說,是service端。service進程一直負責接收底層Camera 驅動傳來的數據,然後傳給surface顯示出來。
Client端也不是吃干飯的。Client進程雖然不曾擁有任何實質的Camera數據,但是service端為它提供了豐富的接口,它可以輕松的獲得Camera數據的地址,然後處理這些數據。
最後再補一句廢話,Client和Service是通過Binder通信的。
2.Camera和ICamera
剛開始接觸Camera的時候,苦於理不清Camera的工作流程,當我看著看著Camera,摁著鍵盤Ctrl+】跳來跳去,跳到ICamera出現的時候,頓時心裡只有一種感覺,這不是坑爹麼!
其實,靜下心來,仔細分析一下,也不是很坑爹 >_< ...
ICamera,ICameraClient,ICameraService 全部都屬於Android Camera 的 Client端,他們的任務就是負責與Android Camera 的Service端通信。
嗯…還得使下這個圖,請注意,我們一直活躍在Android Camera 的 Client端。
按照上圖的流程,一路哐哐哐下來,到了Camera.cpp,終於和ICamera扯上關系了。對於上層應用來說,Camera.cpp是最為直接的函數調用和實現。繼承於ICameraClient類,典型的Client端的接口實例。
千萬不要怕暈,事實是這樣的: sp<Camera> camera = Camera::connect();
Camera類通過sp<ICamera> mCamera對象,調用函數。
達到的效果就是好像是在直接調用CameraService::Client的mClient的函數們。
對於那些想要在Android設備上體驗Skyfire帶來的個性化互聯網體驗的人們來說,這裡有個好消息。在被Opera以1.55億美元收購之後,Skyfire發布了Hori
最近有幸負責參與開發公司的CMPP短信網關程序,采用的是Apache Mina框架實現。通過該項目對Socket通 信、長連接有了更深一步的理解,於是就想試試將Mina用
As described in the android documentation, the SDK level (integer) the phone is runni
簡介如今移動設備的功能已經強大到難以置信,比眾多開發人員用來編寫首個程序的桌面計算機還 要強大得多。因此,大家很容易忘記移動設備仍然屬於資源有限的環境。開發移動應用程序時