秉心说

秉心说

秉心识本源,于事少凝滞

Scroll Down

“无处不在” 的系统核心服务 —— ActivityManagerService 启动流程解析

本文基于Android9.0,代码仓库地址:android_9.0.0_r45系列文章目录:Java世界的盘古和女娲——ZygoteZygote家的大儿子——SystemServerAndroid世界中,谁喊醒了Zygote?文中相关源码链接:SystemServer.javaActivityMan

2019-10-27
244 0

【Medium 万赞好文】ViewModel 和 LiveData:模式 + 反模式

原文作者:JoseAlcérreca原文地址:ViewModelsandLiveData:Patterns+AntiPatterns译者:秉心说View和ViewModel分配责任理想情况下,ViewModel应该对Android世界一无所知。这提升了可测试性,内存泄漏安全性,并且便于模块化。通常的

2019-10-21
64 0

Android 世界中,谁喊醒了 Zygote ?

本文基于Android9.0,代码仓库地址:android_9.0.0_r45文中源码链接:SystemServer.javaActivityManagerService.javaProcess.javaZygoteProcess.java对Zygote和SystemServer启动流程还不熟悉的建

2019-10-15
171 0

Zygote家的大儿子 —— SystemServer

本文基于Android9.0,代码仓库地址:android_9.0.0_r45文中源码链接:SystemServer.javaSystemServiceManager.javaSystemService.java首先来回顾一下上篇文章Java世界的盘古和女娲——Zygote,主要介绍了Android

2019-10-13
151 0

Java 世界的盘古和女娲 —— Zygote

本文基于Android9.0,代码仓库地址:android_9.0.0_r45文中源码链接:Zygote.javaZygoteInit.javaZygoteServer.javaZygoteConnection.javaRuntimeInit.java仔细看看下面这张Android体系图,找一下Zy

2019-09-28
177 0

Null is your friend, not a mistake

原文作者:RomanElizarov原文地址:Nullisyourfriend,notamistake译者:秉心说KotlinIslandfromWikimediabyPavlikhin,CCBY-SA4.0我使用Java语言编程已经很久很久了,掌握了通过Java编写和维护大型软件(百万行代码)应该

2019-09-18
54 0

深入理解 ThreadLocal

前言上篇文章深入理解Handler消息机制中提到了获取线程的Looper是通过ThreadLocal来实现的:publicstatic@NullableLoopermyLooper(){returnsThreadLocal.get();}每个线程都有自己的Looper,它们之间不应该有任何交集,互不

2019-09-10
60 0

深入理解 Handler 消息机制

记得很多年前的一次面试中,面试官问了这么一个问题,你在项目中一般如何实现线程切换?他的本意应该是考察RxJava的使用,只是我的答案是Handler,他也就没有再追问下去了。在早期Android开发的荒芜时代,Handler的确承担了项目中大部分的线程切换工作,通常包括子线程更新UI和消息传递。不光

2019-09-05
69 0

细数 SharedPreferences 的那些槽点 !

前言最近在处理一个历史遗留项目的时候饱受其害,主要表现为偶发性的SharedPreferences配置文件数据错乱,甚至丢失。经过排查发现是多进程的问题。项目中有两个不同进程,且会频繁的读写SharedPreferences文件,所以导致了数据错乱和丢失。趁此机会,精读了一遍SharedPrefer

2019-08-28
122 1

如何正确的在 Android 上使用协程 ?

前言你还记得是哪一年的GoogleIO正式宣布Kotlin成为Android一级开发语言吗?是GoogleIO2017。如今两年时间过去了,站在一名Android开发者的角度来看,Kotlin的生态环境越来越好了,相关的开源项目和学习资料也日渐丰富,身边愿意去使用或者试用Kotlin的朋友也变多了。

2019-08-21
58 0