原创 【Medium 萬贊好文】ViewModel 和 LIveData:模式 + 反模式

原文作者: Jose Alcérreca 原文地址: ViewModels and LiveData: Patterns + AntiPatterns 譯者:秉心說 View 和 ViewModel 分配責任 理想情況下,ViewMo

原创 Android 世界中,誰喊醒了 Zygote ?

本文基於 Android 9.0 , 代碼倉庫地址 : android_9.0.0_r45 文中源碼鏈接: SystemServer.java ActivityManagerService.java Process.java Zygote

原创 Zygote家的大兒子 —— SystemServer

本文基於 Android 9.0 , 代碼倉庫地址 : android_9.0.0_r45文中源碼鏈接: SystemServer.java SystemServiceManager.java SystemService.java 首先來

原创 Java 世界的盤古和女媧 —— Zygote

本文基於 Android 9.0 , 代碼倉庫地址 : android_9.0.0_r45文中源碼鏈接: Zygote.java ZygoteInit.java ZygoteServer.java ZygoteConnection.java

原创 Null is your friend, not a mistake

原文作者: Roman Elizarov 原文地址: Null is your friend, not a mistake 譯者:秉心說 Kotlin Island from Wikimedia by Pavlikhin, CC BY

原创 Null is your firend, not a mistake

原文作者: Roman Elizarov原文地址: Null is your firend, not a mistake 譯者:秉心說 Kotlin Island from Wikimedia by Pavlikhin, CC BY-S

原创 深入理解 ThreadLocal

前言 上篇文章 深入理解 Handler 消息機制 中提到了獲取線程的 Looper 是通過 ThreadLocal 來實現的: public static @Nullable Looper myLooper() { return

原创 深入理解 Handler 消息機制

記得很多年前的一次面試中,面試官問了這麼一個問題,你在項目中一般如何實現線程切換? 他的本意應該是考察 RxJava 的使用,只是我的答案是 Handler,他也就沒有再追問下去了。在早期 Android 開發的荒蕪時代,Handler 的

原创 細數 SharedPreferences 的那些槽點 !

前言 最近在處理一個歷史遺留項目的時候飽受其害,主要表現爲偶發性的 SharedPreferences 配置文件數據錯亂,甚至丟失。經過排查發現是多進程的問題。項目中有兩個不同進程,且會頻繁的讀寫 SharedPreferences 文件,

原创 如何正確的在 Android 上使用協程 ?

前言 你還記得是哪一年的 Google IO 正式宣佈 Kotlin 成爲 Android 一級開發語言嗎?是 Google IO 2017 。如今兩年時間過去了,站在一名 Android 開發者的角度來看,Kotlin 的生態環境越來越好

原创 AndroidUtilCodeKTX !是時候提升你的開發效率了 !(更新啦 !)

AndroidUtilCodeKTX (以下簡稱 Ktx) 正式開源已經有一個月了。到目前爲止,在 Github 上收穫了 98 個 star 和 11 次 fork。期間上了一次 Github Trending Kotlin 分類的榜單,

原创 AndroidUtilCodeKTX !是時候提升你的開發效率了 !(持續更新中...)

前言 第一次接觸 Kotlin 還是 2017 年,當時 Kotlin 還沒扶正,也不是 Android 的官方開發語言。至於我是怎麼被安利的,沒記錯的話,應該是 開源實驗室 的 Kotlin 教程。當時身邊幾乎沒有人在學 Kotlin,網

原创 全新 LeakCanary 2 ! 完全基於 Kotlin 重構升級 !

大概一年以前,寫過一篇 LeakCanary 源碼解析 ,當時是基於 1.5.4 版本進行分析的 。Square 公司在今年四月份發佈了全新的 2.0 版本,完全使用 Kotlin 進行重構,核心原理並沒有太大變化,但是做了一定的性能優化。

原创 Retrofit 2.6.0 ! 更快捷的協程體驗 !

近日 Retrofit 更新到了 2.6.0 版本,內置了對 Kotlin Coroutines 的支持,進一步簡化了使用 Retrofit 和協程來進行網絡請求的過程。其實縱觀編程語言的發展歷史,從彙編到 C/C++,從 Java,OC

原创 Android 逆向筆記 —— 說說 Dalvik 及其指令集

在進入正題之前,推薦閱讀一下之前的兩篇文章。第一篇是我的一篇譯文 —— 譯文找不到了,就放一下原文吧。 Closer Look At Android Runtime: DVM vs ART 上面這篇文章簡單比較了 Dalvik 和 Ar