天花板的随笔

人与人之间最小的差距是智商,最大的差距是坚持!记录点滴,稳步成长!

Binder远程服务重连机制

1、概述 在日常的开发中,我们经常会定义AIDL接口文件,然后使用BindService或者ServiceManager.getService(String name)的方式绑定一个远程的服务,获取到IBinder对象,然后转换成接口使用。但是一旦远程服务异常挂掉,这个时候客户端与服务端的连接其...

2018-08-28 09:57:15

阅读数 273

评论数 0

Handler机制中线程切换和消息阻塞再剖析

1、Handler是如何实现线程转换的? 如果要理解知识点,我们必须要清楚MessageQueue、Looper、和Handler的内在联系和运行机制。总体来说,Looper.prepare()方法为当前线程创建了一个Looper对象和一个MessageQueue对象,然后把他们放到线程...

2018-08-26 00:22:08

阅读数 808

评论数 0

Java多线程并发探索

1、什么是线程? 在解答什么是线程之前,我们要清楚什么是进程。进程是程序代码的一次动态执行,是系统进行资源分配和调度的一个独立单位。线程是进程中的一个执行单元,是CUP调度和执行的基本单位。 一个进程可以有多个线程,但至少拥有一个线程;一个线程必定需要有一个父进程。 线程之间可以共享父进程的...

2018-08-21 09:54:58

阅读数 93

评论数 0

Android AudioFocus音频焦点机制学习和理解

1、为什么会有音频焦点机制? 我们android系统里面会安装各种多媒体软件,如果不制定一个有效合理的规则,各个应用各自为政,那么可能就会出现各种播放器、软件的混音。音频焦点机制规定某一时刻只能有一个应用获取到声音的焦点,这个时候就可以发出声音。当然,在这个应用获取到焦点之前,需要通知其...

2018-08-17 16:32:56

阅读数 1560

评论数 0

关于Binder机制的学习和理解

1、Android为什么选用Binder? 虽然Linux已经存在很多IPC的方式,比如Socket、管道、消息队列、共享内存等,但是这些方式还是存在一些不足的地方。 a、首先传统的IPC机制没有安全措施,接收方无法获取对方进程的进程ID或者UID,完全需要依靠上层的协议,比如用户密码这些来保...

2018-08-14 17:01:09

阅读数 157

评论数 0

Dialog弹窗操作相关注意事项

现在项目中经常会涉及到弹窗的操作,有时候我们会用windmanager来直接加载一个布局作为弹窗,有时候一些简单的弹窗也可以用继承dialog的形式自定义弹窗,同样可以达到预想的效果。下面贴出一段创建自定义弹窗的代码片: Dialog mDialog = new Dialog...

2018-08-14 09:27:21

阅读数 386

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭