alonealice

个人博客

android开发小tip与踩过的坑(持续更新)

这篇文章主要是记录自己在开发过程中遇到的一些小tip,别看这些东西很细微,有时候可以解决大麻烦,有些对于开发非常重要。还有就是自己曾经踩过的坑,我觉得都有必要记录下来。这些坑虽然不是每个人都会踩(有些确实是自己太笨了才踩的),但是既然我踩了,那可能还会有人踩,这样既惊醒自己,也可帮助他人。文章内容持续更新,也没有具体的分类,遇到一个添加一个。 greendao 生成代码 很多人都用过gree......

BottomNavigationView分析

Bottom-Navigation是谷歌官方发布的android底部状态栏,它的动画效果非常的漂亮,看起来非常的让人赏心悦目。为了能够拥有相同的用户体验,google对它有着严格的设计标准,具体的要求和实例请看:官方文档。同时,谷歌还推出了BottomNavigationView来实现这种设计。那下面就来看看BottomNavigationView是如何实现的。 简单使用 通过BottomN......

okhttp源码分析(一)

OkHttp是一款优秀的HTTP框架,它支持get请求和post请求,支持基于Http的文件上传和下载,支持加载图片,支持下载文件透明的GZIP压缩,支持响应缓存避免重复的网络请求,支持使用连接池来降低响应延迟问题。 基本用例 首先看一下它的基本使用:(具体的使用方法请看官方文档) 12345OkHttpClient client = new OkHttpClient(); Req......

设计模式之责任链模式

责任链模式是一种对象的行为模式。通俗的说,就是多个处理者对象链成一条链,请求在这条链上传递,知道某个对象处理此请求。 一个简单的实现示例如下: 处理方法: 1234public abstract class ConcreteHandler { public abstract void handlerRequest(Handler handler);} 定义处理者: 1......

Kotlin基础语法(三)

继承 在 Kotlin 中所有类都有一个共同的超类Any,这对于没有超类型声明的类是默认超类,Any与java中的Object不同,它只有equals()、hashCode()和toString()三个方法。 要声明一个显式的超类型,我们把类型放到类头的冒号之后: 123open class Base(p: Int)class Derived(p: Int) : Base(p) 基类在声明时......

Kotlin基础语法(二)

类和对象 类 在Kotlin中,类依旧使用class定义,用大括号包裹,不过当类里面没有任何代码时,大括号可以省略。 构造函数 Kotlin中可以有一个主构造函数和多个二级构造函数,如下: 12class A constructor(name: String){} 其中的constructor关键字可以省略。但是如果构造函数有其他声明获取注解,如:private,那么c......

kotlin基础语法(一)

自从今年google在开发者大会上宣布,将Kotlin作为Android开发的主要语言后,越来越多的开发者开始关注Kotlin,那么我们就来学习一下Kotlin的基础语法。 基本类型 数值类型 kotlin提供了6种内建数值类型,具体的类型和位宽如下(括号里为位宽):Int(32),Float(32),Double(64),Long(64),Short(16),Byte(8)。这里需要注意的......

Retrofit源码分析

Retrofit 是安卓上最流行的HTTP Client库之一,它因其出色的性能和简洁的实现广受开发者好评,那么现在就来看看它的实现原理。 使用方法 具体的使用方法,我在这里不再赘述,大家可以直接看它的官方文档 Retrofit官方文档,里面讲的非常简洁具体。 实现原理 在具体了解原理之前,我们先看看认真看完这一篇,不懂 Retrofit?不存在的(源码解析这篇文章中分享的Retrofit简......

java动态代理

代理的概念 首先,什么是代理? 当我们不能或者不希望直接访问对象A,而是通过对象B去访问对象A,这种方式就叫做代理。而对象A的类就被称为委托类,对象B的类就被称为代理类。 这样做有什么好处呢?第一,委托类被完全隐藏起来,其他类无法直接访问委托类;第二,在访问委托类之前,可以在代理类中做一些公共的操作,比如一些判断,可以帮助程序更好的解耦。 代理可以分为静态代理和动态代理。 静态代理 什么是静......

C语言学习笔记(四)

文件和内存管理 文件类型为FILE,typedef定义数据类型,使用时一般使用文件指针:FILE *pFile 文件打开:FILE *pFile;pFile=fopen(“文件名”,使用方式);使用方式有以下:r(只读文本文件),w(只写文本文件),a(追加文本文件,在末尾加内容),rb(只读二进制文件),wb(只写二进制文件),ab(追加二进制文件),r+(打开文件文本,可读可写)......