Drawable和stateSet的关系

Drawable和stateSet的关系 state实际上就是一个整型数组,你可以追加各种state,比如state_press、state_press。 用xml生成Drawable <selector xmlns:android="http://sche...

2019-03-08 11:40:07

阅读数 23

评论数 0

ARouter使用

ARouter使用 简介 ARouter是阿里巴巴出品的路由框架,最佳实践是作为组件化中,不同组件之间页面跳转的中间件,可以有效解耦跳转方和目标页。 配置 模块下的build.gradle,比如app/build.gradle: defaultConfig { javaCompil...

2019-03-03 21:06:34

阅读数 31

评论数 0

KeyEvent事件的传递

KeyEvent事件的传递 最近解bug的时候遇到这么一个case,就是用户点击导航栏的返回键时,onBackPress并没有执行,再进一步调试发现onKeyDown也没有执行到。所以下面我会尽可能从代码层面分析KeyEvent事件的传递,而一些涉及WMS,IME的就不去深入分析了。 KeyEv...

2019-01-16 14:59:10

阅读数 57

评论数 0

Linux epoll机制

阻塞和非阻塞轮询 当缓冲区为空的时候我们需要阻塞起来(线程切换消耗资源),或者不断地进行轮询(消耗CPU)。 缺点 阻塞的缺点是:只能处理一个线程的IO流。 非阻塞轮训可以同时处理多个流,我们只要不停的把所有流从头到尾问一遍,又从头开始。这样就可以处理多个流了,但这样的做法显然不好,因为如果所有...

2018-10-31 01:29:07

阅读数 42

评论数 0

Activity onSaveInstanceState的调用时机

Activity onSaveInstanceState的调用时机 1、调起“最近任务”,然后杀掉 onPause -> onSaveInstanceState -> onStop onPause()是保证执行的;而onDestory则会由于进程被直...

2018-09-26 10:35:56

阅读数 44

评论数 0

Java算术右移和逻辑右移

>> 是算术右移运算符,算术右移左边空位补上符号位 >>> 是逻辑右移,也叫无符号右移,左边空位补0 例: -4 >> 1 = -2 -...

2018-09-12 22:17:13

阅读数 84

评论数 0

01背包问题

背包问题就是:有一堆物品,物品有重量(weight)和价值(value)的属性。求给定背包的容量,最大能容纳的物品总价值。 编号 重量 价值 1 2 3 2 3 4 3 4 5 4 5 6 最大能装的 ...

2018-09-11 23:01:40

阅读数 58

评论数 0

Java内存模型与线程

线程与内存 CPU内存模型: JVM内存模型: Java中线程只能对工作内存进行操作,保证线程中使用到的变量都在工作内存中存在一份拷贝。 Java中的主内存主要对应于Java堆中的对象实例部分,而工作内存则对应于虚拟机栈中的部分区域。 虚拟机可能会让工作内存优先存储与寄存器和高速...

2018-09-10 14:23:47

阅读数 36

评论数 0

【转】Java内存屏障和可见性

Java内存屏障和可见性 引言 在多线程编程中,有的时候会看见如下的代码 public class task{ private boolea...

2018-09-10 12:22:25

阅读数 65

评论数 0

Android Activity的四种启动模式

启动模式 当活动被复用的时候,onNewIntent会被调用。 1.standard 每次开启一个活动都创建一个实例,并且调用生命周期的方法 2. singleTop 栈顶复用模式 如果要开启的活动已经处于任务栈栈顶,就不会创建实例 3. singleTask 检测整个任务...

2018-09-09 21:45:42

阅读数 40

评论数 0

Fragment生命周期和Activity通讯方法

Fragment生命周期 1. Fragment为什么被成为第五大组件 android3.0引入,为了兼容大屏幕。 Fragment有自己的生命周期 可以动态加载到acitivty中 两种加载方式 1)静态加载,通过布局文件 2)动态加载,通过FragmentManager ...

2018-09-09 20:36:57

阅读数 65

评论数 0

自定义控件之侧滑菜单SlidingViewGroup

自定义控件之侧滑菜单SlidingViewGroup 本文主要介绍实现一个侧滑菜单的过程。利用ViewGroup来实现,并且具有强扩展性,用户可以自定义主要内容视图和侧滑菜单视图,并妥善处理了父View跟子View的滑动冲突问题。 灵感来源与需求 灵感主要来自TIM的聊天信息的滑动菜单:...

2018-08-24 01:00:36

阅读数 71

评论数 1

Android Toast机制实现原理

Toast的实现原理 通过本文,你将懂得: 1. 为什么调用Toast的子线程需要Looper.prepare() 2. Toast的Window是在哪里创建的 Toast中的IPC通信 在Toast的实现中主要有两类IPC通信: 1. 从Toast通过IPC访问Notificat...

2018-08-21 21:50:16

阅读数 74

评论数 0

【转载】Android 路由框架ARouter最佳实践

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/76165252 本文出自【赵彦军的博客】 一:什么是路由? 说简单点就是映射页面跳转关系的,当然它也包含跳转相关的一切功能。...

2018-08-21 02:42:08

阅读数 63

评论数 0

IntentService的实现

IntentService 是继承于 Service 并处理异步请求的一个类,在 IntentService 内有一个工作线程来处理耗时操作,启动 IntentService 的方式和启动传统 Service 一样,同时,当任务执行完后,IntentService 会自动停止,而不需要我们去手动...

2018-08-18 13:49:33

阅读数 51

评论数 0

Android中服务和线程的区别

线程 线程始于.start()方法,终止于运行run()方法运行结束或者线程所在进程的结束。 服务 服务始于Context.startService()方法或者bindService()方法,终止于stopService()或unbindService() 一个Service 是...

2018-08-18 13:49:07

阅读数 469

评论数 0

Java并发机制和Java中提供的锁介绍

参考 https://www.cnblogs.com/dolphin0520/p/3920373.html Java中的非阻塞算法 https://blog.csdn.net/lifuxiangcaohui/article/details/8051687 并发中的概念 并发编程中...

2018-08-17 16:12:47

阅读数 59

评论数 0

单例模式(懒汉实现和饿汉实现的区别)

单例模式的作用是使某个类在整个应用中只存在一个实例。单例模式分为懒汉模式和饿汉模式: 饿汉模式 :从第一次主动调用该类开始就创建实例对象,一直到程序死亡。 懒汉模式 :从第一次调用获取实例的方法的时候才创建对象,一直到程序死亡。 饿汉单例模式的实现 public class Sing...

2018-08-17 16:10:42

阅读数 94

评论数 0

【转载】Android组件化方案

版权声明:本文为博主原创文章,欢迎大家转载! 转载请标明出处: http://blog.csdn.net/guiying712/...

2018-08-16 11:02:06

阅读数 81

评论数 0

代理模式和装饰者模式区别

静态代理需要手动实现被代理接口的所有方法,而动态代理通过反射可以自动代理接口的所有方法 静态代理在编译的时候就生成了代理类的class文件;动态代理在运行的时候动态生成代理类 代理模式有很多用途:比如在方法调用前后添加日志;AIDL中就生成了远程接口的代理类,代理类帮助我们实现Binder底层的...

2018-08-16 01:17:50

阅读数 420

评论数 0

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