笔记
Gdeer
这个作者很懒,什么都没留下…
展开
-
Git rev-list 详解
官网:https://git-scm.com/docs/git-rev-list本文基于官网介绍,结合实例解释 rev-list 的使用文章目录一、功能二、基本三、限制四、待续一、功能按时间倒序列出 commit(即 reverse-list)二、基本$ git logE - (HEAD -> master) addE (10/19/2019 13:31:19) <g...原创 2019-10-21 17:01:17 · 22896 阅读 · 1 评论 -
Java 基础:Annotation
注解(Annotation)就是一种程序可识别的注释。本文介绍注解的使用。文章目录一、概述二、注解的分类2.1 JDK 自带注解2.2 元注解2.3 自定义注解三、注解的语法3.1 定义注解3.2 定义元素3.3 使用注解四、注解的处理4.1 注解处理器4.1.1 定义注解4.1.2 定义注解处理器4.1.3 使用注解4.1.4 注解处理器执行4.2 反射一、概述注解:程序可识别的注释...原创 2019-04-03 15:34:07 · 204 阅读 · 0 评论 -
JetPack 组件之 DataBinding 详解
文章目录一、基础用法1.1 开启 DataBinding 配置1.2 布局中的属性1.2.1 数据对象1.3 代码中的绑定1.4 binding 表达式语法1.4.1 基础语法1.4.2 import、variables 和 include1.4.3 事件处理二、使用响应式数据对象2.1 响应式字段2.2 响应式集合2.3 响应式对象三、生成绑定类DataBinding 是谷歌官方推出的一个库,...原创 2019-06-14 18:35:52 · 490 阅读 · 0 评论 -
shell 命令 help 的语法
什么都不带的文字是必填的、不可变的带 <> 的是必填的、可变的带 [] 的是可选的如:start-activity 是不可变的、必填的-P <FILE> 是可选的如果输入了 -P,那 file 就是必填的...原创 2019-06-25 14:10:41 · 2271 阅读 · 0 评论 -
ConstraintLayout 的使用
本文基于 Android Studio 3.4官网介绍:https://developer.android.google.cn/training/constraint-layout?hl=en文章目录一、约束1.1 添加约束1.1.1 手动添加1.1.2 自动添加1)Autoconnection2)Inference1.2 删除约束1.3 控制面板1)ratio2)删除约束3)控件大小4)...原创 2019-07-03 15:37:23 · 732 阅读 · 0 评论 -
RxJava 理解:背压
RxJava GitHub 描述:当数据流通过异步发送,每一步用不同的速度发布不同的东西。为了避免压垮某一步,经常需要增加 buffer 或是筛选、丢弃数据,这就是背压,一种控制数据流的形式,让下游可以表达自己可接受的数量。这可以限制数据流的内存使用。在 RxJava 中,Flowable 支持背压, Observable 不支持背压。知乎上的问答:Backpressure 指的是在...原创 2019-07-07 13:52:01 · 520 阅读 · 0 评论 -
Git 操作:rebase 详解(命令行)
官网:https://git-scm.com/docs/git-rebase初始 temp 分支节点状态:* c6d18af - (HEAD -> temp) d (2 分钟前)* d585e8c - c (3 分钟前)* c48536f - b (4 分钟前)* afa3558 - a (5 分钟前)* 7cdf608 - init (6 分钟前)rebase 当前分支修...原创 2019-07-25 14:04:29 · 2824 阅读 · 1 评论 -
Git 操作:rebase 详解(Android Studio)
官网:https://git-scm.com/docs/git-rebase初始 tmp 分支节点状态:rebase 当前分支修改当前分支的节点记录。如:删除节点、合并节点、修改节点的顺序等。光标选中 a,在 a 上右键选择 Interactively Rebase from Here…点击后:删除节点删除节点 d:修改 d 前的选项为 skip点击 Start Reba...原创 2019-07-25 14:08:00 · 7604 阅读 · 0 评论 -
RxJava 使用:操作符详解
官网:http://reactivex.io/documentation/operators.html文章目录一、创建操作符二、转换操作符三、过滤操作符四、合并操作符五、错误处理操作符六、Observable 工具操作符七、条件和布尔操作符八、数学和聚合操作符九、可连接 Observable 操作符十、其他一、创建操作符Just发布几个指定的产品Range发布一串连续的整...原创 2019-07-30 17:36:41 · 282 阅读 · 0 评论 -
Android 手机的常用存储路径浅析
内存与外存:早期的 Android 手机分为内存、外存,内存是手机自带的,外存是可以额外添加的。现在的 Android 手机普遍都只有内存,没有外存。运行内存其他内存:内存可以分为运行内存和其他内存,如 6G/64G 的手机指的就是 6G 的运行内存和 64G 的其他内存。运行内存使用 RAM(Random Access Memory),读写速度更快。其他内存使用 ROM(Rea...原创 2019-08-12 14:41:16 · 3454 阅读 · 0 评论 -
png8、png24、png32 的区别
png 图片分为:png8、png24、png32png8 支持索引透明、alpha透明png24 不支持透明png32 支持 alpha 透明png8 索引透明:用 8 个 bit 表示颜色,所以最多支持 256 种颜色。用一个 bit 用于表示透明,所以只能指定全透明或不透明。png8 alpha 透明:用 8 个 bit 表示颜色,所以最多支持 256 中颜色。用...原创 2019-09-04 11:15:37 · 4291 阅读 · 0 评论 -
Kotlin 笔记:内部类与嵌套类
与 Java 的关系:kotlinJava嵌套类静态内部类内部类内部类嵌套类:一个直接在其他类内部声明的类是嵌套类。Java 比较开放,默认情况下,认为这个嵌套类可以访问外部类。Kotlin 比较封闭,默认情况下,认为这个嵌套类不能访问外部类。Kotlin 希望默认情况(不作特)下,两个类是没有关系的,所以在一个class Outer { p...原创 2019-09-27 15:25:14 · 184 阅读 · 0 评论 -
Kotlin 笔记:密封类与代数数据类型
一、密封类Kotlin 类开放性排序普通类(不加修饰符,不能继承,默认是 final 的)密封类(sealed 修饰符,有条件继承)开放类(open 修饰符,无条件继承)密封类的限制可以继承,但只能在当前文件继承在本类内继承在类外被同级类继承(不能在一个同级类的内部被继承)sealed class A { class B: A() // OK, B is no...原创 2019-09-29 13:19:46 · 352 阅读 · 0 评论 -
Android 数据库操作:Room
文章目录一、数据库1.1 定义1.2 获取二、表2.1 定义2.2 操作三、数据3.1 定义3.2 操作四、运行一、数据库1.1 定义定义一个数据库需要继承 RoomDatabase,并在注解中提供 entities 和 version。entities 即数据库中数据的实体类,用来生成表。version 即数据库的版本号。@Database(entities = {City.clas...原创 2019-03-28 17:26:30 · 1497 阅读 · 0 评论 -
Android 数据库操作:SQLite
列举了 sqlite 数据库的基本操作文章目录一、数据库1.1 定义1.2 获取二、表2.1 创建表2.2 修改表2.3 删除表三、数据3.1 增3.2 删3.3 改3.4 查一、数据库1.1 定义通过 SQLiteOpenHelper 来定义一个 数据库。public class ChinaDbHelper extends SQLiteOpenHelper { public...原创 2019-03-28 14:50:57 · 261 阅读 · 0 评论 -
JavaPoet 的使用
JavaPoet 用来生成 .java 文件,本文介绍它的用法。JavaPoet 官方文档:https://github.com/square/javapoet文章目录一、引用二、HelloWorld三、控制流四、通配符4.1 \$L、$S(字面值、字符串)4.3 $T (类、接口、枚举)4.4 $N(方法名、变量名)一、引用implementation ‘com.squareup:...原创 2019-04-01 09:53:19 · 693 阅读 · 0 评论 -
《Android 开发艺术探索》笔记:(8)Window 和 WindowManager
Android 中的 Window 有两种概念。一种是 Window 抽象类,它的具体实现是 PhoneWindow,用来进行操作,比如生成 DecorView(PhoneWindow 通常只用在 Activity、Dialog 上)。另一种是以 View 为实体的抽象概念,用来显示。外界访问 Window (显示)要通过 WindowManager,WindowManager 会进一步访问 ...原创 2016-05-02 15:16:37 · 696 阅读 · 0 评论 -
《Android 开发艺术探索》笔记:(10)Android 的消息机制
Android 消息机制主要是 Handler,Looper,MessageQueue 这三者。其中 MessageQueue 是 Looper 内的对象,Looper 是 Handler 内的对象。每一个线程拥有一个 Looper,一个 Looper 拥有一个消息队列。消息机制用来在两个线程之间沟通,既然是沟通,那么就需要一个桥梁,Android 里这个桥梁就是 Handler。线程共享之间共享原创 2019-03-04 23:34:54 · 434 阅读 · 0 评论 -
《Android 开发艺术探索》笔记:(3)View 的事件体系
View 基础知识View 是 Android 中所有控件的基类,ViewGroup 也继承了 View。 Android 中,x 轴和 y 轴的正方向分别为右和下。 位置参数:(left , top ): View 左上角原始坐标(right, bottom): View 右下角原始坐标(x , y ): View 左上角最终坐标translationX: View原创 2019-03-03 00:27:19 · 1188 阅读 · 2 评论 -
机器学习简介
机器学习是什么?机器学习:让机器帮助人类做一些大规模的数据识别、分拣、规律总结等人类做起来比价花时间的事情。机器:机器按照人类设定的规则执行。如垃圾邮件的处理:人类设定好垃圾邮件的判断条件,机器来进行区分。机器学习:机器按照自己设定的规则执行。如垃圾邮件的处理:人类将大批的垃圾邮件告诉机器,机器来总结规律,自己制定垃圾邮件的判断条件,然后才进行区分。在这个过程中,这个机器称...原创 2018-05-01 11:51:12 · 1377 阅读 · 0 评论 -
《Android 开发艺术探索》笔记:(4)View 的工作原理
ViewRoot 和 DecorViewViewRoot 对应于 ViewRootImpl,用来对 view 进行操作,它和最顶层 view 一起组成了显示上的 Window。DecorView 是 Activity、Dialog 中最顶层的 View。View 的绘制流程总述:View 的绘制流程是通过 ViewRoot 完成的。在 ActivityThread 中,当 Ac...原创 2018-04-27 23:52:06 · 277 阅读 · 0 评论 -
kotlin 笔记:Object 关键字
Object 关键字kotlin 中的 object 关键字用来创建一个对象,它的使用场景:对象声明伴生对象对象表达式对象声明对象声明用来创建单例。与类一样,一个对象的声明也可以包含属性、方法、初始化语句块等声明。唯一不同在于对象没有构造方法(主和从)。因为对象声明在定义的时候就立即创建了,不需要构造函数。可以在类外部,也可以在类内部生成单例对象,但不能在 fu...原创 2018-06-26 16:19:10 · 845 阅读 · 0 评论 -
kotlin 笔记:可空性
可空类型java :Type = Type or nullkotlin :Type = TypeType? = Type or null如:在 java 中,String 类型的变量,可能是 null,可能是 String 值。在 kotlin 中,String 类型的变量只能是 String 值,String? 才代表 null 或 String 值。当对一个可空类型进行操作时...原创 2018-10-18 13:06:55 · 317 阅读 · 0 评论 -
Kotlin 笔记:集合和数组
集合的可空性集合的可空性包括两个方面,集合本身的可空性和集合元素的可空性。List<Int>? :List 本身可空,List 的元素不可空List<Int?> :List 本身不可空,List 的元素可空List<Int?>? :List 本身可空,List 的元素也可空有一个实用方法 filterNotNull,可以遍历一个包含可空值的集合并过滤掉...原创 2018-10-27 00:19:08 · 1478 阅读 · 0 评论 -
JVM 基础:内存分区
文章目录运行时数据区1 程序计数器2 Java 虚拟机栈3 本地方法栈4 Java 堆5 方法区6 运行时常量池7 直接内存运行时数据区Java 虚拟机运行时数据区包括:堆、方法区;虚拟机栈、本地方法栈、程序计数器1 程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。代码的分支、循环、跳转、异常处理、线程切换等操作都需要用到程序计数器。每个...原创 2019-03-03 22:11:12 · 170 阅读 · 1 评论 -
JVM 基础:垃圾回收
一、标记垃圾1.1 引用计数法每个对象记录一个被引用值,被引用一次加一次,引用取消减一次。进行垃圾回收时,如果被引用值是0,就说明是垃圾。问题:循环引用当 A 引用 B,B 引用 A 时,他们都不会被回收。1.2 可达性分析从一系列根节点进行遍历,找到能到达的每个点。不在这些点内的对象就是垃圾。解决了循环引用问题。可达性分析的根节点:虚拟机栈中引用的对象方法区中的静态对象方...原创 2019-03-24 22:29:36 · 197 阅读 · 0 评论 -
java 基础:多线程
一、什么是线程要说线程,先说进程,就像手机上的 App,每个 App 都有一个进程,它的所有操作都在这个进程里进行。线程是进程里处理任务的单位。通常一个进程有一个主线程,多个子线程。如一个浏览器里,界面的显示就是它的主线程,当我们开始下载一个东西,如果在主线程下载,用户就不得不等到下载完成后再进行别的操作,这时就要将下载放在子线程中进行。所以子线程,就是用来处理耗时任务的。1.1 线程的执...原创 2019-03-26 23:06:01 · 222 阅读 · 0 评论 -
Android 线程
1. Android 中线程的状态Android 中线程的状态主要有以下四种: Thread AsyncTask HandlerThread IntentService 1.1 ThreadThread 不必说,就是普通的线程,线程的作用主要是执行耗时任务。1.2 AsyncTask 封装了 Handler 和线程池的抽象类。4 个核心方法:onPreExecut原创 2016-11-03 17:19:34 · 326 阅读 · 0 评论