[返回] [最新] [最热门] [最高评价]

浅析WeakHashMap

在Java或者是Android编程中,我们一般都会使用到Map,比如HashMap这样的具体实现。更高级一点,我们可能会使用WeakHashMap。

WeakHashMap其实和HashMap大多数行为是一样的,只是WeakHashMap不会阻止GC回收key对象(不是value),那么WeakHashMap是怎么做到的呢,这就是我们研究的主要问题。

在开始WeakHashMap之前,我们先要
...

技术小黑屋 2018-07-23 17:24 | 查看: 48

为什么局部变量需要显式设置初始化值

我们在编程中,无时无刻地都在于方法打交道,而在方法中,我们很难不使用局部变量,比如我们有下面的这样一段很简单的代码

1
2
3
4

public void dump() {
String localName;
System.out.println("dump localName=" + localName);
}

随着我们敲打出上面的代码,IDE也会同时抛
...

技术小黑屋 2018-07-16 08:40 | 查看: 327

AssetManager.finalize() timed out after 10 seconds分析

没有代码,就没有bug。程序员在编码时,总会比不避免的出现bug。倒不是因为我们热爱制造bug,创造机会和测试妹子频繁沟通。而是现实情况很复杂,存在着很多不确定性。尤其是那些崩溃从stacktrace上来看,完全想象不到和项目代码之间的直接联系。

在我们的项目崩溃中,有一个比较常见的bug,就是 java.util.concurrent.TimeoutException android.cont
...

技术小黑屋 2018-07-10 21:44 | 查看: 305

宽带提速记

用了一年宽带马上就要到期了,去联通营业厅咨询了一下,发现联通已经悄悄的把我的100M免费升级成了300M(做好事为什么不告诉我一声)。心中划过一丝窃喜,但是随后脑海中抛出了一个疑问,都升到了300M了,怎么丝毫没有感觉到速度提升呢?

联通给的光猫WIFI有问题

在一年前报装的时候,我确实测过网速,当时使用QQ手机管家测过,将近50M到100M。觉得可能是测试节点的问题,就没有太留意。

不过现
...

技术小黑屋 2018-07-01 20:14 | 查看: 347

谁来检查方法参数合法性

我们在编程中的函数或者是方法,大多数都是有参数的。参数对于方法来说是很重要的输入数据,传入的参数值的合法性影响着方法的稳定性,严重时甚至可能导致崩溃问题的出现。

比如这段代码

1
2
3
4
5
6
7
8
9

public static void main(String[] args) {
Book book = null;
new Main().buy(book);
}

p
...

技术小黑屋 2018-05-15 21:31 | 查看: 831

Android中实现用户无感知处理后台崩溃

正所谓,要想没有bug,就一行代码也不写。App到了用户的手里,肯定是崩溃越少越好。Android中的崩溃处理和iOS不太一样,iOS崩溃通常是闪退,而安卓会出现如下的蹩脚的对话框

当你的用户看到类似这样的崩溃对话框时,心中得到“这届程序员不行啊”的感慨也不足为奇。

在安卓中,我们应用会有所谓的前台和后台的概念,在本文这里这样定义,当前应用有Activity展示(即用户明显感知在当前应用),约
...

技术小黑屋 2018-04-01 22:29 | 查看: 801

关于改善强迫症的一些方法

一直以来我都有强迫症,尤其是毕业工作后,明显地感觉更加严重了。经常反复确认水龙头有没有关,锁门后下楼梯,往往又要上来检查一下是否真的锁上。总是担心天然气气有没有关紧。如此种种,每一天在出门离家的时候都是最痛苦的时段。

种种焦虑都是基于自己的某种相对极端的幻想,比如水龙头没有关的话,会使得家里甚至楼下被泡;门没有锁可能导致家里遭窃,重要东西丢失;天然气没有关好,结果更加严重。如此幻想反反复复,使得
...

技术小黑屋 2018-03-17 14:35 | 查看: 425

Android基于坐标对View进行模拟点击事件

在Android中,我们对于View进行模拟点击事件,很容易,比如调用View.performClick即可。

但是有些时候,我们想要更加精细的点击,比如View的某一区域或者某一点进行点击。比如下面的例子。

上面是一个WebView加载了一个视频,我们必须手动点一下播放按钮才能让视频播放,当然我们想要的最好是如下的自动播放效果(进入界面后,自动播放视频)

当然方法有很多,比如通过javas
...

技术小黑屋 2018-03-11 20:30 | 查看: 469

关于应用Kotlin后的编译速度问题

2017年 Kotlin 被 Google 钦定为 Android 开发官方语言之一后,便如火如荼。很多团队开始应用了Kotlin,可谓是收益良多,可是也有一些问题,一个比较明显的就是Kotlin应用后编译速度会比较慢。这种感觉就像我们从Eclipse迁移到Android Studio变慢差不多。本文将尝试介绍一些方法来改善这一问题。

关于项目编译慢有很多原因,在Android项目中,通常会和K
...

技术小黑屋 2018-01-31 22:10 | 查看: 698

网站第一次被黑的记录

一直以来技术小黑屋的博客都运行良好,总以为一个全部静态的博客不会导致被黑。直到最近才着实地体验了一次被黑的滋味。仅以此文记录一下,便于给同样问题的人一些帮助。

大概是周三(2018年1月17号)的时候,有人反馈,访问我的网站,会跳转到支付宝。当然还奇怪,调到支付宝有个甚用,后来使用手机上的浏览器才发现。这个跳转回自动的打开支付宝然后领取红包。又是一起为了支付宝红包的行为。以前听说过用有人用基站发
...

技术小黑屋 2018-01-23 22:14 | 查看: 660

Kotlin中常量的探究

在我们尝试使用Kotlin作为开发语言的时候,应该会想到在Kotlin中如何定义一个常量,就像Java中这样的代码一样

1

public static final double PI = 3.14159265358979323846;

在Kotlin中,提供了两个简单的关键字,一个是var,另一个是val

var 表示普通的可变的变量,可读和可写

val 表示为只读的变量。相当于Java
...

技术小黑屋 2017-11-05 20:53 | 查看: 738

我学习Android的一些套路

今天我将给大家分享一下我学习Android的一些方法和想法,分享中并不局限于Android哪一块怎么学习。而是一个总体的,普适性的学习套路和方法。希望可以帮助大家解决一些问题。

注意本文为知乎Live底稿,知识点相对分散,后面部分包含了一些听众提出的问题,但是不影响总体的阅读和理解。

Android需要打好哪些编程基础

Java基础(Kotlin)(参考技能树 http://olabqc6
...

技术小黑屋 2017-10-22 21:43 | 查看: 811

...更多...