![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
文章平均质量分 72
狐彻狐
狐族万岁
落魄的安卓开发程序员
展开
-
Flutter barcode_scanner2 使用
Flutter barcode_scanner2 使用barcode_scanner2 是一个基于flutter平台的第三方扫码库,其前身barcode_scanner 已不再更新。其实现了二维码、条形码识别功能,以及调用的相机相关功能(如闪光灯等)。其实现了自动获取运行时权限功能。导入首先,在项目的android工程中,在其AndroidManifest.xml中添加相机权限<uses-permission android:name="android.permission.CAMERA" /原创 2022-05-12 14:53:44 · 1360 阅读 · 1 评论 -
SharedPreferences 源码及原理
SharedPreferences 源码及原理SharedPreferences 是Android中提供的一种轻量级数据存储方式,用来以键值对方式保存简单的数据类型。创建流程Android开发者通过Context的方法context.getSharedPreferences(String, Int)来获取SharedPreferences实例。Context中的具体实现如下 @Override public SharedPreferences getSharedPreferences(原创 2022-04-20 10:52:20 · 567 阅读 · 0 评论 -
LruCache源码及常用方法原理
LruCache源码及常用方法原理特点基于LinkedHashMap保存内容和实现排序当缓存无空间,会将最少使用的元素移除线程安全常用方法原理LruCache维护了一个LinkedHashMap用来保存元素,除此之外还有一些用来记录状态、长度等的成员变量 @UnsupportedAppUsage private final LinkedHashMap<K, V> map; /** Size of this cache in units. Not nece原创 2022-04-19 10:39:41 · 127 阅读 · 0 评论 -
LinkedList源码及常用方法原理
LinkedList源码及常用方法原理特点双链表结构适合用来在频繁添加和删除元素的操作查找和修改的效率较低常用方法原理源码中维护了size、first、last三个参数,分别用来保存当前数组长度、数组第一项和数组最后一项。其中后两者是Node<E>类的实例 private static class Node<E> { E item; Node<E> next; Node<E> prev;原创 2022-04-18 12:35:01 · 77 阅读 · 0 评论 -
ArrayList源码及常用方法原理
ArrayList源码及常用方法原理特点数组长度动态增长非线程安全实现了Serializable接口实现了RandomAccess,支持快速随机方问实现了Cloneable接口常用方法原理根据源码中定义的两个私有属性可知,ArrayList使用elementData来保存数组内容,用一个int类型的变量size保存当前数组长度。构造器 /** * Constructs an empty list with the specified initial capacity.原创 2022-04-16 12:31:55 · 2491 阅读 · 0 评论 -
Android组件化学习笔记
Android组件化学习笔记学习过程产生的示例代码已开源组件化意义解耦,增加可维护性提高代码利用率多人开发时防止代码胡乱修改组件即可同时编译打包,又可以作为App单独编译打包,提高调试效率实现记录模块项目应分解为多个模块,其中包含以下内容项目的App外壳各个组件的代码各个组件公用的代码单独组成模块例如在实例代码中,我的项目模块如下app:项目外壳commonLib:公共代码,如基类、工具类module0:模块0module1:模块1module2:模块2模块原创 2020-11-13 17:07:05 · 84 阅读 · 0 评论 -
狐彻设计模式学习笔记(二)—— Builder模式
设计模式(二)—— Builder模式基于《Android 源码设计模式 解析与实战》第二版(何红辉 关爱民 著)的学习笔记定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示使用场景通过相同方法,不同执行顺序产生不同结果时使用多个部件或零件,都可装配到一个对象中,但产生的运行结果不同时产品类非常复杂,或产品类中的调用顺序不同产生不同作用初始化一个复杂对象,如参数多,且很多参数有默认值时角色Builder —— 抽象Builder类,规范产品的组建,一般原创 2020-10-20 21:37:25 · 123 阅读 · 0 评论 -
狐彻设计模式学习笔记(一)—— 单例模式(Singleton)
设计模式(一)—— 单例模式(Singleton)基于《Android 源码设计模式 解析与实战》第二版(何红辉 关爱民 著)的学习笔记定义确保某一类只有一个实例,且自行实例化并向整个系统提供这个实例使用场景需确保某个类有且只有一个对象的场景需避免产生多个对象消耗过多资源某类型对象应有且只有一个实例如创建一个对象需要消耗的资源过多(IO、网络交互、数据库)角色Client —— 高层客户端Singleton —— 单例类特点构造函数不对外开放,一般为private通原创 2020-10-20 21:36:42 · 89 阅读 · 0 评论 -
狐彻面向对象六大原则学习笔记
面向对象六大原则基于《Android 源码设计模式 解析与实战》第二版(何红辉 关爱民 著)的学习笔记三大特点:继承、封装、多态1 - 5 为面向对象的五大基本原则1. 单一职责原则英文名:Single Responsibility Principle定义:就一个类而言应该仅有一个引起它变化的原因。单一职责所表达出的用意就是“单一”二字完全不一样的功能就不应该放在一个类中一个类中应该是一组相关性很高的函数、数据的封装1.2 开闭原则(OCP)英文名:Open Close Pri原创 2020-10-20 21:35:56 · 103 阅读 · 0 评论