Android 手机上,将文件推到手机里,之前常命令为 adb push xxx.txt mnt/sdcard/, 但在android 11后,可能由于sd卡权限的限制,此命...
1.为什么要用线程池在java中,开启线程的方式一般分为两种:a.继承Thread,实现其run方法b.实现Runnabler接口,通过Thread来实现线程但无论哪种方式,...
1.作用synchronized是java提供的一种最基本的锁,可重入的非公平锁,主要用在多线程并发中,当要求某种操作在同一时间只能由一个线程处理时,就需要加锁,否则就会造成...
AQS: AbstractQueuedSynchronizer的简称,在jdk中,我们可以发现,这是一个抽象类,需要我们实现tryAcquire和tryRelease方法。是...
1.什么是CASCAS: CompareAndSwap,是一种实现锁的机制。我们知道,在jdk 1.5之前,一般我们都会用synchronized来保证同步的,但这种锁存在以...
1.正确的使用方式线程间进行相互协作时,不可避免的会用到wait和notify。如下例子: 结果: 上述代码可正常运行,但我们也发现了,在使用wait和notify时,必须在...
volatile的作用,相信大家已经不陌生了,总体来说,有两个作用: 有序性:禁止代码重排序。这个在单例模式中用的比较多 可见性:多个线程访问同一个变量时,这个变量被修改后,...
前提:LeakCanary 版本v2.4; Android 8.0LeakCanary相信很多开发者都用过,也是目前为止我看到的一款最简单方便的简单内存泄漏的工具了,使用之后...
一、AOP 全称“Aspect Oriented Programming”,面向切面编程,由于面向对象的思想要求高内聚,低耦合的风格,使模块代码间的可见性变差,对于埋点,日志...
一、代理模式介绍 代理是一种设计模式,主要用于在我们访问目标对象时,在不修改目标对象的前提下,可以对目标对象提供的功能进行一定的扩展。代理可分为静态代理、动态代理以及三方库 ...
ButterKnife源码地址:https://github.com/JakeWharton/butterknife1.所用主要技术 APT,反射,javaPoet(生成.j...
1.创建注解处理Processor,需要继承 AbstractProcessor如: TestProcessor extends AbstractProcessor@Supp...
1.事件基础知识 所谓事件,就是用户手触摸到屏幕时,产生的一系列 Touch 事件,无论是用户的拖拽,点击,还是多点多点放大,缩小等操作,都与事件相关。我们此次只讨论单指点击...
这个方法确实能起作用,但会引发一个新问题,比如你点击发送按钮时,也会使键盘消失,这不是我希望的。
Android点击空白区域隐藏键盘Android中我们最经常玩的应该就是qq、微信一些聊天记录,在开发中,经常遇到做聊天界面的时候,点击键盘外部的区域无法隐藏键盘的状况。仔细查阅一些博客,发现给外部父控件添加...
1.# Compressor 2.# Luban 因项目需求上传图片不要太大,经过几轮百度最终确定了这两个。 我使用的是第一个,压缩率超大、建议使用,使用方法也简单,生成图片...
2018年8月1日以前谢绝全文转载(已授权除外)本文作者:@怪盗kidou本文链接:https://www.jianshu.com/p/f70ee1765a61 周末在家有点...
一、概述 MVP的模式目前在网上已经层出不穷,大多数是通过接口建立关系,进行了功能的实现。看过很多类似的文章,受益良多。 下面切入正题,本文对异常的处理和订阅关系的动态取消进...