- 博客(27)
- 收藏
- 关注
原创 【记录】关于Arouter路由冲突(ARouter$$Group$$ebook is defined multiple times)的排查方案
Arouter编译时异常:Type com.alibaba.android.arouter.routes.ARouter$$Group$$ebook is defined multiple times
2023-07-13 12:02:47 450
原创 Android面试被问到Bitmap,告别Em~,看这一篇就够了
本文分别从1. Bitmap的内存管理的演变过程2. Bitmap在内存中的大小,如何计算3. Bitmap的复用4. Bitmap的缓存5. Bitmap的压缩5个方面介绍了bitmap,只有更加全面的了解了bitmap,才能在开发中考虑到更深的一个层次,编写出更加优秀的代码。
2023-02-08 15:04:33 526
原创 【记录】关于macOs每次都需要调用source ~/.bash_profile使环境变量生效的问题
在开发时,我们需要配置各种环境变量,比如maven、java、gradle等等,每次重新打开Terminal执行某一命令时,总会出现``command not found:``,明明在``.bash_profile``已经配置了,这时需要执行命令``source ~/.bash_profile``刷新一下配置文件,再执行就可以了。
2021-12-23 14:32:06 1002
原创 A super-powered FrameLayout—协调布局CoordinatorLayout(二):Behavior
上篇文章介绍了CoordinatorLayout的基本使用 — A super-powered FrameLayout—协调布局CoordinatorLayout(一):深度基本了解本篇文章说一说Behavior是什么怎么写用在哪一、Behavior官方解释 /** * Interaction behavior plugin for child views of {@link CoordinatorLayout}. * * <p>A Behavio
2021-12-13 10:52:57 333
原创 A super-powered FrameLayout—协调布局CoordinatorLayout(一):深度基本了解
如果你想了解Behavior,可以移步另一篇文章A super-powered FrameLayout—协调布局CoordinatorLayout(二):Behavior一、CoordinatorLayout介绍CoordinatorLayout is a super-powered FrameLayout.CoordinatorLayout is intended for two primary use cases: 1. As a top-level application decor or
2021-12-13 10:52:23 333
原创 了解约束布局ConstraintLayout,眼睛会了,脑子会了,手也会了
一.目录没有目录,想到哪写到哪,凑合看吧二.正文2.1 ConstraintLayout 怎么读2.2 ConstraintLayout 怎么用2.2.1 了解一些该知道的1.ConstraintLayout是一个ViewGroup,可以在Api 9以上的Android系统使用。2.英语牛*的去官网了解一下吧>>>>>>ConstraintLayout官网介绍3.关于View的上下左右2.2.2 属性之我的哪里想挨着你的哪里(相对定位)layout
2021-12-13 10:51:15 687
原创 Android事件分发机制伪代码流程分析
Android事件分发机制伪代码分发流程分析,传递过程Activity --> ViewGroup --> View//===============================================//Activity//===============================================public boolean Act.dispatchTouchEvent(){ if (PhoneWindow.superDis
2021-12-10 09:29:10 148
原创 与(&) 、或(|)、异或(^) 、取反(~) 运算
一、与(&)参加运算的两个数据,按二进制位进行“与”运算。运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;例如:15&5 即 0000 1111 & 0000 0101 = 0000 0101 因此,3&5的值得5。负数按补码形式参加按位与运算。二、或(|)参加运算的两个对象,按二进制位进行“或”运算。运算规则:0|0=0; 0|1=1; 1|0=1; 1|1=1;
2021-12-10 09:25:26 6593 2
原创 强、软、弱、虚四种引用类型
一、强、软、弱、虚引用1.强引用Object obj = new Object(),这种通过关键字new创建的对象所关联的引用,就是强引用。当JVM内存不足时,JVM会抛出OutOfMemoryError(OOM),使程序异常终止,也不会回收具有强引用的对象来解决内存不足的问题。对于一个普通的对象,如果没有其他的引用关系,只要超过了引用的作用域或者显式的将相应强引用赋值为null,就是可以被垃圾回收器回收的了,具体回收时机取决于垃圾回收策略。2.软引用软引用通过SoftReferen
2021-12-10 09:23:46 205
原创 Java的8种基本数据类型
基本数据类型位数默认值取值范围byte(字节)8位0-2^7 ~ 2^7-1boolean(布尔值)8位falsetrue、falseshort(短整数)16位0-2^15 ~ 2^15-1char(字符)16位null0 ~ 2^16-1int(整数)32位0-2^31 ~ 2^31-1float(单精度)32位0.0-2^31 ~ 2^31-1long(长整数)64位0-2^63 ~ 2^63-1...
2021-12-10 09:23:10 148
原创 浅谈面向对象和面向过程
以下内容摘自 - 面向对象与面向过程的本质的区别释义面向过程: 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象: 是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。举例说明以五子棋为例面向过程 的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤 2,
2021-12-10 09:22:21 126
原创 深入理解Java虚拟机随笔之运行时数据区域
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-12-10 09:19:41 162
原创 Jetpack组件之ViewModel实现原理
提纲ViewModel是什么ViewModel的优势ViewModel基本用法ViewModel相关方法说明及实现原理一、ViewModel是什么ViewModel 具备宿主生命周期感知能力的数据存储组件,使用ViewModel保存的数据,在页面因配置变更导致页面销毁重建之后依然也是存在的。配置变更:横竖屏切换、分辨率调整、权限变更、系统字体样式变更等二、ViewModel的优势2.1 页面配置更改数据不丢失当设备因配置更改导致 Activity/Fragment 重建,View
2021-12-10 09:16:18 295
原创 Jetpack组件之LiveData实现原理
提纲LiveData是什么LiveData衍生类及其基本用法LiveData核心方法介绍LiveData实现消息分发实现原理及相关方法LiveData的优势一、LiveData是什么LiveData 组件是 Jetpack 推出的基于观察者的消息订阅/分发组件,具有宿主(Activity、Fragment)生命周期感知能力,这种感知能力可确保 LiveData 仅分发消息给处于活跃状态的观察者,即只有处于活跃状态的观察者才能收到消息。活跃状态:通常情况下等于 Observer 所在宿主
2021-12-10 09:15:35 323
原创 Jetpack组件之Lifecycle实现原理
提纲Lifecycle是什么怎么使用Lifecycle观察宿主状态LifecycleOwner、Lifecycle、LifecycleRegistry相关说明Lifecycle在Fragment中是如何实现的Lifecycle在Activity中是如何实现的Lifecycle是如何分发宿主状态的一、Lifecycle是什么具备感知宿主生命周期能力的组件,Jetpack的核心组件二、怎么使用Lifecycle观察宿主状态 // eg:1 class CustomObs
2021-12-10 09:12:10 1138
原创 【记录】Android关于WebView内容转PDF文件打印及其遇到的问题解决方案
需求描述:将WebView渲染出来的内容转化为PDF文件打印关于内容转为文件打印,google一下,文章还是有很多的,这里简单的贴一下app/build.gradle 添加implementation “com.linkedin.dexmaker:dexmaker:2.28.1”implementation “com.linkedin.dexmaker:dexmaker-mockito:2.28.1”实现类 public class H52PdfTask { ParcelF
2021-12-10 09:09:56 1772 1
原创 【记录】Android关于WebView无/有图模式切换实现方案
需求描述:使用WebView加载一个链接,实现有图、无图模式之间的切换关于无图模式的2种理解阻塞图片的加载,网页上图片以一种灰底的形式存在完全实现图片的隐藏1. 阻塞图片的加载这个就比较简单了,WebView本身提供了api,这种方式一般也会作为优化网页显示速率的一种方式 // 阻塞图片加载 wvWeb.settings.blockNetworkImage = true2. 完全实现图片的隐藏WebView本身并没有提供相关的方法,只能另寻出路,我们知道网页是以h
2021-12-09 16:47:29 1166
转载 【记录】关于Android Studio中的Gradle面板没有Task任务列表
记录Android Studio中的Gradle面板没有Task任务列表要把Task任务列表调出来,拢共分3步
2021-12-09 16:46:07 438
原创 【记录】关于编码格式导致的中文乱码问题
一. 问题描述最近有个需求,解压压缩包提取其中的文件,处理rar、7z格式没啥问题,处理解压zip(项目中用的版本比较老)的时候,解压方法中需要传入编码格式,问题就来了。使用windows系统打包zip和mac OS系统打包zip,在不手动设置编码格式的情况下(一般情况也没人会专门设置编码格式),windows系统默认编码格式为GBK,mac OS默认编码格式是UTF-8 ,GBK编码,UTF-8解码,如果文件名有中文就会出现乱码,反之亦然,这和2种编码格式的对中文编码的规则有关。二. 解决方式首
2021-12-09 16:44:39 2012
原创 【Java集合】Hashtable、HashMap、LinkedHashMap、TreeMap
HashMap源码解析——Java 8系列之重新认识HashMapHashMap源码解析——一文读懂HashMap(1) HashMap:它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap最多只允许一条记录的键为null,允许多条记录的值为null。HashMap非线程安全,即任一时刻可以有多个线程同时写HashMap,可能会导致数据的不一致。如果需要满足线程安全,可以用 Collections的synchroni
2021-12-09 16:25:37 128
原创 【Java集合】HashMap
HashMap源码解析——Java 8系列之重新认识HashMapHashMap源码解析——一文读懂HashMap继承结构 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable 数据存储结构数组 +(单项链表或红黑树),链表深度大于8时,会将链表存储转化为红黑树存储(线程不安全)写在前面
2021-12-09 16:24:33 770
原创 【Java集合】Hashtable
继承结构 public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, java.io.Serializable { 数据存储结构数组 + 单项链表 (线程安全)写在前面的一些方法、说明!!! key和value都不可为nullprotected void rehash() 扩容 protected void re
2021-12-09 16:22:26 835
原创 【Java集合】LinkedList
继承结构 public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable写在前面的一些方法private void linkFirst(E e) private void linkFirst(E e) {
2021-12-09 16:21:27 661
原创 【Java集合】ArrayList
继承结构 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable写在前面的一些方法说明Arrays.copyOf(Object[] original, int newLength),往往一段代码胜过千言万语移位 >> 、<<in
2021-12-09 16:20:21 597
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人