最近在忙Android包體積優(yōu)化的工作,將包體積從大于87MB降到了不到65MB,降幅超過25%,做到了全行業(yè)競(jìng)品包體積最小??偨Y(jié)下用到的工具和...
在更深入的了解之前,讓我們先從一些例子看起:讓我們先寫一個(gè)簡(jiǎn)單的泛型類: 代碼很簡(jiǎn)單,代碼邏輯沒有問題,編譯也能通過。但是如果把boxDog賦值...
首先看堆棧: 大概是說 startForegroundService 但是沒有調(diào)用 Service.startForeground()。回到業(yè)務(wù)...
多線程通信往往是個(gè)很頭疼的事情,Coroutine也不例外。多線程中有SynchronousQueue、Exchanger等,Coroutine...
Coroutine scope負(fù)責(zé)在不同的coroutine之間形成結(jié)構(gòu)化和父-子關(guān)系(這里有點(diǎn)抽象,稍后會(huì)解釋什么是結(jié)構(gòu)化和父-子關(guān)系),通常...
和線程Thread相比,Kotlin的Coroutines非常的輕量。開啟一個(gè)新的Coroutines可以使用launch,async或者run...
很久之前就想寫這篇文章了,一方面是因?yàn)閾Q工作啥的忙了一段時(shí)間,另一方面是想再用用更穩(wěn)一點(diǎn)再和大家分享。 15款的Mac可以更換硬盤,再后面的版本...
之前項(xiàng)目中有豎向RecyclerView的子item中嵌套橫向RecyclerView,當(dāng)時(shí)橫向直接用了RecyclerView,雖然感覺橫向的...
Gradle插件本質(zhì)就是一堆能夠被復(fù)用的task的集合,就像抽取工具類一樣。為了能寫出一個(gè)可以發(fā)布的插件,先一步一步來(lái)。按照Gradle官方的文...