數(shù)據(jù)庫(kù) Room Room 在 SQLite 上提供了一個(gè)抽象層,以便在充分利用 SQLite 的強(qiáng)大功能的同時(shí),能夠流暢地訪問(wèn)數(shù)據(jù)庫(kù) 1.Room 入門 1.gradle添...
數(shù)據(jù)庫(kù) Room Room 在 SQLite 上提供了一個(gè)抽象層,以便在充分利用 SQLite 的強(qiáng)大功能的同時(shí),能夠流暢地訪問(wèn)數(shù)據(jù)庫(kù) 1.Room 入門 1.gradle添...
前面學(xué)習(xí)了Android自定義View(一) -- 初識(shí)Android自定義View(二) -- Paint詳解 今天繼續(xù)學(xué)習(xí)第三篇內(nèi)容drawText(),本文是對(duì)第二篇文...
隨著前端技術(shù)發(fā)展,越來(lái)越多的技術(shù)框架考慮使用 Js 腳本語(yǔ)言來(lái)作為實(shí)現(xiàn)動(dòng)態(tài)化,跨平臺(tái)方案的開發(fā)語(yǔ)言。而 Js 腳本的解析,執(zhí)行的效率決定了框架的性能,所以高性能的 Js 引擎...
混淆(Proguard)用法 最近項(xiàng)目中遇到一些混淆相關(guān)的問(wèn)題,由于之前對(duì)proguard了解不多,所以每次都是面向Stackoverflow的編程。copy別人的答案內(nèi)心還...
調(diào)用Looper.quit()和Looper.quitsafely()的時(shí)候發(fā)生了什么? 根據(jù)官方文檔: Looper.quit() 調(diào)用后直接終止Looper,不在處理任何...
我一定會(huì)愛上你 - 謝春花 ActivityLifecycleCallbacks 是用來(lái)監(jiān)聽所有 Activity 的生命周期回調(diào)。接口定義如下: Activity 的每一個(gè)...
本文已授權(quán) 微信公眾號(hào) 玉剛說(shuō) (@任玉剛)獨(dú)家發(fā)布。 前言 在不久前的Google 2018 I/O大會(huì)上,Google正式推出了AndroidJetpack ——這是一...
1)、三階貝塞爾曲線2)、Path的Measure 一、動(dòng)畫分析 小魚的行走不是簡(jiǎn)單的位移,不難看出在小魚位移的同時(shí)身體的角度還隨著前進(jìn)的方向而變化,所以本篇要解決如下兩部分...
引言 在開發(fā)中經(jīng)常會(huì)遇到,一個(gè)列表(RecyclerView)中有多種布局類型的情況。前段時(shí)間,看到了這篇文章 [譯]關(guān)于 Android Adapter,你的實(shí)現(xiàn)方式可能一...
希望作者改一下,你確實(shí)寫反了,會(huì)影響其他讀者的。Lrucache源碼trimToSize()方法 Map.Entry<K, V> toEvict = map.eldest();在LinkHashMap中的源碼 public Map.Entry<K, V> eldest() {
return head;
},LinkHashMap的get方法源碼public V get(Object key) {
Node<K,V> e;
if ((e = getNode(hash(key), key)) == null)
return null;
if (accessOrder)
afterNodeAccess(e);
return e.value;
},
void afterNodeAccess(Node<K,V> e) { // move node to last(這里是源碼自己的注釋)
Outline [TOC] 前言 大家喜聞樂見的Backpressure來(lái)啦. 這一節(jié)中我們將來(lái)學(xué)習(xí)Backpressure. 我看好多吃瓜群眾早已坐不住了, 別急, 我們先...
Outline [TOC] 前言 在上一節(jié)中, 我們找到了上下游流速不均衡的源頭 , 在這一節(jié)里我們將學(xué)習(xí)如何去治理它 . 可能很多看過(guò)其他人寫的文章的朋友都會(huì)覺得只有F...