CodeXiaoMai

CodeXiaoMai的博客


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

EnvironmentSwitcher

置顶 | 发表于 2019-07-29 更新于 2019-08-05 分类于 开源 阅读次数:
本文字数: 8.4k

Environment Switcher 是一个在 Android 的开发和测试阶段,运用 Java 注解、APT、反射、混淆等原理来一键切换环境的工具。

目前该项目已经达成如下成就:
GitHub starsGitHub forksGitHub watchers

阅读全文 »

Java 值传递

发表于 2019-11-16 更新于 2019-11-23 分类于 Java 阅读次数:
本文字数: 2.6k

其实 Java 中是只存在值传递的,不存在引用传递。因为我们大多数人是从 C 语言入门,而 C 语言中是存在引用传递的,所以很容易在 Java 中混淆。

阅读全文 »

Java 线程安全的集合

发表于 2019-11-10 更新于 2019-11-23 分类于 Java 阅读次数:
本文字数: 7.1k

在 Java 中我们使用最多的 List 就是 ArrayList 和 LinkedList,它们在单线程中可以说是”玩的不亦乐乎”,而在多线程并发操作时就不行了。Java 为我们提供了几种方式以适应多线程下的 List 操作场景。本文将介绍几个多线程中适用的 List,文章最后也会介绍线程安全的 Map、Set 以及 Queue 和 Deque 的几个实现类。

阅读全文 »

Java内存模型

发表于 2019-11-10 更新于 2019-11-23 分类于 Java 阅读次数:
本文字数: 6.5k

Java 内存模型是多线程并发的基础,理解了 Java 内存模型能够对多线程并发中的问题迎刃而解。Java 的内存模型在很大程度上与硬件的交互模型类似,所以先了解一下硬件的交互。

阅读全文 »

IntentService源码解析

发表于 2019-09-24 更新于 2019-11-08 分类于 Android 阅读次数:
本文字数: 6k

IntentService 是 Service 的子类,当然也是用于处理耗时操作的,通过 startService(Intent) 启动,并且会在工作线程中处理每个 Intent,并在操作结束或不正常时自行停止。

阅读全文 »

Handler消息机制源码解析

发表于 2019-09-23 更新于 2019-09-24 分类于 Android 阅读次数:
本文字数: 25k

Handler 消息机制是由 Message MessageQueue Handler Looper 共同完成的。

Handler 消息机制是用于在同一个进程中的多个线程之间进行通信的。由于工作线程与主线程共享地址空间,即 Handler 实例对象 mHandler 位于线程间共享的内存堆上,所以工作线程与主线程都能直接使用该对象,只需要注意多线程的同步问题。工作线程通过 mHandler 向其成员变量 MessageQueue 中添加新 Message,主线程一直处于 loop() 方法中,当收到新的 Message 时按照一定规则分发给相应的 handleMessage() 方法来处理。所以说,Handler 消息机制用于同进程的线程间通信的核心是线程间共享内存空间,而不同进程拥有不同的地址空间,也就不能用 Handler 来实现进程间通信。

阅读全文 »

FragmentManager is already executing transactions 异常分析

发表于 2019-09-13 更新于 2019-12-04 分类于 Android 阅读次数:
本文字数: 17k

今天是 2019年09月13日,农历八月十五。没错今天是中秋节,而且对我来说,今年的中秋不一样🖕。

故事是这样的 ——

中秋前一天的晚上线上发现了问题,在家改bug到后半夜。中秋当天上午早上又接到线上的问题反馈,于是在家与其他几个小伙伴一起连线排查解决。经过一上午的努力,修改了几个问题,但是有两个问题没有查到原因和解决办法,于是决定下午去公司解决,还好下午狠顺利的将问题复现了,并找到了原因和解决办法。当把问题都回归验证后,已经是快晚上7点钟了。回到家不到 8 点,吃了一大碗大家下午包的给我一个人留得饺子……

扯蛋完毕,现在回到正题。

阅读全文 »

刘海屏适配

发表于 2019-09-10 更新于 2019-09-15 分类于 Android 阅读次数:
本文字数: 15k

关于刘海屏的适配方案有两种:

  1. 可以在刘海屏区域展示,即使部分内容被『吃掉』也没关系;
  2. 不可以在刘海屏区域展示,避免重要的信息不能被用户看到,影响使用。

本文针对这两种情况进行分析:

阅读全文 »

Dialog 中监听键盘弹出与收起事件

发表于 2019-08-07 分类于 Android 阅读次数:
本文字数: 6.6k

最近遇到了一个在 Dialog 中监听键盘弹出与收起事件的需求,经过查询资料再与自己的需求相结合然后思考,最终解决了问题。现将中间遇到的问题与解决办法记录下来。

阅读全文 »

个人博客进化史

发表于 2019-08-05 更新于 2019-08-08 分类于 其他 阅读次数:
本文字数: 578

个人博客是一个不断进化的过程,在这里记录下博客优化的点点滴滴。

阅读全文 »
12
CodeXiaoMai

CodeXiaoMai

CodeXiaoMai的博客
12 日志
6 分类
19 标签
GitHub E-Mail
© 2019 CodeXiaoMai
|