內(nèi)核中驅(qū)動我想硬件商會提供一個實現(xiàn)了基礎(chǔ)功能的代碼包(純 C),你可能需要做些移植或 debug 工作。但像 HTC 的連拍功能,很可能是 HTC 開發(fā)人員自己實現(xiàn)的,而不是高通(至今未在高通內(nèi)核源 Codeaurora 中見到過連拍補丁的提交)。相機資源在 Android 內(nèi)核中是在主板驅(qū)動(board-xxx.c)中定義的,比如一些屬性,io 地址,內(nèi)存映射段(這是內(nèi)核預(yù)分配的一段連續(xù)地址,為了提高載入速度,比如高通的 PMEM_ADSP),指定驅(qū)動模塊名等。這些定義會在相機驅(qū)動加載時用到。因為你比較熟悉 C 語言,如果有 Linux 內(nèi)核調(diào)試經(jīng)驗的話,相信理解這部分內(nèi)容并不太困難。
而 HAL 驅(qū)動庫通常也都有藍本可參考,需要實現(xiàn)的接口與細節(jié)在 Google Android 開發(fā)者文檔中都有說明呢,基本上是將 frameworks 中關(guān)于相機頭文件中定義的函數(shù)一一實現(xiàn);這部分一般是 C++ 完成的。HAL 與內(nèi)核相機模塊通訊用得最多的是 ioctl 直接申請資源,所以你可能需要找份內(nèi)核驅(qū)動開發(fā)文檔學(xué)習(xí)下如何添加自己的 ioctl 函數(shù)。關(guān)于相機啟動時 HAL 中函數(shù)的調(diào)用關(guān)系,網(wǎng)上可找到很多分析博文。
我所知道的大概就這些,細節(jié)沒法說也沒能力說清楚了。
java 并且必須掌握 JNI。
了解android應(yīng)用編程。
會 C ++ ,看android 源碼中 就是在 c C++ Java 三種語言中穿梭。
知道 android 系統(tǒng)的啟動流程。
會HAL(硬件抽象層)。
會Linux系統(tǒng)知識,及Linux-kernel、Linux驅(qū)動開發(fā)。因為HAL還是調(diào)用Linux驅(qū)動的。
android是在Linux-kernel上再建立了一個類似文件系統(tǒng)的系統(tǒng)。
1.鏡頭:
鏡頭類似于人眼,是決定拍照質(zhì)量的關(guān)鍵性因素。專業(yè)鏡頭對圖像的銳度控制是否合理、色彩還原是否真實、畸變是否嚴(yán)重等等因素起著至關(guān)重要的作用。
對于手機拍照用戶來說,對于鏡頭的選擇不像單反相機那樣可控可換,除了在購買手機前,稍作選擇外,對于正在使用的手機,用戶在拍照時可以不用考慮這個因素是否可以向單反那樣更換,因為怎么做都只能是徒勞。
2.傳感器種類、尺寸和像素高低:
相機傳感器分為CCD和CMOS兩大類。整體來說,CCD的成像質(zhì)量較好,當(dāng)然價格也比較貴;CMOS器件產(chǎn)生的圖像質(zhì)量相比CCD來說稍低一些,但其最大特點是非常省電,所以,在同時考慮價格的情況下,目前主流的手機都使用的是CMOS的傳感器。
傳感器尺寸和像素高低對照片質(zhì)量產(chǎn)生很大影響。數(shù)碼相機中,傳感器尺寸越大、像素越高,其中記錄的信息就越多,顆粒便越細膩,放大效果也越好;反之,傳感器尺寸越小、像素越低,記錄的信息也就越少,顆粒也越粗糙,放大效果也便越差。
對于手機的傳感器,在極其有限的空間中,沒有條件選擇太大尺寸的傳感器。對于像素這一很多用戶最看重的因素,其實并非是決定成像質(zhì)量的唯一因素,在同種、同尺寸傳感器的情況下,像素數(shù)越高,手機的拍照質(zhì)量越好才更有說服力,單一的注重像素并不十分理性。當(dāng)然,對于這幾個因素,用戶也只能被動的任從廠商安排,不能再拍照時為了拍的更好,對其進行調(diào)節(jié)。
3.照片格式:
相比最常用的JPEG格式,RAW格式拍攝的照片可調(diào)節(jié)性更好,質(zhì)量也更高,不過缺點是RAW的照片更占空間。目前已經(jīng)有些手機支持RAW拍攝,不過,在空間不多的情況下,如果不是要求太高的話,還是選擇JPEG比較合適。
4.光線:
拍照看光線,簡單來說,在光線充足的情況下,手機拍出的照片質(zhì)量要比光線不足的情況下好很多,但這也不盡然,有時候在光線過強的情況下,有些手機會產(chǎn)生比較嚴(yán)重的偏色現(xiàn)象,所以也是視情況而定。
另外,光線的方向也對手機拍出的照片質(zhì)量有很大影響,在順光情況下,質(zhì)量要強于逆光拍攝的照片。所以,一般用戶拍照前最好要先確認(rèn)一下光線的方向,盡量在順光的情況下拍攝照片。對于這點是很多用戶用手機實際拍照時很容易忽略的。
拍照前后有那些技巧?
對于手機本身的硬件方面,手機用戶不能隨意做出更改決定,所以在拍照時可以不用考慮。但是對于其他方面,想要用手機拍出非常滿意的照片,用戶還是有很大的發(fā)揮空間的。手機拍照也需要技巧:
1.拍攝前:
光線是成像好壞的重要因素,手機攝像頭和照相機一樣,對光線的要求也很高,因此為了拍攝一張好的作品一定要選擇良好的光線條件,盡量避免在逆光的情況下拍攝,除了通過外部條件來滿足光源外,有的手機還可以通過手機內(nèi)置的輔助功能來對調(diào)節(jié):
a.調(diào)節(jié)亮度(或曝光度)。手機不能靠調(diào)節(jié)光圈快門來對拍后的圖片亮度進行預(yù)設(shè),但是目前很多手機都可以調(diào)節(jié)亮度(或曝光度),在光線稍暗的情況下可以選擇此項。
b.開啟閃光燈。對于配備LED閃光燈的手機,在暗光條件下,打開閃光燈能夠起到不錯的補光作用,但是其有效范圍較短,更適合近距離使用。
c.開啟夜間模式。大多數(shù)手機用戶都知道在晚上拍照時打開夜間模式會比較合適,另外,在白天的光線不足時,開啟夜間模式也能對提高亮度起到不錯的效果。不過這里需要注意的是,其取景時間稍長,所以為了避免重影,盡量拿穩(wěn)手機。
d.調(diào)節(jié)感光度。有些時候,光線弱到一定程度,而又禁止使用閃光燈,比如在展覽館中,這個時候,如果手機中有設(shè)置ISO感光度的選項(一般分為高、中、低3項),可以將其調(diào)高,能夠在一定程度上提高亮度。不過在光線充足的情況下最好將其設(shè)置低一些,以免對照片質(zhì)量造成過多影響。
2.拍照時:
無論是拍人還是拍景,選擇合適的角度都會大大提升自己對照片的滿意度。比如很多女孩喜歡自拍,需要提醒的是,自拍時要盡量將手機離自己遠一些,以免由于手機的廣角造成人會“發(fā)胖”,網(wǎng)上有很多拿手機拍攝鏡子中的自己的全身還是比較明智的;另外,如果是拍攝上半身以頭部為主的話,最好是將手機鏡頭放在與視線平行稍靠上的位置,這樣一來可以顯得眼睛稍大,而來可以神奇“瘦臉”。
構(gòu)圖。
由于手機屬于定焦廣角鏡頭,其拍攝有特殊性?;镜臉?gòu)圖與一般相機是一樣的,一般需要把事物放在黃金分割線(6:4)的位置。
但是由于其是廣角的鏡頭,拍攝景物有其優(yōu)勢,其取景范圍比較大。但是拍攝近景,尤其是花草和人物的時候,其鏡頭會變形,使事物扭曲。
因此,在拍攝人物的時候,需要離開一定的距離,必要時可以使用數(shù)碼變焦。光影。
由于手機的感光元件、鏡頭、閃光燈和快門的原因,其色彩還原度在不同情況下不一樣。手機在拍攝外景 光線比較充足的時候效果不錯,好的手機可以接近一般的數(shù)碼相機的水平。
當(dāng)然受限于鏡頭,其細節(jié)還是要略輸一籌。在拍攝室內(nèi)的時候,由于感光元件小,光線不足,其圖像一般會比較灰暗,還原度較差。
其快門為自動調(diào)節(jié),因此不能進行長時間曝光。解決的方法是采用閃光燈。
但是手機閃光燈還是比較弱,其有效范圍也就2-3米。因此在進行室內(nèi)活動拍攝的時候(酒吧表演等)表現(xiàn)力不佳。
同樣由于快門不能被設(shè)定,手機對運動物體很難捕捉。妥協(xié)的方法是鏡頭追著事物,使其在取景框中相對靜止。
輔助軟件(apps)。一般手機會自帶一改善照片的功能。
以iphone為例,可以進行自動改善照片、裁切、去除紅眼和HDR(把三張不同曝光度的照片疊在一起,使亮處和暗處的細節(jié)都可以展現(xiàn)出來)的功能。手機的輔助軟件則五花八門。
具體可以分為以下幾類:1.相框類:MashiMaro Photos (iphone),Frames & FX for Photos (iphone)。2.LOMO效果:模仿LOMO相機的漏光多鏡頭等效果 Leme Camera (iphone); VIDA (android)3.漫畫效果: Paper Camera (android & iphone)4.拼貼畫效果: ToonPaint (android & iphone)5.全景拍攝:可以在攝像模式掃一圈景物,然后軟件自動拼接成全景圖片(最多可以接近360度)例如:Video2Pano (android & iphone)自拍。
自拍是手機最大的一個類別。因此在這里重點闡述一下。
很多人喜歡采用斜45度自上而下的拍攝方式,優(yōu)點是:1.燈光也是自上而下,重點突出臉部。2.與平著拍相比,斜45度可以很容易涵蓋全身或者半身,而不需要把手機離自己很遠。
3.可以顯得下巴輪廓較小,有錐子臉的感覺。也有人喜歡在浴室對著鏡子平著自拍。
好處是:1.可以方便取景。2.有私房照的曖昧感覺。
壞處是:浴室需要收拾干凈。5手機拍攝附件。
在手機外接一個鏡頭或者腳架,增強其功能。Kogeto Dot for iphone 全景攝像功能,可通過軟件還原出全景的視頻。
80刀OlloClip換超廣角或魚眼或微距鏡頭for iphone6X光學(xué)鏡頭。這種鏡頭國內(nèi)有很多便宜的選擇。
并有適合多種手機的適配器。
在你打開camera的時候,你會傳入一個cameraId:
public static Camera open (int cameraId)
當(dāng)你設(shè)置了cameraId,打開camera之后,可以通過下面的代碼獲取camera信息:
android.hardware.Camera.CameraInfo info =
new android.hardware.Camera.CameraInfo();
android.hardware.Camera.getCameraInfo(cameraId, info);
if (info.facing == CameraInfo.CAMERA_FACING_FRONT) {
//前置攝像頭
} else { // 后置攝像頭
}
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時間:3.290秒