大佬,6666
初識(shí) JNIJNI 作為 Java/Kotlin(原生端) 同 C/C++ 端交互的工具,是學(xué)習(xí) ffmpeg 的一個(gè)前提,這邊做一個(gè)學(xué)習(xí)過程中的記錄。通過 Android Studio...
前言 本文基于Android 10版本源碼,從Activity啟動(dòng)方法startActivity為切入口分析整個(gè)流程。本文只涉及framework代碼。 涉及到的類介紹 In...
HandlerThread本質(zhì)上還是Thread,繼承了Thread。它與Thread的區(qū)別是內(nèi)部維護(hù)了一個(gè)Looper。當(dāng)我們?cè)谧泳€程中使用Handler的時(shí)候需要?jiǎng)?chuàng)建一個(gè)...
我們知道Service是運(yùn)行在主線程的,主線程中不能進(jìn)行耗時(shí)操作,否則會(huì)發(fā)生ANR。Service中的發(fā)生ANR的超時(shí)時(shí)間是20s。有時(shí)候我們需要應(yīng)用在后臺(tái)默默做一些任務(wù),例...
Retrofit的基本使用 此文章分析的Retrofit是基于Retrofit2.6.0版本。Gradle依賴如下: Retrofit使用步驟 創(chuàng)建Retrofit對(duì)象 我們...
基本使用 LocalBroadcastManager是Android Support包提供了一個(gè)工具,用于在同一個(gè)應(yīng)用內(nèi)的不同組件間發(fā)送BroadcastReceiver。a...
鏈表 鏈表是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過鏈表中的指針連接次序來實(shí)現(xiàn)的。鏈表由一些的節(jié)點(diǎn)組成,節(jié)點(diǎn) 可以在運(yùn)行是動(dòng)態(tài)生成。每個(gè)節(jié)點(diǎn)包括兩...
ArrayList基本介紹 ArrayList是一個(gè)可變的數(shù)組,相當(dāng)于動(dòng)態(tài)數(shù)組。與Java中的數(shù)組相比,它提供了動(dòng)態(tài)的增加和減少元素。 源碼分析 成員變量 構(gòu)造方法 Arra...
沒有卡死是因?yàn)閑poll機(jī)制,nativePullOnce底層調(diào)用的是epoll,會(huì)讓CPU進(jìn)入休眠狀態(tài)
Android中主線程為什么不會(huì)因?yàn)長ooper.loop()里的死循環(huán)卡死?先說結(jié)論:主線程在沒有消息的時(shí)候是阻塞的。主線程沒有卡死,簡單來說是因?yàn)橛衅渌€程通過handler發(fā)送消息喚醒主線程。阻塞并不是卡死,阻塞可以簡單理解為讓出CPU,進(jìn)入休眠...
fail-fast fail-fast機(jī)制在遍歷一個(gè)集合時(shí),當(dāng)集合結(jié)構(gòu)被修改,會(huì)拋出ConcurrentModificationException。 fail-safe fa...
基本使用 okhttp是Square公司開源的一個(gè)非常便捷的輕量級(jí)第三方網(wǎng)絡(luò)訪問框架。它支持同步請(qǐng)求和異步請(qǐng)求。Gradle依賴如下: 異步請(qǐng)求 同步請(qǐng)求 源碼分析 OkHt...
針對(duì)HotSpot VM的實(shí)現(xiàn),它里面的GC其實(shí)準(zhǔn)確分類只有兩大種: Partial GC:并不收集整個(gè)GC堆的模式 Young GC:只收集young gen的GC Old...
賦值之后會(huì)有內(nèi)存同步的
單例模式為什么要用Volatile關(guān)鍵字線程安全的單例模式常見寫法是雙重檢查加鎖。代碼如下: 雙重檢查加鎖的單例模式代碼上就比較復(fù)雜,尤其體現(xiàn)在getInstance方法上,包括兩次檢查singleton是否是nu...