版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
智能移動(dòng)終端應(yīng)用開(kāi)發(fā)設(shè)計(jì)報(bào)告(2013/2014學(xué)年第2學(xué)期)題目: 安卓照相機(jī)軟件學(xué)院: 信息與電氣工程學(xué)院專 業(yè): 通信工程姓 名: 劉鵬晨學(xué)號(hào):110312217設(shè)計(jì)成績(jī): 2014年5月15日
目錄TOC\o"1-5"\h\z一、 軟件需求分析 1\o"CurrentDocument"二、 軟件總體設(shè)計(jì) 2\o"CurrentDocument"三、 關(guān)鍵技術(shù)分析 3\o"CurrentDocument"四、 軟件詳細(xì)設(shè)計(jì) 4\o"CurrentDocument"五、 軟件測(cè)試方案 5\o"CurrentDocument"驅(qū)動(dòng)測(cè)試 7HAL層測(cè)試 9\o"CurrentDocument"拍攝測(cè)試 10\o"CurrentDocument"硬件測(cè)試 11\o"CurrentDocument"六、 實(shí)驗(yàn)總結(jié) 12\o"CurrentDocument"七、 參考文獻(xiàn) 12安卓照相機(jī)軟件設(shè)計(jì)方案一、軟件需求分析一、軟件需求分析我們?cè)倥恼盏臅r(shí)候總是會(huì)遇到這些情況,在拍照的時(shí)候時(shí)不時(shí)地有人闖入你的鏡頭,影響照相效果;有一張很美的照片但是因?yàn)槟承┍尘暗脑?,?dǎo)致照片拍出來(lái)的效果不怎么好。所以有一款可以直接忽略那些不和諧的因素是多么美好的一件事啊!不僅如此,由于現(xiàn)在手機(jī)普遍性和其不安全性,我們手機(jī)的數(shù)據(jù)泄露額越來(lái)越嚴(yán)重了,而且也有一部分人可以通過(guò)照片來(lái)窺探我們的某些隱私,讓我們感覺(jué)自己很不安全。這是安卓智能手機(jī)的開(kāi)源特性所致。尤其是今年央視315晚會(huì)曝光手機(jī)隱私泄露之后。人們?cè)桨l(fā)迫切地想要保護(hù)自己的隱私不被侵害,越發(fā)迫切地保護(hù)好自己的隱私,越發(fā)迫切地不允許別人通過(guò)其他方法來(lái)窺探我們的隱私,更不能通過(guò)手機(jī)照片的某些背景泄露了我們的隱私!在這種情況下,手機(jī)馬賽克照相機(jī)應(yīng)運(yùn)產(chǎn)生,它可以在拍照的時(shí)候屏蔽一些突然闖入你鏡頭的那些人,可以選擇屏蔽背景,也可以屏蔽一些不想要出現(xiàn)的畫(huà)面,這樣不僅大大的方便了用戶,也可以保護(hù)客戶的隱私不被收到侵害,保護(hù)客戶的隱私。讓用戶免于通過(guò)別的軟件(Photoshop,美圖秀秀等)來(lái)后期制作,來(lái)去除這些東西.這個(gè)軟件對(duì)用戶來(lái)說(shuō)很方便!二、軟件總體設(shè)計(jì)本軟件主要是實(shí)現(xiàn)安卓手機(jī)的照相功能,不涉及攝像功能。本軟件圖標(biāo)采用彩色馬賽克加上一個(gè)m字母組合成一個(gè)圖片,圖片簡(jiǎn)潔大方,讓用戶可以對(duì)照相機(jī)的圖片耳目一新,新穎。本軟件沒(méi)有采用抽屜式的設(shè)計(jì),而是采用嵌套式設(shè)計(jì),這樣可以使得手機(jī)界面看起來(lái)更加簡(jiǎn)潔,沒(méi)有那么多的冗余,讓用戶更好的體驗(yàn)這款相機(jī)所帶來(lái)的強(qiáng)大功能。本軟件和其他相機(jī)功能差不多,具體設(shè)置參數(shù)如下。本軟件相機(jī)的一般參數(shù)設(shè)置包括對(duì)焦方式、取景模式、色彩效果、選擇IS0、防抖設(shè)置、照片大小、照片質(zhì)量及還原設(shè)置等選項(xiàng)【對(duì)焦方式】:有連續(xù)、自動(dòng)、微距、無(wú)限遠(yuǎn)四種模式。選擇連續(xù)對(duì)焦模式后當(dāng)相機(jī)對(duì)準(zhǔn)物體后則自動(dòng)對(duì)焦,轉(zhuǎn)移到另外一個(gè)物體時(shí)則重新對(duì)焦,對(duì)相機(jī)使用不熟練的用戶推薦使用這種對(duì)焦模式。自動(dòng)模式只有用戶點(diǎn)擊或者按快門(mén)時(shí)才會(huì)對(duì)焦;微距模式用于拍攝近處物體時(shí)使用;無(wú)限遠(yuǎn)模式適合拍攝遠(yuǎn)處物體或者風(fēng)景時(shí)使用?!救【澳J健浚河凶詣?dòng)、橫向、縱向、夜景、海灘、雪景、日落、煙火8種模式。自動(dòng)、橫向、縱向是手機(jī)拍出照片的顯示模式。夜景模式,適合在夜間光線相對(duì)較弱的環(huán)境下使用,此時(shí)150較高,快門(mén)較慢,拍照時(shí)要盡可能的保持手機(jī)穩(wěn)定,快門(mén)完成后可保持一段時(shí)間再移開(kāi)手機(jī)。海灘模式適合在海灘拍照時(shí)使用。雪景模式,白雪皚皚的環(huán)境下如果使用自動(dòng)取景模式相機(jī)可能會(huì)因?yàn)闊o(wú)法找到參照點(diǎn)而出現(xiàn)無(wú)法對(duì)焦現(xiàn)象,選擇該模式可解決這一問(wèn)題。日落、煙火模式分別適用于拍攝日落和煙花場(chǎng)景。【色彩模式】:選擇“無(wú)”為自動(dòng)模式,真實(shí)還原物體顏色?!皢紊蹦J脚某鰜?lái)的為黑白相片:“棕褐色”、“淺綠色”模式拍出的照片顏色偏重棕褐色及淺綠色;“負(fù)片”模式,即為底片模式?!具x擇150】:150即感光度,即相機(jī)對(duì)光線的敏感程度,相當(dāng)于感光的速度,數(shù)字越大,感光越快。150并非越大越好。對(duì)于膠片,高感光度的清晰度會(huì)稍差些,顆粒也比較粗;對(duì)于數(shù)碼相機(jī),高150會(huì)帶來(lái)較多的噪點(diǎn),畫(huà)質(zhì)較差。正常環(huán)境下150100是比較適合的,畫(huà)質(zhì)較好。有“自動(dòng)”“150100”、“150200”、“150400”、“150800”幾種模式選擇,一般選擇自動(dòng)模式,光線較暗時(shí)根據(jù)情況選擇其他數(shù)值?!痉蓝对O(shè)置】:打開(kāi)此項(xiàng)后可以減少因手抖動(dòng)帶來(lái)的畫(huà)面模糊情況。有“關(guān)閉”、“1/2秒”、“1秒”、“2秒”四個(gè)選項(xiàng)。這里的時(shí)間是指使用者手穩(wěn)定的時(shí)間,比如選擇“1秒”,當(dāng)按下快門(mén)時(shí)相機(jī)會(huì)檢測(cè)科動(dòng)時(shí)間,如果在一秒內(nèi)相機(jī)不抖動(dòng)則自動(dòng)釋放快門(mén)拍照,如果一直抖動(dòng)則手機(jī)繼續(xù)檢測(cè)。三、關(guān)鍵技術(shù)分析相機(jī)應(yīng)用程序拍攝的步驟相機(jī)類提供圖像的捕捉3啟動(dòng)預(yù)覽3停止預(yù)覽3拍攝照片3檢索視頻編碼。米用open()方法獲得相機(jī)實(shí)例。獲取與getParameters()相關(guān)的配置項(xiàng)目如果有必要的話,可以重新配置相機(jī)特性參數(shù),修改返回的Camera.Parameters對(duì)象,并調(diào)用setParameters(Camera.Parameters).如果要改回顯示方向的話,則調(diào)用setDisplayOrentation(int)傳遞完全初始化的SurfaceHoloer給setPreviewDisplay(SurfaceHolder)。如果沒(méi)有一個(gè)表面景象surface的話,相機(jī)將無(wú)法啟動(dòng)預(yù)覽。調(diào)用startPreview()來(lái)開(kāi)始更新預(yù)覽表面景象surface。在可以拍攝一張照片之前,就必須是已經(jīng)可以開(kāi)始預(yù)覽。當(dāng)你決定要拍攝這一張照片時(shí),調(diào)用takePicture(Camera.ShutterCallbackshutter,Camera.PictureCallbackraw,Camera.
PictureCallbackpostview,Camera.PictureCallbackjpeg)。捕獲一張照片,然后等待處理的回調(diào),取得實(shí)際圖像數(shù)據(jù)。拍攝一張照片后,預(yù)覽顯示就已經(jīng)停止了。需要拍攝更多張照片時(shí),再次調(diào)用startPreview().調(diào)用stopPreview()來(lái)停止更新預(yù)覽表面景象surface調(diào)用release()來(lái)釋放相機(jī),應(yīng)用程序應(yīng)立即在oPause()階段釋放相機(jī),如果想要重新獲取相機(jī)的實(shí)例,要做onResume()中調(diào)用reaOpen()方法。四、軟件詳細(xì)設(shè)計(jì)Android中專門(mén)提供了Camera來(lái)處理相機(jī)相關(guān)的事件,Camera是一個(gè)專門(mén)用來(lái)連接和斷開(kāi)相機(jī)服務(wù)的類,Camera下面包括如下幾個(gè)事件:Camera.AutoFocusCallback:自動(dòng)調(diào)焦功能;Camera.ErrorCallback:錯(cuò)誤信息捕捉;Camera.Parameters:相機(jī)的屬性參數(shù)Camera.PictureCallback:拍照、產(chǎn)生圖片時(shí)觸發(fā);Camera.PreviewCallback:相機(jī)預(yù)覽設(shè)置;Camera.ShutterCallback:快門(mén)設(shè)置;Camera.Size:圖片尺寸;要在Android中使用相機(jī)服務(wù)很簡(jiǎn)單,Camera沒(méi)有構(gòu)造方法,我們要使用它直接通過(guò)open()方法來(lái)打開(kāi)相機(jī)設(shè)備,然后通過(guò)Camera.Parameters對(duì)相機(jī)的一些屬性進(jìn)行設(shè)置,比如輸出圖片的格式、大小等等。下面是Camera類一些常用的方法介紹。Camera類的方法說(shuō)明設(shè)置自動(dòng)對(duì)焦得到相機(jī)的參數(shù)方法說(shuō)明設(shè)置自動(dòng)對(duì)焦得到相機(jī)的參數(shù)autoFocusgetParametersopenrelease啟動(dòng)相機(jī)服務(wù)openrelease釋放Camera服務(wù)設(shè)置預(yù)覽設(shè)置預(yù)覽參數(shù)setPreviewDisplay設(shè)置預(yù)覽設(shè)置預(yù)覽參數(shù)setParametersstartPreview 開(kāi)始預(yù)覽stopPreview 停止預(yù)覽takePicture 拍照這里重點(diǎn)說(shuō)明一下拍照的方法和使用,takePicture方法要實(shí)現(xiàn)3個(gè)回調(diào)函數(shù),分別是:Camera.ShutterCallback(快門(mén))和兩個(gè)Camera.PictureCallback(圖像數(shù)據(jù))。這里我們?cè)谂恼罩笠〉脠D像數(shù)據(jù)就需要實(shí)現(xiàn)Camera.PictureCallback的onPictureTaken方法。onPictureTaken中第一個(gè)參數(shù)就是圖像數(shù)據(jù),第二個(gè)參數(shù)則是相機(jī)。馬賽克相機(jī),這是一款既可以搞笑,娛樂(lè),又可以修改,美觀的軟件。它可以讓我們?cè)倥恼盏臅r(shí)候享受一點(diǎn)樂(lè)趣,也可以讓我們消除那些不想出現(xiàn)的東西。具體操作:當(dāng)我們打開(kāi)照相機(jī)的時(shí)候我們可以選擇普通照相機(jī),馬賽克相機(jī)??梢怨┯脩舾奖愕倪x擇。當(dāng)進(jìn)入馬賽克相機(jī)界面時(shí),可以選擇對(duì)現(xiàn)有照片馬賽克處理,也可以對(duì)正在進(jìn)行的照相機(jī)照的照片進(jìn)行馬賽克處理,用戶先選中所需要處理的區(qū)域(考慮到現(xiàn)在大多數(shù)的手機(jī)是智能手機(jī),且是觸屏操作,因此本軟件全部采用觸屏處理,不考慮按鍵操作),雙擊選中,彈出一個(gè)界面供用戶選擇,界面顯示圖片,馬賽克。用戶點(diǎn)擊選擇圖片,則會(huì)有很多圖片可以讓用戶選擇,用來(lái)遮擋那些不想出現(xiàn)的人或物,或者背景,這種效果比較正式,使得用戶處理后的照片不至于太娛樂(lè)化。用戶點(diǎn)擊選擇馬賽克,則會(huì)出現(xiàn)馬賽克,來(lái)遮擋所選區(qū)域,這樣處理出來(lái)的效果會(huì)讓用戶覺(jué)得很搞笑,并且在用戶選擇馬賽克時(shí)可以選擇顏色,這樣處理的效果可以更加娛樂(lè)。軟件圖片五、軟件測(cè)試方案根據(jù)實(shí)驗(yàn)需求運(yùn)行已編譯好的程序,看是否能運(yùn)行,是否能夠按照預(yù)期達(dá)到想要的效果,需要以下調(diào)試工作:。測(cè)試,英文是Betatesting。又稱Beta測(cè)試,用戶驗(yàn)收測(cè)試(UAT)。來(lái)測(cè)試設(shè)計(jì)的軟件是否正常運(yùn)行。用戶界面測(cè)試是指測(cè)試用戶界面的風(fēng)格是否滿足客戶要求,文字是否正確,頁(yè)面是否美觀,文字,圖片組合是否完美,操作是否友好等等。UI測(cè)試的目標(biāo)是確保用戶界面會(huì)通過(guò)測(cè)試對(duì)象的功能來(lái)為用戶提供相應(yīng)的訪問(wèn)或?yàn)g覽功能。確保用戶界面符合公司或行業(yè)的標(biāo)準(zhǔn)。包括用戶友好性、人性化、易操作性測(cè)試。用戶界面測(cè)試用戶分析軟件用戶界面的設(shè)計(jì)是否合乎用戶期望或要求。它常常包括菜單,對(duì)話框及對(duì)話框上所有按鈕,文字,出錯(cuò)提示,幫助信息(Menu和Helpcontent)等方面的測(cè)試。比如,測(cè)試MicrosoftExcel中插入符號(hào)功能所用的對(duì)話框的大小,所有按鈕是否對(duì)齊,字符串字體大小,出錯(cuò)信息內(nèi)容和字體大小,工具欄位置/圖標(biāo)等等冒煙測(cè)試的對(duì)象是新編譯的每一個(gè)需要正式測(cè)試的軟件版本,目的是確認(rèn)軟件基本功能正常,可以進(jìn)行后續(xù)的正式測(cè)試工作。本地化測(cè)試是測(cè)試特定目標(biāo)區(qū)域設(shè)置的軟件本地化質(zhì)量。本地化測(cè)試的環(huán)境是在本地化的操作系統(tǒng)上安裝本地化的軟件。從測(cè)試方法上可以分為基本功能測(cè)試,安裝/卸載測(cè)試,當(dāng)?shù)貐^(qū)域的軟硬件兼容性測(cè)試。測(cè)試的內(nèi)容主要包括軟件本地化后的界面布局和軟件翻譯的語(yǔ)言質(zhì)量,包含軟件、文檔和聯(lián)機(jī)幫助等部分。本地化能力測(cè)試是指不需要重新設(shè)計(jì)或修改代碼,將程序的用戶界面翻譯成任何目標(biāo)語(yǔ)言的能力。為了降低本地化能力測(cè)試的成本,提高測(cè)試效率,本地化能力測(cè)試通常在軟件的偽本地化版本上進(jìn)行。本地化能力測(cè)試中發(fā)現(xiàn)的典型錯(cuò)誤包括:字符的硬編碼(即軟件中需要本地化的字符寫(xiě)在了代碼內(nèi)部),對(duì)需要本地化的字符長(zhǎng)度設(shè)置了固定值,在軟件運(yùn)行時(shí)以控件位置定位,圖標(biāo)和位圖中包含了需要本地化的文本,軟件的用戶界面與文檔術(shù)語(yǔ)不一致等。安裝測(cè)試是確保軟件在正常情況和異常情況下,例如,進(jìn)行首次安裝、升級(jí)、完整的或自定義的安裝都能進(jìn)行安裝的測(cè)試。異常情況包括磁盤(pán)空間不足、缺少目錄創(chuàng)建權(quán)限等場(chǎng)景。核實(shí)軟件在安裝后可立即正常運(yùn)行。安裝測(cè)試包括測(cè)試安裝代碼以及安裝手冊(cè)。安裝手冊(cè)提供如何進(jìn)行安裝,安裝代碼提供安裝一些程序能夠運(yùn)行的基礎(chǔ)數(shù)據(jù)。卸載測(cè)試,英文是UninstallTesting。卸載測(cè)試是對(duì)軟件的全部、部分或升級(jí)卸載處理過(guò)程的測(cè)試。主要是測(cè)試軟件能否卸載,卸載是否干凈,對(duì)系統(tǒng)有無(wú)更改,在系統(tǒng)中的殘留與后來(lái)的生成文件如何處理等。還有原來(lái)更改的系統(tǒng)值是否修改回去。安全測(cè)試,英文是SecurityTesting。安全測(cè)試是測(cè)試系統(tǒng)在防止非授權(quán)的內(nèi)部或外部用戶的訪問(wèn)或故意破壞等情況時(shí)怎么樣。這可能需要復(fù)雜的測(cè)試技術(shù)。安全測(cè)試檢查系統(tǒng)對(duì)非法侵入的防范能力。安全測(cè)試期間,測(cè)試人員假扮非法入侵者,采用各種辦法試圖突破防線。例如:想方設(shè)法截取或破譯口令;專門(mén)定做軟件破壞系統(tǒng)的保護(hù)機(jī)制;故意導(dǎo)致系統(tǒng)失敗,企圖趁恢復(fù)之機(jī)非法進(jìn)入;試圖通過(guò)瀏覽非保密數(shù)據(jù),推導(dǎo)所需信息,等等。理論上講,只要有足夠的時(shí)間和資源,沒(méi)有不可進(jìn)入的系統(tǒng)。因此系統(tǒng)安全設(shè)計(jì)的準(zhǔn)則是,使非法侵入的代價(jià)超過(guò)被保護(hù)信息的價(jià)值。此時(shí)非法侵入者已無(wú)利可圖。兼容測(cè)試是測(cè)試軟件在一個(gè)特定的硬件/軟件/操作系統(tǒng)/網(wǎng)絡(luò)等環(huán)境下的性能如何。向上兼容向下兼容,軟件兼容硬件兼容。軟件的兼容性有很多需要考慮的地方。裝配安裝裝配/安裝/配置測(cè)試是驗(yàn)證軟件程序在不同廠家的硬件上,所支持的不同語(yǔ)言的新舊版本平臺(tái)上,和不同方式安裝的軟件都能夠如預(yù)期的那樣正確運(yùn)行。驅(qū)動(dòng)測(cè)試測(cè)試目的確保Linux驅(qū)動(dòng)層按照一定的步驟去操作設(shè)備,不出現(xiàn)錯(cuò)誤,對(duì)芯片和Camera硬件的操作都能正確執(zhí)行。測(cè)試前提在需要調(diào)試驅(qū)動(dòng)的內(nèi)核里也需要開(kāi)發(fā)板芯片上的串口驅(qū)動(dòng)的支持,并且在編
譯前使用makemenuconfig譯前使用makemenuconfig配置的時(shí)候也需要把串口驅(qū)動(dòng)編譯進(jìn)內(nèi)核文件,并在kernelhacking菜單選擇相應(yīng)的需要打印的信息。測(cè)試和調(diào)試方法Linux驅(qū)動(dòng)調(diào)試常用的方法有printk,kgdb,opps等方式,也可以使用第三方軟件和硬件進(jìn)行調(diào)試如trace32,MultiICE等arm仿真器進(jìn)行調(diào)試,但這些仿真器軟件都較為復(fù)雜,需要特定的腳本來(lái)實(shí)現(xiàn)某些調(diào)試功能,而且這些仿真器的硬件設(shè)備都比較貴。但在Camera模塊驅(qū)動(dòng)的調(diào)試?yán)?,常用的方法就足夠了,而且成本也很低。常用的printk,kgdb,opps方法需要串口的支持,因?yàn)檎{(diào)試信息需要通過(guò)串口與主機(jī)交互,顯示在主機(jī)的顯示屏上。1)printk方式Linux內(nèi)核里的printk()函數(shù)和c標(biāo)準(zhǔn)的printf()函數(shù)很類似,是內(nèi)核里打印信息的函數(shù)。通過(guò)在內(nèi)核特定位置調(diào)用printk()函數(shù)可以把所關(guān)心的信息通過(guò)串口打印到主機(jī)屏幕上,從而可以觀察程序的執(zhí)行過(guò)程和所關(guān)心的變量或指針的值,其原型為printk(constchar*fmt,...)。它與printf不同之處在于它可以附加不同日志級(jí)別,可以讓printk根據(jù)這些級(jí)別對(duì)消息進(jìn)行分類。通常用宏來(lái)指示日志級(jí)別。在<Linux/kernel.h>里定義了八種不同級(jí)別的日志字符串。例如KERN_INFO,表示提示信息;KERN_WARNING用于對(duì)可能出現(xiàn)的情況進(jìn)行警告。默認(rèn)的級(jí)別是DEFAULT_MESSAGE_LOGLEVEL。例如:printk(“thisisatest\n”);命令與printk(DEFAULT_MESSAGE_LOGLEVEL“thisisatest\n”);命令是相同的。根據(jù)日志級(jí)別,內(nèi)核可能會(huì)把消息通過(guò)串口打印出來(lái)。當(dāng)優(yōu)先級(jí)值小于console_loglevel時(shí)消息才會(huì)顯示出來(lái)。console_loglevel初始值是DEFAULT_MESSAGE_LOGLEVEL可以通過(guò)syslog系統(tǒng)調(diào)用修改其值。2)KGDB方式GDB是GNU開(kāi)源組織發(fā)布的一個(gè)UNIX下的程序調(diào)試工具,KGDB提供了一種使用GDB調(diào)試Linux內(nèi)核的機(jī)制。使用KGDB可以像調(diào)試普通的應(yīng)用程序那樣,在內(nèi)核中進(jìn)行設(shè)置斷點(diǎn)、檢查變量值、單步跟蹤程序運(yùn)行等操作。它可以通過(guò)一系列KGDB的命令,在主機(jī)端給開(kāi)發(fā)板發(fā)送命令進(jìn)行調(diào)試。調(diào)試過(guò)程中,系統(tǒng)的Camera模塊設(shè)計(jì)和實(shí)現(xiàn)被調(diào)試的內(nèi)核運(yùn)行在開(kāi)發(fā)板上,GDB調(diào)試器運(yùn)行在主機(jī)端。測(cè)試項(xiàng)和測(cè)試步驟CameraSensor驅(qū)動(dòng)測(cè)試上電,由于CameraSensor上電需要一個(gè)上電時(shí)序,可以通過(guò)示波器分別檢測(cè)兩路電,觀察他們是否符合上電順序。硬件復(fù)位,硬件復(fù)位是通過(guò)操作resetpin腳實(shí)現(xiàn)的。通過(guò)Linux提供的GPIO操作,在復(fù)位操作的時(shí)候分別讀取它的值,再通過(guò)printk函數(shù)打印出來(lái),以確定reset操作是成功的。PWDNpin的不使能。和復(fù)位一樣通過(guò),通過(guò)GPIO的操作來(lái)確定其執(zhí)行成功。至此,CameraSensor已開(kāi)始工作了,芯片已可以通過(guò)Linux驅(qū)動(dòng)提供的I2C接口與CameraSensor通信了,接下來(lái)就是確保I2C通信的正常。利用I2C通信的相關(guān)接口去寫(xiě)相關(guān)寄存器,然后再去讀取寄存器的值確保對(duì)寄存器操作的正確。通過(guò)初始化相關(guān)寄存器后,Camera就可以工作了,在Camera設(shè)備的data[0-7]pin腳通過(guò)示波器就可以檢測(cè)到數(shù)據(jù)的變化了。至此可以確保CameraSensor硬件和驅(qū)動(dòng)的正常,但還不能確定一些寄存器的配置是否正確,因?yàn)槠渲幸恍┘拇嫫餍枰cCamera控制器驅(qū)動(dòng)配合。Camera控制器驅(qū)動(dòng)測(cè)試Camera控制器的一些配置需要與CameraSensor的配置相同,如vsync,href,pclk極性,圖像的Ycbcr順序等,否則Camera控制器會(huì)得不到正確的數(shù)據(jù)。首先要確保寫(xiě)入和讀取寄存器的值是一致的。可以通過(guò) Linux提供的readl,writel函數(shù)進(jìn)行測(cè)試。在驅(qū)動(dòng)里的流程可以通過(guò)printk函數(shù)打印到屏幕上以確保對(duì)控制器的操作流程確如驅(qū)動(dòng)程序里寫(xiě)的那樣。測(cè)試結(jié)果及分析通過(guò)串口打印的分析,與Camera相關(guān)的pin腳都可以被正確的操作,Camera硬件沒(méi)有短路現(xiàn)象,Camera硬件與芯片的連接也正常。CameraSensor的寄存器都配置成功沒(méi)有進(jìn)入出錯(cuò)處理代碼。Camera控制器寄存器的讀寫(xiě)都正確,讀取的數(shù)據(jù)和寫(xiě)入的數(shù)據(jù)完全一致。HAL層測(cè)試測(cè)試目的確保HAL層的代碼和Android提供的Camera接口相銜接,確保Linux驅(qū)動(dòng)層提供的設(shè)備節(jié)點(diǎn)可以正常使用。測(cè)試項(xiàng)和步驟Android接口實(shí)現(xiàn)打開(kāi)Android下Camera應(yīng)用程序,在串口中輸入logcat命令,觀察串口的打印信息,是否出現(xiàn)錯(cuò)誤提示。Linux驅(qū)動(dòng)提供的設(shè)備節(jié)點(diǎn)打開(kāi)Android下的Camera應(yīng)用程序,使其處于預(yù)覽模式,觀察串口工具minicom的打印信息,判斷HAL層對(duì)設(shè)備節(jié)點(diǎn)的open,ioctl等操作是否在驅(qū)動(dòng)里被正確執(zhí)行。測(cè)試結(jié)果及分析打開(kāi)Camera應(yīng)用程序,對(duì)其進(jìn)行預(yù)覽、拍照等操作,串口工具minicom的打印信息顯示Camera的HAL層代碼按照設(shè)想的步驟執(zhí)行,沒(méi)有打印任何出錯(cuò)信息,HAL層工作正常。Camera拍攝效果測(cè)試在測(cè)試效果的時(shí)候,Camera應(yīng)用程序已可以在屏幕上顯示出Camera設(shè)備獲取到的圖像了,拍攝效果的測(cè)試就是需要對(duì)其中圖像遇到的問(wèn)題進(jìn)行測(cè)試和調(diào)試,使其達(dá)到預(yù)期的效果。在Camera效果測(cè)試?yán)镏苯油ㄟ^(guò)人的感覺(jué)去分辨難以達(dá)到滿意的效果。通常會(huì)輔助一些效果測(cè)試卡。如分辨率測(cè)試卡、24色卡、對(duì)比度測(cè)試卡、灰階卡、燈箱等。這些卡通過(guò)放大實(shí)際的卡片圖像與Camera的圖像顯示效果來(lái)供調(diào)試人員方便的找出圖像的問(wèn)題,有針對(duì)性的對(duì)圖像進(jìn)行微調(diào)。拍攝測(cè)試測(cè)試目的Camera拍攝效果直接影響到用戶對(duì)產(chǎn)品的體驗(yàn),是測(cè)試重要的一部分。測(cè)試的目的是使Camera應(yīng)用程序在顯示屏上正確反映所拍攝到的實(shí)際物品。測(cè)試項(xiàng)和測(cè)試步驟1)圖像的顏色打開(kāi)Android的Camera應(yīng)用程序,使其處于預(yù)覽模式,用Camera拍攝Camera測(cè)試卡中的24色卡,觀察屏幕中顯示的顏色與24色卡上的顏色是否一致。24卡系統(tǒng)的Camera模塊設(shè)計(jì)和實(shí)現(xiàn)觀察和控制開(kāi)發(fā)板,通過(guò)電壓表、示波器等測(cè)試Camera硬件狀態(tài)。通過(guò)開(kāi)發(fā)板的顯示屏觀察Camera效果。Camera模塊的功能測(cè)試Camera模塊的測(cè)試本文按照從 Camera硬件、CameraSensor驅(qū)動(dòng)到Camera控制器驅(qū)動(dòng)以及HAL層的順序進(jìn)行。Camera硬件測(cè)試Camera硬件是Camera模組廠商對(duì)CameraSensor的重新封裝。模組廠商會(huì)在封裝之后提供Camera硬件關(guān)于鏡頭、pin腳等相關(guān)信息。在硬件方面需要比對(duì)Camera硬件和芯片上的Camera接口使他們一一對(duì)應(yīng)。硬件測(cè)試測(cè)試目的檢測(cè)Camera硬件設(shè)備是否完好,與開(kāi)發(fā)板的連接是否正確,芯片提供給Camera的電壓、晶振是否正確。測(cè)試項(xiàng)和測(cè)試步驟1) 連接測(cè)試在驅(qū)動(dòng)程序里用Linux提供的GPIO驅(qū)動(dòng)對(duì)pin腳進(jìn)行配置,使他們或高或低,并讀取GPIO的值,觀察其是否能夠正常操作。2) 電壓測(cè)試在開(kāi)發(fā)板上運(yùn)行Android,打開(kāi)Camera應(yīng)用程序,使其處于預(yù)覽模式。用電壓表檢測(cè)Camera硬件的三個(gè)pin腳AVDD、DOVDD、VDD1.8的三個(gè)電壓值,觀察其是否分別為2.8V、2.8V、1.8V。3) 外部晶振測(cè)試同樣打開(kāi)Android應(yīng)用程序,在應(yīng)用程序進(jìn)入預(yù)覽模式時(shí),用示波器檢測(cè)Camera硬件上的MCLKpin腳,觀察示波器,看示波器上顯示的頻率是否與驅(qū)動(dòng)代碼里提供的一致。測(cè)試結(jié)果及分析GPIO都可以正常操作,電壓表顯示的電壓與代碼提供的電壓只存在微小的差異,示波器顯示的頻率和通過(guò)代碼操作芯片提供的頻率只存在微小的誤差,不影響整體結(jié)果。六、 實(shí)驗(yàn)總結(jié)首先,通過(guò)這次的實(shí)驗(yàn)設(shè)計(jì),讓我對(duì)安卓照相機(jī)有了更深刻的認(rèn)識(shí),以前我只是以為一個(gè)照相機(jī)沒(méi)什么的,可是當(dāng)我搜集關(guān)于安卓照相機(jī)大量資料時(shí),才發(fā)現(xiàn)現(xiàn)不僅是現(xiàn)在照相機(jī)在飛速發(fā)展,安裝在我們手機(jī)上的照相機(jī)也有了長(zhǎng)足的進(jìn)步,以前的照相機(jī)只能照相,攝像。而隨著科學(xué)技術(shù)的發(fā)展,相機(jī)也有了更多更好的功能,我所設(shè)計(jì)的馬賽克相機(jī)原來(lái)網(wǎng)上已經(jīng)有了成品,技術(shù)已經(jīng)相當(dāng)熟練,但是這個(gè)相機(jī)也加入了我自己的一些想法。通過(guò)本實(shí)驗(yàn)的程序設(shè)計(jì),我對(duì)安卓開(kāi)發(fā)有了越來(lái)越濃厚的興趣。剛結(jié)束的數(shù)獨(dú)游戲的設(shè)計(jì)與編程,讓我獲益匪淺,對(duì)安卓的開(kāi)發(fā)產(chǎn)生了強(qiáng)烈的好奇心,對(duì)于這個(gè)照相機(jī)軟件,我知道以我目前的水平很難把它開(kāi)發(fā)出來(lái),但是我會(huì)好好努力的。在感慨這個(gè)社會(huì)高速發(fā)展的同時(shí),我也體會(huì)到了自己的渺小,我知道自己必須好好學(xué)習(xí),才能逐步適應(yīng)這個(gè)社會(huì),來(lái)更好的發(fā)揮自己
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)鋰電池連接器行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年度特色民宿經(jīng)營(yíng)權(quán)及資產(chǎn)移交合同2篇
- 2024年物流公司配送員勞動(dòng)合同范本
- 2025年度OEM代工協(xié)議及全球市場(chǎng)拓展合作3篇
- 材料科學(xué)短期課程設(shè)計(jì)
- 2024年股東合伙協(xié)議樣本版B版
- 2025版風(fēng)力發(fā)電站運(yùn)維服務(wù)合同3篇
- 甲醇合成工段課程設(shè)計(jì)
- 粗苯冷卻器 課程設(shè)計(jì)
- 2024年牙科診所消毒供應(yīng)中心消毒劑采購(gòu)與配送合同協(xié)議書(shū)3篇
- 女子水晶樂(lè)坊
- 出境竹木草制品公司原輔料采購(gòu)驗(yàn)收制度
- 2023年臨床醫(yī)學(xué)(軍隊(duì)文職)題庫(kù)(共五套)含答案
- 關(guān)于學(xué)校學(xué)生意外死亡的情況報(bào)告
- 2022公務(wù)員錄用體檢操作手冊(cè)(試行)
- 2023-2024學(xué)年江西省小學(xué)語(yǔ)文六年級(jí)期末??伎荚囶}附參考答案和詳細(xì)解析
- 山東省菏澤市高職單招2023年綜合素質(zhì)自考測(cè)試卷(含答案)
- 中國(guó)兒童注意缺陷多動(dòng)障礙(ADHD)防治指南
- 強(qiáng)力皮帶運(yùn)行危險(xiǎn)點(diǎn)分析及預(yù)控措施
- 基于STM32的可遙控智能跟隨小車的設(shè)計(jì)與實(shí)現(xiàn)-設(shè)計(jì)應(yīng)用
- DB44T 1315-2014物業(yè)服務(wù) 檔案管理規(guī)范
評(píng)論
0/150
提交評(píng)論