1. 淺談為什么Android和iOS圖片質(zhì)量差距那么大?

首先來說,作為一個(gè)安卓狗,機(jī)器當(dāng)然用的是安卓的手機(jī)?,F(xiàn)在的安卓手機(jī)大多數(shù)都會(huì)以高清拍照,動(dòng)不動(dòng)就幾千萬柔光相機(jī)來吸引各種買家。買來后,拍照發(fā)現(xiàn),哇塞——一張圖片好幾M呢,但是還是不如iOS的感覺,iOS的圖片也就1M左右吧。為什么會(huì)有這么大的差距呢?這要從安卓的設(shè)計(jì)初衷來說起,當(dāng)時(shí)谷歌開發(fā)Android的時(shí)候,考慮了大部分手機(jī)的配置并沒有那么高,所以對(duì)圖片處理是使用的Skia這個(gè)庫。當(dāng)然這個(gè)庫的底層還是是用的jpeg對(duì)圖片進(jìn)行壓縮處理。但是為了能夠適配低端的手機(jī)(這里的低端是指以前的硬件配置不高的手機(jī)),所以Skia在進(jìn)行圖片處理并沒有去使用壓縮圖像過程中基于圖像數(shù)據(jù)計(jì)算哈弗曼表(關(guān)于圖片壓縮中的哈弗曼表,請(qǐng)自行查閱相關(guān)資料),可以參考[這里](http://www.cnblogs.com/MaxIE/p/3951294.html)。這里面詳細(xì)解釋為何Google沒有使用高性能的壓縮,簡單來說就是考慮了當(dāng)時(shí)的手機(jī)硬件,將一個(gè)壓縮參數(shù)optimize_coding設(shè)置為了false,使得硬件較低的手機(jī)能夠很好的處理圖片。

2. NDK環(huán)境以及Cmake配置(篇幅有限這里不做過多的描述)

添加環(huán)境變量

電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)

將配置的環(huán)境變量添加到系統(tǒng)環(huán)境變量中。把%NDK_HOME%;添加到Path中。

3. jpeg庫的下載及編譯.so文件

下載libjpeg庫源碼,git clone地址

git clone git://git.linaro.org/people/tomgall/libjpeg-turbo/libjpeg-turbo.git -b linaro-android

將clone下來的源碼目錄改為jni(即源目錄libjpeg-turbo改為jni),通過ndk命令進(jìn)行編譯(需要配好ndk環(huán)境變量,命令行進(jìn)入修改好的jni目錄輸入命令即可):

ndk-build APP_ABI=armeabi-v7a,armeabi

在當(dāng)前目錄下生成libs和obj文件夾

電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)

4. 新建一個(gè)Android項(xiàng)目

新建一個(gè)Android項(xiàng)目,并勾選c++support。

電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)

如果環(huán)境配置好的話,AS會(huì)自動(dòng)生成一個(gè)包含NDK的項(xiàng)目,里面實(shí)現(xiàn)了hello world。目錄結(jié)構(gòu)如下圖:

電腦培訓(xùn),計(jì)算機(jī)培訓(xùn),平面設(shè)計(jì)培訓(xùn),網(wǎng)頁設(shè)計(jì)培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)

新建一個(gè)類,JpegUtils,聲明native方法

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式