細(xì)節(jié)知識(shí)點(diǎn)(一)

MessageDigest
http://blog.csdn.net/hudashi/article/details/8394158
用于為應(yīng)用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法浙踢。簡(jiǎn)單點(diǎn)說(shuō)就是用于生成散列碼绢慢。信息摘要是安全的單向哈希函數(shù),它接收任意大小的數(shù)據(jù)洛波,輸出固定長(zhǎng)度的哈希值胰舆。
MessageDigest 通過(guò)其getInstance系列靜態(tài)函數(shù)來(lái)進(jìn)行實(shí)例化和初始化。MessageDigest 對(duì)象通過(guò)使用 update 方法處理數(shù)據(jù)奋岁。任何時(shí)候都可以調(diào)用 reset方法重置摘要思瘟。一旦所有需要更新的數(shù)據(jù)都已經(jīng)被更新了,應(yīng)該調(diào)用 digest 方法之一完成哈希計(jì)算并返回結(jié)果闻伶。
對(duì)于給定數(shù)量的更新數(shù)據(jù)滨攻,digest方法只能被調(diào)用一次。digest
方法被調(diào)用后蓝翰,MessageDigest 對(duì)象被重新設(shè)置成其初始狀態(tài)光绕。

LinkedBlockingDeque:雙向并發(fā)阻塞隊(duì)列
http://www.tuicool.com/articles/AfIv6v
從數(shù)據(jù)結(jié)構(gòu)和功能需求上可以得到以下結(jié)論:
1.要想支持阻塞功能,隊(duì)列的容量一定是固定的畜份,否則無(wú)法在入隊(duì)的時(shí)候掛起線程诞帐。也就是capacity是final類型的。
2.既然是雙向鏈表爆雹,每一個(gè)結(jié)點(diǎn)就需要前后兩個(gè)引用停蕉,這樣才能將所有元素串聯(lián)起來(lái),支持雙向遍歷钙态。也即需要prev/next兩個(gè)引用慧起。
3.雙向鏈表需要頭尾同時(shí)操作,所以需要first/last兩個(gè)節(jié)點(diǎn)册倒,當(dāng)然可以參考LinkedList那樣采用一個(gè)節(jié)點(diǎn)的雙向來(lái)完成蚓挤,那樣實(shí)現(xiàn)起來(lái)就稍微麻煩點(diǎn)。
4.既然要支持阻塞功能驻子,就需要鎖和條件變量來(lái)掛起線程灿意。這里使用一個(gè)鎖兩個(gè)條件變量來(lái)完成此功能。
有了上面的結(jié)論再來(lái)研究LinkedBlockingDeque的優(yōu)缺點(diǎn)崇呵。
1.優(yōu)點(diǎn)當(dāng)然是功能足夠強(qiáng)大缤剧,同時(shí)由于采用一個(gè)獨(dú)占鎖,因此實(shí)現(xiàn)起來(lái)也比較簡(jiǎn)單域慷。所有對(duì)隊(duì)列的操作都加鎖就可以完成鞭执。同時(shí)獨(dú)占鎖也能夠很好的支持雙向阻塞的特性司顿。
2.凡事有利必有弊芒粹。缺點(diǎn)就是由于獨(dú)占鎖兄纺,所以不能同時(shí)進(jìn)行兩個(gè)操作,這樣性能上就大打折扣化漆。從性能的角度講LinkedBlockingDeque要比LinkedBlockingQueue要低很多估脆,比CocurrentLinkedQueue就低更多了,這在高并發(fā)情況下就比較明顯了

LIFOLinkedBlockingDeque
后進(jìn)先出阻塞隊(duì)列座云。重寫LinkedBlockingDeque的offer(…)函數(shù)如下:
public boolean offer(T e) {
return super.offerFirst(e);
}
讓LinkedBlockingDeque插入總在最前疙赠,而remove()本身始終刪除第一個(gè)元素,所以就變?yōu)榱撕筮M(jìn)先出阻塞隊(duì)列朦拖。

ThreadPoolExecutor
http://825635381.iteye.com/blog/2184680
ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue<Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler)
corePoolSize: 線程池維護(hù)線程的最少數(shù)量
maximumPoolSize:線程池維護(hù)線程的最大數(shù)量
keepAliveTime: 線程池維護(hù)線程所允許的空閑時(shí)間
unit: 線程池維護(hù)線程所允許的空閑時(shí)間的單位
workQueue: 線程池所使用的緩沖隊(duì)列
threadFactory:新建線程工廠(繼承ThreadFactory)
handler: 線程池對(duì)拒絕任務(wù)的處理策略

AtomicInteger
http://blog.csdn.net/u012734441/article/details/51619751
AtomicInteger介紹
AtomicInteger是一個(gè)提供原子操作的Integer類圃阳,通過(guò)線程安全的方式操作加減。
AtomicInteger使用場(chǎng)景
AtomicInteger提供原子操作來(lái)進(jìn)行Integer的使用璧帝,因此十分適合高并發(fā)情況下的使用

LinkedHashMap
http://www.cnblogs.com/yejg1212/archive/2013/04/01/2992921.html
http://blog.csdn.net/ns_code/article/details/37867985
非線程安全的捍岳,只在單線程環(huán)境下使用
public LinkedHashMap(
int initialCapacity, float loadFactor, boolean accessOrder)
參數(shù)說(shuō)明:
initialCapacity 初始容量大小,使用無(wú)參構(gòu)造方法時(shí)睬隶,此值默認(rèn)是16
loadFactor 加載因子锣夹,使用無(wú)參構(gòu)造方法時(shí),此值默認(rèn)是 0.75f
accessOrder false: 基于插入順序 true: 基于訪問(wèn)順序 (基于訪問(wèn)的順序苏潜,get一個(gè)元素后银萍,這個(gè)元素被加到最后(使用了LRU 最近最少被使用的調(diào)度算法))

以下BaseImageDownloader.java

**Android 中的MimeType與MimeTypeMap **
Android中MimeType的用途
Intent-Filter中的<data>有一個(gè)mimeType . 它的作用是告訴Android系統(tǒng)本Activity可以處理的文件的類型。如設(shè)置為 “text/plain”表示可以處理“.txt”文件恤左。
MimeTypeMap類
MimeTypeMap類是專門處理mimeType的類

** ThumbnailUtils工具類來(lái)是實(shí)現(xiàn)縮略圖**
Bitmap createVideoThumbnail(String filePath, int kind)
創(chuàng)建一張視頻的縮略圖贴唇。如果視頻已損壞或者格式不支持可能返回null
Bitmap extractThumbnail(Bitmap source, int width, int height, int options)
創(chuàng)建所需尺寸居中縮放的位圖。
參數(shù): source: 需要被創(chuàng)造縮略圖的源位圖對(duì)象
width: 生成目標(biāo)的寬度
height: 生成目標(biāo)的高度
    options:在縮略圖抽取時(shí)提供的選項(xiàng)

bitmap.compress(Bitmap.CompressFormat.JPEG, 30, baos);//30 是壓縮率飞袋,表示壓縮70%; 如果不壓縮是100戳气,表示壓縮率為0

Uri.parse(string)
通用資源標(biāo)志符(Universal Resource Identifier, 簡(jiǎn)稱"URI")。Uri代表要操作的數(shù)據(jù)授嘀,Android上可用的每種資源 - 圖像物咳、視頻片段等都可以用Uri來(lái)表示。Android平臺(tái)而言蹄皱,URI主要分三個(gè)部分:
scheme
authority
path
其中authority又分為host和port览闰。格式如下:
scheme://host:port/path
實(shí)際的例子:

我們很經(jīng)常需要解析Uri,并從Uri中獲取數(shù)據(jù)巷折。Android系統(tǒng)提供了兩個(gè)用于操作Uri的工具類压鉴,分別為UriMatcher 和ContentUris

Android下的Intent與Uri開(kāi)發(fā)

Uri uri = Uri.parse("macappstores://itunes.apple.com:80/us/app/xcode/id497799835?mt=12#retry");
String scheme = uri.getScheme();//macappstores
int port = uri.getPort();//80
String host = uri.getHost();//itunes.apple.com
String path = uri.getPath();//us/app/xcode/id497799835
List<String > a = uri.getPathSegments();//{"us","app","xcode","id497799835"}
String last = uri.getLastPathSegment();//id497799835
String mt = uri.getQueryParameter("mt");//12
String authority = uri.getAuthority();//itunes.apple.com:80
String fragment = uri.getFragment();//retry

Android之MediaStore
我們經(jīng)常會(huì)使用MediaStore來(lái)獲取手機(jī)的音頻、圖片锻拘、視頻等相關(guān)信息油吭。下面3個(gè)是常見(jiàn)的內(nèi)部類:
MediaStore.Audio獲取音頻信息的類
MediaStore.Images獲取圖片信息
MediaStore.Video獲取視頻信息

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末创橄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子舍杜,更是在濱河造成了極大的恐慌拌夏,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件心包,死亡現(xiàn)場(chǎng)離奇詭異类咧,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蟹腾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門痕惋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人娃殖,你說(shuō)我怎么就攤上這事值戳。” “怎么了炉爆?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵堕虹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我叶洞,道長(zhǎng)鲫凶,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任衩辟,我火速辦了婚禮螟炫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘艺晴。我一直安慰自己昼钻,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布封寞。 她就那樣靜靜地躺著然评,像睡著了一般。 火紅的嫁衣襯著肌膚如雪狈究。 梳的紋絲不亂的頭發(fā)上碗淌,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音抖锥,去河邊找鬼亿眠。 笑死,一個(gè)胖子當(dāng)著我的面吹牛磅废,可吹牛的內(nèi)容都是我干的纳像。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼拯勉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼竟趾!你這毒婦竟也來(lái)了憔购?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤岔帽,失蹤者是張志新(化名)和其女友劉穎玫鸟,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體山卦,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鞋邑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了账蓉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡逾一,死狀恐怖铸本,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情遵堵,我是刑警寧澤箱玷,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站陌宿,受9級(jí)特大地震影響锡足,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜壳坪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一舶得、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧爽蝴,春花似錦沐批、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至发框,卻和暖如春躺彬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背梅惯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工宪拥, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人个唧。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓江解,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親徙歼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子犁河,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,527評(píng)論 25 707
  • 第三章 Java內(nèi)存模型 3.1 Java內(nèi)存模型的基礎(chǔ) 通信在共享內(nèi)存的模型里鳖枕,通過(guò)寫-讀內(nèi)存中的公共狀態(tài)進(jìn)行隱...
    澤毛閱讀 4,341評(píng)論 2 22
  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程,因...
    小菜c閱讀 6,358評(píng)論 0 17
  • 把要做的事情寫在紙上桨螺。豎型排版宾符。時(shí)間按照十五分鐘一個(gè)單位,精確到每個(gè)任務(wù)的每個(gè)百分比灭翔。A4紙上被分出好幾個(gè)象限魏烫,工...
    軼哲安生閱讀 193評(píng)論 0 0
  • 我和打錄靈魂35:打錄父言子語(yǔ)31集 記錄者:余俊娟 時(shí)間:20170926,周二 啾啾說(shuō)記筆記:導(dǎo)師怎么說(shuō)/我的...
    余俊娟閱讀 146評(píng)論 0 0