Android CameraWord文档格式.docx
- 文档编号:15392022
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:12
- 大小:568.35KB
Android CameraWord文档格式.docx
《Android CameraWord文档格式.docx》由会员分享,可在线阅读,更多相关《Android CameraWord文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
frameworks/base/core/jni/android_hardware_Camera.cpp
這部份內容編譯成目標是libandroid_runtime.so。
主要的頭檔在以下目錄中:
frameworks/base/include/ui/
Camera底層庫在以下目錄中:
frameworks/base/libs/ui/
這部份的內容被編譯成庫libui.so。
Camera服務部份:
frameworks/base/camera/libcameraservice/
這部份的內容被編譯成庫libcameraservice.so。
爲了實現Camera,在最底層還需要一個硬體相關的Camer庫(例如通過調用videoforlinux驅動程式和Jpeg編碼程式實現)。
這個庫將被Camera的服務庫libcameraservice.so調用。
在Camera系統的各個庫中,libui.so位於核心的位置,它對上層提供的介面主要是Camera類,類libandroid_runtime.so通過調用Camera類提供對JAVA的介面,並且實現了android.hardware.camera類。
libcameraservice.so是Camera的服務器程式,它通過繼承libui.so的類實現服務器的功能,並且與libui.so中的另外一部份內容通過進程間通訊(即Binder機制)的方式進行通訊。
libandroid_runtime.so和libui.so兩個庫是公用的,其中除了Camera還有其他方面的功能。
Camera部份的頭文件在frameworks/base/include/ui/目錄中,這個目錄是和libmedia.so庫原始檔案的目錄frameworks/base/libs/ui/相對應的。
圖1
2.Camera的調用流程:
圖2
Android1.6中的修改:
1.應用層的修改:
在Camera的預覽框裏,去除圖片右邊多餘的黑色圖塊。
圖3
2.frameworks/base下的修改:
a.引進了0xlab的部份代碼,主要添加了對視頻格式的轉化——yuyv422到yuv420。
b.然後發現CameraRecorder依然不能錄製,追蹤代碼至soundrecorder,參考0xlab對AudioFlinger的修改,做如下處理,去掉了對frameCount的判斷條件(由於x86系統使用的聲道為默認聲道,framCount計算的結果與原來的不同),使程式繼續執行。
圖4
c.將格式轉化引入CameraHardware.cpp,並使錄像時能夠正常預覽圖像:
圖5
改變拍照的機制,防止拍得的圖片變黑,原機制:
停下預覽線程,拍照,再啟動預覽線程;
新機制:
不停止預覽線程,新初始化一Camera,並獲取照片,然後關閉Camera。
圖6
d.調節Camera的圖像大小與初始大小一致(352*288),下面各處修改均是對圖像尺寸參數的修改:
圖7
圖8
e.在Camera照相時,tmp.jpg由於權限問題無法讀取,導致無法保存拍好的相片,因此將sdcard/tmp.jpg
修改至/data/tmp.jpg。
圖9
Android2.0中的修改:
1.Frameworks/base下的修改:
a.修改視頻圖像尺寸(圖像實際尺寸只有352*288,太大的話會造成圖像邊緣出現黑色色塊):
圖10
b.在android2.0中,camara的LayerBuffer採用了其他機制實現,但該機制在X86系統上存在問題,因此參考android1.6做了復原的修改。
圖11
圖12
c.添加視頻轉化函數(yuv422_to_yuv420),和android1.6大致差不多;
d.仍舊是SoundRecorder出問題,導致CameraRecorder無法使用,SoundRecorder在x86上出問題的主要原因是x86系統使用的是默認聲道,而在AudioSystem.h裏缺少這項定義:
圖13
2.
packages/apps下的修改:
a.解決了SoundRecorder錄製的檔用其他程式無法打開的問題,這個問題主要是檔權限的設置:
首先在AndroidManifest添加了sharedUserId,如同用戶組一樣,同時添加了對短信讀取的權限。
圖14
其次,在java代碼裏為即將保存的錄音檔添加讀寫權限;
圖15
下面的修改為修改應用的用戶組:
圖16
b.
修改Camara應用程式框架尺寸:
下麵是Camera應用得框架(fill_parent為填充整個框架,wrap_content為適應當前視圖大小)
圖17
下麵是CameraRecorder應用的框架:
圖18
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android Camera