12 2020 档案
摘要:常见的场景有三种: 外部滑动与内部滑动方向不一致 外部滑动与内部滑动方向一致 前两种情况的嵌套 2.滑动冲突的处理规则 不同的场景有不同的处理规则,例如上面的场景一,规则一般就是当左右滑动时,外部View拦截事件,当上下滑动时要让内部View拦截事件,这时候处理滑动冲突就可以根据滑动是水平滑动还是垂
阅读全文
摘要:在OnTouchListener事件里有MotionEvent.ACTION_DOWN,MotionEvent.ACTION_UP和MotionEvent.ACTION_MOVE三个事件,我们在这里只讨论MotionEvent.ACTION_DOWN,MotionEvent.ACTION_UP,与M
阅读全文
摘要:Android应用运行在后台的时候,经常被系统的LowMemoryKiller杀掉,当用户再次点击icon或者从最近的任务列表启动的时候,进程会被重建,并且恢复被杀之前的现场。什么意思呢?假如APP在被杀之前的Activity堆栈是这样的,A<B<C,C位于最上层 APP被后台杀死后,APP端进程被
阅读全文
摘要:RxJava背压主要用来解决异步订阅关系中,被观察者发送事件的速度与观察者接收事件的速度不匹配的问题。所谓背压,即生产者的速度大于消费者的速度带来的问题,比如在Android中常见的点击事件,点击过快则经常会造成点击两次的效果。在大多数情况下,由于被观察者发送事件速度太快,而观察者来不及响应处理所有
阅读全文
摘要:文章目录 一、本地单元测试 1. 创建测试类 2. Assert类中的常用断言方法 3. 运行测试类 4. 运行单个测试方法或多个测试类 二、Mockito测试框架的使用 1. Mock概念的理解 2. Mockito中几种Mock对象的方式 3. 验证行为 verify(T mock)函数的使用
阅读全文
摘要:smali文件格式 每个smali文件都由若干条语句组成,所有的语句都遵循着一套语法规则。在smali 文件的头3 行描述了当前类的一些信息,格式如下: [java] view plain copy .class < 访问权限> [ 修饰关键字] < 类名> .super < 父类名> .sourc
阅读全文
摘要:Base64概念 什么是Base64? 按照RFC2045的定义,Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。(The Base64 Content-Transfer-Encoding is designed to represent
阅读全文
摘要:1、什么是JVM? JVM本质上就是一个软件,是计算机硬件的一层软件抽象,在这之上才能够运行Java程序,JAVA在编译后会生成类似于汇编语言的JVM字节码,与C语言编译后产生的汇编语言不同的是,C编译成的汇编语言会直接在硬件上跑,但JAVA编译后生成的字节码是在JVM上跑,需要由JVM把字节码翻译
阅读全文
摘要:1.网络基础 1.1 计算机网络分层 计算机网络分为五层:物理层、数据链路层、网络层、运输层、应用层 其中: 网络层:负责根据IP找到目的地址的主机 运输层:通过端口把数据传到目的主机的目的进程,来实现进程与进程之间的通信 1.2 端口号(PORT) 端口号规定为16位,即允许一个IP主机有2的16
阅读全文
摘要:一、概述 之前写了个okhttputils的工具类,然后有很多同学询问这个工具类和retrofit什么区别,于是上了下官网,发现其底层对网络的访问默认也是基于okhttp,不过retrofit非常适合于restful url格式的请求,更多使用注解的方式提供功能。 既然这样,我们本篇博文首先研究其所
阅读全文
摘要:前言 我从去年开始使用 RxJava ,到现在一年多了。今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ,并且使用的场景越来越多 。而最近这几个月,我也发现国内越来越多的人开始提及 RxJava 。有人说『RxJava 真是太好用了』,有
阅读全文
摘要:缘起 笔者为什么会挑这个话题,是因为长时间以来我自己对这2个方法一直有些疑惑,比如: 为啥叫onAttachedToWindow而不是onAttachedToActivity,Window又是什么,在哪里?毕竟我们平时绝大多数时候接触到的是Activity啊; Activity有明确的生命周期方法,
阅读全文
摘要:1 背景 之所以写这一篇博客的原因是因为之前有写过一篇《Android应用setContentView与LayoutInflater加载解析机制源码分析》,然后有人在文章下面评论和微博私信中问我关于Android应用Activity、Dialog、PopWindow加载显示机制是咋回事,所以我就写一
阅读全文
摘要:1 背景 其实之所以要说这个话题有几个原因: 理解xml等控件是咋被显示的原理,通常大家写代码都是直接在onCreate里setContentView就完事,没怎么关注其实现原理。 前面分析《Android触摸屏事件派发机制详解与源码分析三(Activity篇)》时提到了一些关于布局嵌套的问题,当时
阅读全文
摘要:Picasso 与 Glide对比 相似Glide 和 Picasso在API的调用上 非常相似,且都支持图片的内存缓存,都是非常优秀的图片加载框架,可以说Glide是Picasso的升级,在性能上有所提升。 差异 1.缓存方式不同首先Picasso是2级缓存,它支持内存缓存而不支持磁盘缓存;而Gl
阅读全文
摘要:直接在当前APK加载未安装apk中的资源 我现在就是要在当前安装的apk中去加载未安装的apk的res目录下的drawable、layout、string、color等。先来看一个简单的实践 首先去创建一个用于动态加载的项目dynamic_resource,我要做的事情很简单,就是获取res目录下的
阅读全文
摘要:背景 我们知道,http 通信存在以下问题: 通信使用明文可能会被窃听 不验证通信方的身份可能遭遇伪装 无法证明报文的完整型,可能已遭篡改 使用 https 可以解决数据安全问题,但是你真的理解 https 吗? 当面试官连续对你发出灵魂追问的时候,你能对答如流吗 什么是 https,为什么需要 h
阅读全文
摘要:一、背景 最近在项目的版本迭代中,出现了一些内存问题的小插曲,然后自己花了一些时间优化了APP运行时内存大小的问题,特此做个总结,与大家分享。 二、简介 在Android程序开发中,当一个对象已经不需要再使用了,本该被回收时,而另外一个正在使用的对象持有它的引用从而导致它不能被回收,这就导致本该被回
阅读全文
摘要:LiveData是一个可被观察的数据持有者类。与常规的Observable不同,LiveData能意识到应用程序组件的生命周期变化,这意味着它能遵守Activity、Fragment、Service等组件的生命周期。这种意识确保LiveData只更新处于活跃状态的应用程序组件Observer。 No
阅读全文
摘要:要用android实现点对点通信,可以使用socket完成,使用socket需要知道对方的IP地址以及端口号,这里我省略了服务器端(编写正规的通信软件还是得需要服务器做中转,用服务器得知A的IP地址,然后让A做服务器端,B用A的Ip地址去获取数据),只是展示相关原理,首先看服务器端 package
阅读全文
摘要:一:什么是ANR ANR:Application Not Responding,即应用无响应 二:ANR的类型 ANR一般有三种类型: 1:KeyDispatchTimeout(5 seconds) --主要类型 按键或触摸事件在特定时间内无响应 2:BroadcastTimeout(10 seco
阅读全文
摘要:缘起 在Android开发中,我们经常会见到下面的代码,比如: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); System.out.println("onCreate
阅读全文
摘要:原文链接:http://www.importnew.com/12773.html 本文由 ImportNew - 李 广 翻译自 javarevisited。欢迎加入Java小组。转载请参见文章末尾的要求。 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是
阅读全文
摘要:多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点) Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(self con
阅读全文
摘要:// 预计存入 1w 条数据,初始化赋值 10000,避免 resize。 HashMap<String,String> map = new HashMap<>(10000) // for (int i = 0; i < 10000; i++) Java 集合的扩容 HashMap 算是我们最常用的
阅读全文
摘要:一. 序 Handler 机制算是 Android 基本功,面试常客。但现在面试,多数已经不会直接让你讲讲 Handler 的机制,Looper 是如何循环的,MessageQueue 是如何管理 Message 等,而是基于场景去提问,看看你对 Handler 机制的掌握是否扎实。 本文就来聊聊
阅读全文
摘要:目前行业内有很多电量测试的方法: 1.1 Batterystats & bugreport Android 5.0及以上的设备, 允许我们通过adb命令dump出电量使用统计信息. 1, 因为电量统计数据是持续的, 会非常大, 统计我们的待测试App之前先reset下, 连上设备, 命令行执行: $
阅读全文
摘要:一、文件操作相关命令 1.文件操作命令 子命令参数说明 cd 无 进入目录 cat [-beflnstuv] [-B bsize] [file...] 查看文件内容-n:显示行号-b:显示行号,但会忽略空行-s:显示行号,连续空行标记为一行 df 无 列出分区列表 du [-H] [-L] [-P]
阅读全文
摘要:mac上按键符号 ⌥ : option / alt ⇧ : shift ⌃ : control ⌘ : command ⎋ : esc (一)查找/查看相关 搜索任意内容 双击 sft 当前文件查找/替换 cmd + F / cmd + R 使用cmd + G,sft + cmd + G,跳到下一个
阅读全文