7 黄海杰

58同城 高级Android开发工程师

将来的你一定会感激现在努力的自己。。。

等级
TA的排名 9k+

五味2019

前言恍恍惚惚又是一年,明天就是2019年的最后一个工作日,本想着公历2020年之前写自己的2019总结,没想到明日复明日,一直复到了今天,不过也还好,毕竟农历还是2019年。趁着最后一个工作日之前,总结一下我的今年:我的2019,有激情、有慵懒、有创新、有平淡、有不甘、有失利,最后也有目标…移动端重构----激情今年是我在58的第二年,前一年没什么大事,平平淡淡写需求,除了业务还是业务...

2020-01-16 23:01:36

Dart 异步

Dart是基于事件循环机制的单线程模型一条执行线上,同时且只能执行一个任务(事件),其他任务都必须在后面排队等待被执行。也就是说,在一条执行线上,为了不阻碍代码的执行,每遇到的耗时任务都会被挂起放入任务队列,待执行结束后再按放入顺序依次执行队列上的任务,从而达到异步效果。单线程模型按照代码编写的顺序,自上而下运行,这是我们所认知的,但是当遇到耗时操作(IO/网络请求)等,会给UI造成卡顿阻...

2020-01-11 15:28:13

Dart 相关语法笔记

1. 级联操作符 //常规操作 var paint = new Paint(); paint.strokeCap = StrokeCap.butt; paint.strokeWidth = 1; paint.style = PaintingStyle.fill; //级联操作符 var paint1 = new Paint(); pain...

2020-01-09 15:53:37

7. JetpackNote---基于Jetpack的学习笔记APP

JetpackNote 是一款基于谷歌官方组件Jetpack开发的笔记项目,项目中包含了对各大组件的源码分析、Demo使用:Navigation、Lifecycles、Paging、LiveData、ViewModel等…\n项目使用Kotlin语言进行编写,依赖库截止代码编写时为最新版本,的几篇源码分析我们分别对Navigation、Lifecycles、ViewModel、LiveData...

2019-09-10 17:30:51

6. Jetpack---Paging你知道怎样上拉加载吗?

之前的几篇源码分析我们分别对Navigation、Lifecycles、ViewModel、LiveData、进行了分析,也对JetPack有了更深入的了解。但是Jetpack远不止这些组件,今天的主角—Paging,Jetpack中的分页组件,官方是这么形容它的:‘’逐步从您的数据源按需加载信息‘’如果你对Jetpack组件有了解或者想对源码有更深入的了解,请看我之前的几篇文章:1. J...

2019-08-26 22:52:28

5. Jetpack源码解析---ViewModel基本使用及源码解析

截止到目前为止,JetpackNote源码分析的文章已经有四篇文章了,这一系列的文章我的初衷是想仔细研究一下Jetpack,最终使用Jetpack组件写一个Demo,上一篇已经分析了LiveData,本篇文章将分析ViewModel.1.背景Jetpack源码解析系列文章:1. Jetpack源码解析—看完你就知道Navigation是什么了?2. Jetpack源码解析—Naviga...

2019-07-16 11:30:40

4. Jetpack源码解析—LiveData的使用及工作原理

1. 背景上一篇我们分析了Lifecycles组件的源码,本篇我们将继续分析LiveData组件相关系列文章:1. Jetpack源码解析—看完你就知道Navigation是什么了?2. Jetpack源码解析—Navigation为什么切换Fragment会重绘?3. Jetpack源码解析—用Lifecycles管理生命周期2. 基础2.1 简介LiveData是一个可观察...

2019-07-10 09:47:02

2. Jetpack源码解析---Navigation为什么切换Fragment会重绘?

上篇文章我们简单的介绍了Navigation组件的使用,以及深入分析了源码中的具体实现,基本原理我们已经很清晰了。本篇文章主要介绍下我在项目中遇到的问题,以及目前关于Navigation实现的一些探讨。还没有看过上篇文章的可以查看一下:Jetpack组件之Navigation—看完你就知道Navigation是什么了?1. 背景先来看一下Navigation组件在官方文档上的介绍:今...

2019-06-28 15:00:36

1. Jetpack源码解析---看完你就知道Navigation是什么了?

1. 背景之前已经翻译过了Google官方的CodeLabs上面的教程,教程很详细,代码在Github上也可以找到,本篇文章旨在自己的APP上使用效果及演示Demo,来具体的使用Navigation。并且对其进行源码解析。基本相关介绍可以查看我之前翻译的文章,基本就是google翻译了一个大概。一、Android Jetpack_Note_CodeLabs一Navigation2. ...

2019-06-26 17:41:52

3. Jetpack源码解析---用Lifecycles管理生命周期

1. 背景上一篇我门对Jetpack组件中的Navigation做了介绍,并且对其做了源码分析,相信看过之后已经对此有了一定的了解,本篇文章我们会对Lifecycles进行使用及源码的介绍,还没看上篇的可以看一下:1. Android_Jetpack组件—Naviagtion源码解析2. 基础2.1 简介Lifecycles是一个持有组件生命周期状态(如Activity、Fragme...

2019-06-11 15:23:41

Kotlin初级(2)- - - 空安全.md

空类型、空安全为了解决类似NPE这类的问题,现代编程语言包括Kotlin解决这类问题的方法就是把运行时的错误转变成编译期的错误。通过支持作为类型系统的一部分的可空性,编译器就能在编译期发现很多潜在的错误,从而减少运行时抛出异常的可能性变量的定义Kotlin中的变量修饰符只有两个val修饰的变量不能重新被赋值var修饰的变量可以被重新赋值var修饰的变量不可为null,val修...

2018-09-27 14:40:39

Kotlin中级(9)- - - Kotlin类之数据类、密封类、内部类.md

数据类1.声明data关键字data class Leaf(val size: String,val color: String,val shape: String,val vein: Int)2.数据类声明条件主构造函数最少要有一个参数数据类的主构造器的所有参数必须标记为val或var数据类不能是抽象类、open类、封闭类、内部类数据类不能继承自任何其他类(但可以实现接口...

2018-09-24 18:50:00

Kotlin中级(8)- - - Kotlin类之接口、枚举.md

一、接口在Kotlin中,一个类只能继承一个普通类或者抽象类。通过接口我们可以进行多实现interfaceinterface Demo{ }关键字:冒号(

2018-09-24 18:49:39

Kotlin中级(7)- - - Kotlin类之抽象类、重载和重写.md

1.抽象类抽象类是不可直接被实例化的,因为它有一部分属性和方法没有被完整的赋值和体现。也就是说,抽象类是在告诉要继承的类:我有一些方法和属性没有具体实现,我命令你去把它们弄完整abstract其中值得注意的是:抽象可以分为抽象类、抽象函数、抽象属性。而一个抽象类和普通类的区别在于抽象类除了可以有其自己的属性、构造函数、方法等组成部分,还包含了抽象函数以及抽象属性。抽象类的规则在K...

2018-09-24 18:49:21

Kotlin中级(6)- - - Kotlin类之的继承.md

Kotlin继承类1.超类(Any)在Kotlin中,所有的类都是继承自Any类,这是一个没有父类型的类。即当我们定义各类时,它默认是继承于Any类的例如:class Person因为Any这个类只是给我们提供了equals、hashcode、toString三个方法,我们可以看看Any这个类的源码实现package kotlin/** * The root of the ...

2018-09-21 18:10:46

Kotlin中级(5)- - - 初识Kotlin中的对象.md

万物皆对象对象就是类的实例化用Kotlin描述对象class Friend{ var name: String = "" var hairColor: String = "" .....}愉快的构造1.主构造函数:class Friend constructor(val name: String,val age: Int){}主构造二下面这种构造...

2018-09-21 18:10:22

Kotlin初级(4)- - - 字符串和字符.md

字符串Kotlin中字符串是有序的字符的集合常用方法1.isEmpty()用来判断字符串为空2. count()或者length获取字符串中的字符数目3.get(i)或者[i]获取指定位置的字符4.substring()截取某一段字符串5.index索引indexOf()、lastIndexOf()、indices索引范围6.contains()7....

2018-09-20 23:49:38

Kotlin初级(3)- - - 基础函数.md

函数的声明和使用Kotlin中函数的声明使用关键字 fun格式为:可见性修饰符 fun 函数名(参数名 :类型):返回值{}例如:fun main(){ }上面的例子没有可见性修饰符,因为Kotlin中默认为public函数没有返回值时可以省略函数的作用范围1.成员函数成员函数是指在类或对象中的内部函数例如:class Demo{ fun ma...

2018-09-20 23:49:19

Kotlin初级(2)- - - 空安全.md

空类型、空安全变量的定义Kotlin中的变量修饰符只有两个val修饰的变量不能重新被赋值var修饰的变量可以被重新赋值var修饰的变量不可为null,val修饰的可为nullval a: Int? = nullvar b: Int变量a在使用的时候需要判断改变量是否为null,变量b则不需要了,因为这个变量永远不会为null可空类型的判断if elseval s...

2018-09-20 23:49:00

Kotlin初级(1)- - - 基础.md

package和import使用package包可以将代码分割到各个命名空间内。所谓命名空间,就好比咱们的国内重名的地区非常多,如果单独将一个地名,很可能引起歧义,但如果按省来划分,就解决了重名的问题,如马鞍山,有安徽的,南通的,香港的,这里的安徽、南通、香港就成了一个命名空间,命名空间还可以分层次,如美国.纽约州.麦哈顿。在Kotlin中,任意源文件都可以用一个package声明。异常处理...

2018-09-20 23:48:07

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 博客之星-入围
    博客之星-入围
    授予每年博客之星评选结果第21-200名的用户