子非鱼


  • Home

  • Timeline

  • Tags

  • About Me

  • 推荐

  • Search

DataBinding

2017-08-28 | Android

本文记录如何使用 Google 官方库 DataBinding 进行数据绑定。

平时编译使用 Freeline ,但是很遗憾的是 Freeline 在 DataBinding 的支持上还有些问题,希望早些解决。

另外 AndroidStudio 对 DataBinding 的语法支持的不是很好,很多官网文档的语法在项目的编译期都是报错的,后面应该会有改进。

阅读全文 »

Kotlin开发-16-反射

2017-08-26 | Kotlin

本文介绍 Kotlin 反射的用法。

在 Java 中也有反射的相关用法,不过因为运行时反射效率差,而且 java 中的反射使用起来相对麻烦,在实际开发中反射的使用还是很少的。不过在 Kotlin 中的反射使用起来十分简单。

反射,我们平常访问对象的属性和函数,是针对对象来说的,总是访问他们的 “值”,比如一个属性的具体值,或者执行某个函数,都是使用对象来调用,这都是访问 “值” 的操作,而反射,是针对类来说的,也就是不必有类实体,而是访问类的属性和函数本身,不再在乎值到底是什么,而是真正的把这个属性或函数拿出来,当我们想要这个属性的值或函数的执行结果,我们就需要用拿到的属性和函数本身去调用一个对象,这个过程就反过来了,不是对象调用属性和函数,而是属性和函数本身调用对象。

阅读全文 »

Kotlin开发-15-操作符重载

2017-08-26 | Kotlin

在 Kotlin 中允许对操作符进行重载,并提供了简单友好的方式来支持这个特性,这样的好处就是我们可以对一些原本不支持操作符的类型使用操作符,简化代码,举个例子,Kotlin 中的集合类型是支持操作符的,而 Java 中不支持,对比一下使用和不使用操作符对集合增减元素的操作。

1
2
3
4
5
6
7
8
9
10
11
// 使用操作符
val a = list + "1"
val b = list + destList
val c = list - "2"
val d = list - destList

// 不使用操作符
val e = list.add("1")
val f = list.addAll(destList)
val g = list.remove("2")
val h = list.removeAll(destList)
阅读全文 »

Thinker 热修复

2017-08-17 | Android
Tinker 是微信官方的 Android 热补丁解决方案,它支持动态下发代码、So 库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用 Tinker 来更新你的插件。 Thinker GitHub Thinker 文档 简书 热修复框架 Tinker
阅读全文 »

Walle 多渠道打包

2017-08-16 | Android

Walle 是 APK Signature Scheme v2 下新的多渠道打包方案,速度快,也支持 360 加固,下面是本文相关链接。

Android Signature V2 Scheme 介绍

美团 Walle 多渠道打包 原理介绍

项目地址 Meituan-Dianping/Walle

阅读全文 »

Git 命令

2017-08-10 于杭州 | bash

Git 日常命令收集,对平常使用的 git 命令及版本管理中遇到的问题进行梳理。

文中 { } 包含的部分表示变量参数,如 {git-url} 指的是远程 git 地址,[ ] 包含的部分指的是这部分命令是可以省略的。

阅读全文 »

Kotlin开发-14-杂七杂八(解构,类型自动转换,Range,异常)

2017-08-10 | Kotlin

汇总一些杂七杂八的点,不值得单独开一篇整理了。

主要内容包括

  1. 解构声明
  2. 生成数列的 Range
  3. 类型转换
  4. 异常处理等
阅读全文 »

Kotlin开发-13-集合

2017-08-08 | Kotlin

在 Java 中集合类型也是很重要的数据结构,它可以用来存储一组同类型的数据;

在 Kotlin 中将集合明确分为了可变的集合和不可变的结合,List<out T> 是一个只读的接口,只能执行的 get(),size() 等读取方法,如果想要更改集合的数据,需要使用 MutableList<T>,从而区分可辨与不可变集合。Set<out T> 和 MutableSet<T>、Map<K,out V> 和 MutableMap<K,V> 也是同样的模式。

相比 Java,Kotlin 中的集合除了包含 Java 中的集合的相关方法,还扩展了很多简化集合操作的函数,结合 Lambda 表达式,把一些对集合的操作变的相当相当方便。

本文主要是对集合类的各种函数进行尝试和整理。

阅读全文 »

Kotlin开发-12-空值安全

2017-08-07 | Kotlin

在进行属性的初始化时能够感受到 Kotlin 在编译时对 null 值的控制,正是因为 Kotlin 的这些特性,使得 Kotlin 成为一种 空安全(Null Safaty) 的语言,遵循 Kotlin 的规范将有效的避免程序中的 NPE。

其实遵循 Kotlin 的变量的声明和初始化方式基本可以避免 NPE 的出现,Kotlin 不允许给一个 变量 null 值,但是你可以使用 Type? 的形式(例如 String? )声明这是一个可以为 null 的变量,他就可以被初始化为 null。

除此之外,kotlin 提供了丰富的运算符在运行时进行 空值检测 ,简化代码逻辑。

阅读全文 »

Kotlin开发-11-函数

2017-08-01 | Kotlin

本文学习 Kotlin 函数的相关用法。主要包括 :

函数的声明和使用,函数的参数和返回值,单表达式函数的使用,使用不定长参数。

局部函数,尾递归函数,高阶函数,内联函数等。

Lambda 表达式,匿名函数和闭包。

其他如,reifeid 关键字,非局部返回及带有接受者的函数字面值。

函数在 Kotlin 函数是一等公民,它的地位和对象一样,所以不要对函数特别看待,就把它当作对象看就行了,这样很多东西会好理解的多。

阅读全文 »
1…456…15
陈栋

陈栋

148 日志
23 分类
42 标签
GitHub
友链
  • 我的GitHub
  • 我的CSDN
  • 我的简书
  • WanAndroid
  • Lebens
© 2020 陈栋 Hosted by Coding Pages