0%

前言

大道至简,单例模式说简单也简单,说复杂也复杂。今天我们就来说说Java的单例模式。

阅读全文 »

前言

我们知道,在多线程环境下使用竞争资源,为了保证程序正确性,进入临界区之前需要加锁保护。Java中的volatile和synchonized两个关键字作为同步手段常常令人疑惑。什么时候该用volatile,什么时候该用synchonized,一直不太明确,今天就来捋捋吧。

阅读全文 »

前言

最近做需求,使用了ListPopupWindow,但是发现在ListView列表中,显示PopupWindow时,有可能会往上滚动(见下图),觉得有点奇怪,就花了点时间去找原因。

阅读全文 »

前言

Android从4.4开始提出透明状态栏的概念,在5.0之后才有比较像样的沉浸式状态栏,虽然不能修改状态栏图标颜色,至少体验变得更好了,但是对于开发者来说,Android因为版本分裂,导致没法统一,对于开发者来说的确是一件比较头疼的事,下面让我们来看看其中的坑吧。

阅读全文 »

1. 前言

MVP由MVC演变而来,Android的项目架构也是基于MVC的,V层主要由xml来承载,C层主要是Fragment/Activity,M层主要是自己写的业务逻辑,这样划分没啥问题。可以理想很美好,现实很残酷,到后面你会发现很多的Fragment/Activity即做了一些V层的工作(比如控制View的状态),又做了一些C层工作(操作Model、用户数据输入等),又做了一些M层工作(读写数据库,网络请求等),最终导致Fragment/Activity越来越膨胀,上千行甚至几千行的Fragment/Activity也屡见不鲜。

阅读全文 »

1. 前言

最近打算写一篇关于Android-Matrix的文章,中间涉及到不少数学公式,发现直接用文字很难把公式写出来。后来发现了mathjax这个神器,它可以把latex公式翻译成html直接展示在markdown文件中。于是花了点时间学了一下latex编辑公式的方法,顺便记录一下,供以后翻阅。

2. 准备工作

2.1 安装插件

1
npm install hexo-math --save

然后将如下配置放到站点config.xml文件末尾,详情请参考这里:https://github.com/hexojs/hexo-math

1
2
3
4
5
6
7
8
9
10
11
math:
engine: 'mathjax' # or 'katex'
mathjax:
src: custom_mathjax_source
config:
# MathJax config
katex:
css: custom_css_source
js: custom_js_source # not used
config:
# KaTeX config

同时找到主题配置文件config.xml,将mathjax插件打开,改成如下

1
2
3
4
5
# MathJax Support
mathjax:
enable: true
per_page: true
cdn: //cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML

2.2 使用

latex语法以符号开头,以符号结束,这里为了在hexo中安装插件,代价就是需要在latex语言的起始处替换成

1
{% math %}

在结尾处替换成

1
{% endmath %}

1
{% math %}y_1=y_0+\Delta y{% endmath %}

则显示

1
y1=y0+Δy

3. 数学公式

3.1 指数

3.2 平方根

3.3 下划线


3.4 向量

3.5 分数

3.6 积分

3.7 极限

3.8 方程

1
2
3
{% math %}
\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.
{% endmath %}
1
Γ(z)=∫∞0t^(z−1)e^(−t)dt
1
2
3
4
5
6
{% math %}
\frac{\partial u}{\partial t}
= h^2 \left( \frac{\partial^2 u}{\partial x^2}
+ \frac{\partial^2 u}{\partial y^2}
+ \frac{\partial^2 u}{\partial z^2}\right)
{% endmath %}

3.9 矩阵

3.9.1 中括号矩阵
1
2
3
4
5
6
7
8
9
10
{% math %}
\left[
\begin{matrix}
1 & 2 & \cdots & 4 \\
7 & 6 & \cdots & 5 \\
\vdots & \vdots & \ddots & \vdots \\
8 & 9 & \cdots & 0 \\
\end{matrix}
\right]
{% endmath %}
3.9.2 大括号矩阵

如果想要把中括号换成大括号,将[换成{即可

1
2
3
4
5
6
7
8
9
10
{% math %}
\left\{
\begin{matrix}
1 & 2 & \cdots & 4 \\
7 & 6 & \cdots & 5 \\
\vdots & \vdots & \ddots & \vdots \\
8 & 9 & \cdots & 0 \\
\end{matrix}
\right\}
{% endmath %}
3.9.3 带竖线矩阵
1
2
3
4
5
6
7
8
{% math %}
\left[
\begin{array}{cc|c}
1 & 2 & 3 \\
4 & 5 & 6
\end{array}
\right]
{% endmath %}

[1425|36]

4. 常用符号







5. 参考

前言

最近app准备大改版,整体视觉全部换新。栏目管理功能也需要进行全新设计和改变,新版中加了不少动画效果。因为老版架构使用GridView进行栏目展示,但是GridView在栏目增加和删除时播放动画比较困难,而且老架构中栏目管理功能代码混乱,到底是重构还是重写?经过认真评估,最终决定重写该功能。

阅读全文 »

前言

之前和同事聊起了蚂蚁花呗,对于这种先使用后付费的商业模式非常好奇。为什么这样的模式也能赚到钱?后来思索了一下,发现其中确实有不少套路。

阅读全文 »

1. 前言

Android中View的重要性堪比四大组件,甚至有过之而无不及。View是Android提供给开发者呈现UI的方式。在越来越重视用户体验的时代,UI是App的门面,想要快速高效地做出各种炫酷页面,必须要了解Android-View的工作原理。

阅读全文 »