移动开发的那些事儿

21 篇文章
15 人订阅

全部文章

大大大大大先生

内存泄露的一些坑

如上,在Activity内部如果声明一个这样的Handler,那么myHandler就默认持有Activity引用,假设Activity退出了,但是可能这时候才...

1302
大大大大大先生

IM二分法智能心跳策略

873
大大大大大先生

IM TCP网络问题分析

应该下调心跳周期,但是旧版(1.0.1Realease-1.0.6Realease版本)存在

752
大大大大大先生

Android ANR在线监控原理

如上是从ActivityManagerService提取出来关于Watchdog监控ActivityManagerService这个对象锁的相关代码,而监控的实...

852
大大大大大先生

TCP问题分析

![tcp1.jpg](http://upload-images.jianshu.io/upload_images/1609288-0260d9484b...

973
大大大大大先生

Android界面绘制原理

从普遍的意义上来讲,以上这段代码就是设置WindowManager和DecorView的关系,继续看:

1021
大大大大大先生

Android开发之逻辑单元测试

以上createInetSocketAddress方法就是我在编写单元测试的时候单独抽离出来的方法,一方面我需要mock一个InetSocketAddress来...

701
大大大大大先生

DHCP租约到期自动续租问题导致TCP连接异常

以上是发起请求后有正常收到Ack的情况,但是接下来设备发起了请求并没有收到Ack,所以导致设备一直不断的去发起DHCP请求,而且此时设备并没有网络切换广播,并且...

1224
大大大大大先生

APP,Activity的启动速度优化

以上打印出了所谓的thisTime和totalTime,thisTime是指当前Activity的启动时间,正常情况下,如果从桌面启动一个Activity,那么...

1263
大大大大大先生

startActivity的Hook之路

由上可知,最终是通过ActivityThread里面的mInstrumentation对象来执行execStartActivity,而ActivityThrea...

942
大大大大大先生

Android事件分发原理分析

在Android中,触碰控件的时候回产生一个ACTION_DOWN事件并逐层向下传递,首先ACTION_DOWN回先从Activity的dispatchTouc...

623
大大大大大先生

BlockCanary源码解析

如上代码中的loop()方法是Looper中的,我们的目的是监测主线程的卡顿问题,因为UI更新界面都是在主线程中进行的,所以在主线程中做耗时操作可能会造成界面卡...

652
大大大大大先生

JVM的类加载机制

其中,加载,验证,准备,初始化和卸载这5个阶段的顺序是确定的,类的加载过程必须按照这种顺序开始,而类的解析不一定,类的解析可能在初始化阶段之后再开始,这是为了支...

1463
大大大大大先生

Android中使用Contentprovider导致进程被杀死

Contentprovider也是四大组件之一,支持跨进程调用,因此肯定会用到IPC的Binder机制来实现跨进程调用,在应用层就是AIDL

571
大大大大大先生

JVM的垃圾收集器策略

程序可以通过判断引用队列中是否已经加入了虚引用,来了解被引用的对象是否将要被垃圾回收。如果程序发现某个虚引用已经被加入到引用队列,那么就可以在所引用的对象的内存...

1005
大大大大大先生

Android Sqlite并发问题

如上异常堆栈中的错误信息error code 5: database is locked,经过查找发现code为5代表sqlite中的SQLITE_BUSY异常...

774
大大大大大先生

从源码的角度分析ThreadPoolExecutor实现原理

下面继续分析线程池如何管理运行线程,其实就一句话,维护一个线程队列,然后对这个线程队列进行存取操作

872
大大大大大先生

自定义实现垂直滚动的TextView

通过控制y参数可实现文字不同的垂直距离,这里的x,y并不代表默认横向坐标为0,纵向坐标为0的坐标,具体详解我觉得这篇博客解释的比较清楚,我们主要关注的是参数y的...

952
大大大大大先生

数据结构?从HashMap的源码分析开始!

首先,先看下inflateTable方法,这个是初始化HashMap里面的线性表的空间:

621
大大大大大先生

JVM内存区域与OOM

当虚拟机在执行方法testMethod的时候,这时候就会在Java虚拟机栈上创建一个栈帧,然后入栈,然而在testMethod方法内又不断的递归调用testMe...

812

扫码关注云+社区