最近一時(shí)興起,想對(duì)Android的啟動(dòng)流程進(jìn)行一次分析,經(jīng)過一番整理,從以下幾個(gè)方面進(jìn)行總結(jié),代碼部分只討論思路,不論細(xì)節(jié)。 Android架構(gòu)介紹 Android啟動(dòng)概述 ...
最近一時(shí)興起,想對(duì)Android的啟動(dòng)流程進(jìn)行一次分析,經(jīng)過一番整理,從以下幾個(gè)方面進(jìn)行總結(jié),代碼部分只討論思路,不論細(xì)節(jié)。 Android架構(gòu)介紹 Android啟動(dòng)概述 ...
Flow 冷流、熱流概念 冷流:當(dāng)數(shù)據(jù)被訂閱的時(shí)候,發(fā)布者才開始執(zhí)行發(fā)射數(shù)據(jù)流的代碼。并且當(dāng)有多個(gè)訂閱者的時(shí)候,每一個(gè)訂閱者何發(fā)布者都是一對(duì)一的關(guān)系,每個(gè)訂閱者都會(huì)收到發(fā)布者...
4.會(huì)造成內(nèi)存泄露,當(dāng)Activity結(jié)束時(shí),消息隊(duì)列中還有消息時(shí),activity沒有被及時(shí)釋放,此時(shí)就有可能會(huì)造成內(nèi)存泄漏。解決方式也很簡單,創(chuàng)建靜態(tài)內(nèi)部類Handler,然后采用弱引用方式持有activity
Android消息機(jī)制:Handler淺析Android的消息機(jī)制主要是指Handler的運(yùn)行機(jī)制,Handler的運(yùn)行需要底層的MessageQueue和Looper的支撐。Android規(guī)定訪問UI只能在主線程進(jìn)...
3.ANR指的指當(dāng)前的事件沒有機(jī)會(huì)得到處理或者當(dāng)前的事件正在處理,但沒有及時(shí)完成。ActivityThread的main方法主要就是做消息循環(huán),一旦退出消息循環(huán),那么你的應(yīng)用也就退出了。只要你對(duì)消息隊(duì)列里面的消息一直都是會(huì)被處理的,那么就不會(huì)造車過ANR。但還有一種情況,如果你處理的消息時(shí)間太長,超過了閾值,那么也會(huì)造成ANR
Android消息機(jī)制:Handler淺析Android的消息機(jī)制主要是指Handler的運(yùn)行機(jī)制,Handler的運(yùn)行需要底層的MessageQueue和Looper的支撐。Android規(guī)定訪問UI只能在主線程進(jìn)...
目前很多項(xiàng)目都會(huì)把AndroidManifest文件中的配置信息,放到build.gradle中自動(dòng)化配置,我們當(dāng)然也不能落后舉個(gè)例子。 1.在module下的build.g...
2.線程安全,采用了循環(huán)加鎖的方式,在處理完所有消息時(shí)會(huì)釋放鎖
Android消息機(jī)制:Handler淺析Android的消息機(jī)制主要是指Handler的運(yùn)行機(jī)制,Handler的運(yùn)行需要底層的MessageQueue和Looper的支撐。Android規(guī)定訪問UI只能在主線程進(jìn)...
1.一個(gè)線程只能創(chuàng)建一個(gè)Looper 在創(chuàng)建時(shí)會(huì)進(jìn)行校驗(yàn),如果存在就會(huì)拋出異常
Android消息機(jī)制:Handler淺析Android的消息機(jī)制主要是指Handler的運(yùn)行機(jī)制,Handler的運(yùn)行需要底層的MessageQueue和Looper的支撐。Android規(guī)定訪問UI只能在主線程進(jìn)...
5.協(xié)程中有一個(gè)規(guī)則:當(dāng)一個(gè)協(xié)程的父協(xié)程是協(xié)程時(shí),那么父級(jí)的job就是job。和父級(jí)的job是不是supervisorjob無關(guān)
kotlin協(xié)程的Job和SupervisorJob的一些筆記Job是協(xié)程的默認(rèn)context 子協(xié)程不會(huì)繼承父協(xié)程的context,會(huì)使用默認(rèn)值 協(xié)程的上下文為SupervisorJob時(shí),該協(xié)程中的異常不會(huì)向外傳播,因此不會(huì)影響其父...
2子協(xié)程會(huì)繼承部分父協(xié)程的content,一部分會(huì)使用默認(rèn)值
kotlin協(xié)程的Job和SupervisorJob的一些筆記Job是協(xié)程的默認(rèn)context 子協(xié)程不會(huì)繼承父協(xié)程的context,會(huì)使用默認(rèn)值 協(xié)程的上下文為SupervisorJob時(shí),該協(xié)程中的異常不會(huì)向外傳播,因此不會(huì)影響其父...
協(xié)程異常捕獲方式:CoroutineExceptionHandler CoroutineExceptionHandler是CoroutineContext的子類,可以用“+”...
Android的消息機(jī)制主要是指Handler的運(yùn)行機(jī)制,Handler的運(yùn)行需要底層的MessageQueue和Looper的支撐。Android規(guī)定訪問UI只能在主線程進(jìn)...
閱讀建議:此篇文章基于room的簡單使用,如果你還沒使用過room存儲(chǔ),可以先閱讀官方文檔 假設(shè)存在如下一個(gè)Bean 使用Room存儲(chǔ)改造的Bean 上面的代碼直接使用roo...
太復(fù)雜的布局可以用代碼實(shí)現(xiàn),布局重疊的地方拖拽有時(shí)候會(huì)拖錯(cuò)
ConstraintLayout:利用鼠標(biāo)拖拽設(shè)計(jì)界面??參見工作以來,寫布局文件一直是我覺得最痛苦也最浪費(fèi)時(shí)間的流程,稍微復(fù)雜一點(diǎn)的界面就需要利用各種LinearLayout和RelativeLayout來嵌套完成界面,利用嵌...
暫時(shí)沒遇到過這個(gè)問題,是不是你Bottom沒指定?
ConstraintLayout:利用鼠標(biāo)拖拽設(shè)計(jì)界面??參見工作以來,寫布局文件一直是我覺得最痛苦也最浪費(fèi)時(shí)間的流程,稍微復(fù)雜一點(diǎn)的界面就需要利用各種LinearLayout和RelativeLayout來嵌套完成界面,利用嵌...
Flutter中的JSON和序列化 前言:本篇文章適合已經(jīng)了解Dart基礎(chǔ)語法的情況下閱讀,若你對(duì)于Dart的一些基礎(chǔ)語法還不熟悉,請(qǐng)移步于Dart中文網(wǎng)先學(xué)習(xí)基礎(chǔ)語法,在閱...
??參見工作以來,寫布局文件一直是我覺得最痛苦也最浪費(fèi)時(shí)間的流程,稍微復(fù)雜一點(diǎn)的界面就需要利用各種LinearLayout和RelativeLayout來嵌套完成界面,利用嵌...
Google在今年的IO大會(huì)上宣布,將Android開發(fā)的官方語言更換為Kotlin,作為跟著Google玩兒Android的人,我們必須盡快了解和使用Kotlin語言。 不...