自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

假装你是大灰狼的专栏

不积跬步,无以至千里;不积小流,无以成江海。

  • 博客(21)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android Kotlin 类和接口(二)

首先申明下,本文为笔者学习《Kotlin 程序开发入门精要》的笔记,并加入笔者自己的理解和归纳总结。1. 类在kotlin中,类的声明使用class关键字。class Shape {}1.1 构造器类允许定义一个主构造器和若干个第二构造。主构造器是类头的一部分,紧跟在类名的后面,构造器参数是可选的。在init块中进行初始化,init块可直接使用主构造器的参数。class Shap...

2020-01-21 13:55:13 658

原创 Android Kotlin 基础(一)

首先申明下,本文为笔者学习《Kotlin 程序开发入门精要》的笔记,并加入笔者自己的理解和归纳总结。1. 定义变量和方法定义变量定义变量必须以var开头,定义常量以val开头数据类型在变量后面,并且用冒号(:)分隔定义变量时如果未初始化,必须指定数据类型。如果进行了初始化,可以不指定数据类型,编译器会自动推导数据类型不需要以分号(;)结尾示例var a1: Intvar a2...

2020-01-20 16:25:13 545

转载 Android Glide简单使用

Glide是谷歌为我们推荐的一个图片加载库。为什么要选择使用Glide呢?1、代码有人维护,不至于出现问题,项目组都搞不定的时候问题无法解决。(ImageLoader已没人维护了)2、代码简洁,可读性很好。(Fresco是一个非常优秀的库,但是配置稍显麻烦,同时代码风格读起来有些生疏)3、功能强大(400多k的包,包含很多功能,例如:像加载Gif图片就是Picasso做不到的)下面我们...

2020-01-15 11:11:26 19333 5

转载 Android JavaOpet

Android/Java 框架常常会使用编译期注解, 而其中关键的一步是如何生成 Java 文件. JavaPoet 就是用来生成 Java 代码的一个 Java Library.基础概念首先, 让我们来看一个简单的 Java 文件:可以见, 一个 Java 文件由四部分组成。也就是我们要生成一个 java 文件, 就是要生成上述四部分内容。对应到 JavaPoet 中, 我们来看一张...

2020-01-14 16:29:38 506 1

转载 Java 反射

java反射主要从以下几个方面理解理解Class类理解Java的类加载机制学会使用ClassLoader进行类加载理解反射的机制掌握Constructor、Method、Field类的用法理解并掌握动态代理1、理解Class类Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识,即所谓的RTTI。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类...

2020-01-09 18:06:13 139

转载 Java ClassLoader

一、什么是ClassLoader顾名思义,即是类加载器,具体作用就是将.class文件加载到JVM虚拟机中去,程序就可以正确运行了。二、认识.class文件Java是解释性语言,编写的代码都是.java文件,需要经过compile(编译)成.class文件才能运行。拿入门Hello World来讲:HelloWorld.javapublic class HelloWorld{ ...

2020-01-09 14:21:58 47144

转载 Android Volley完全解析

源码解析说起分析源码,那么应该从哪儿开始看起呢?这就要回顾一下Volley的用法了,还记得吗,使用Volley的第一步,首先要调用Volley.newRequestQueue(context)方法来获取一个RequestQueue对象,那么我们自然要从这个方法开始看起了,代码如下所示:public static RequestQueue newRequestQueue(Context cont...

2020-01-07 17:37:10 389 1

转载 Android Volley使用解析

Volley简介在2013年Google I/O大会上推出了一个新的网络通信框架Volley。Volley既可以访问网络取得数据,也可以加载图片,并且在性能方面也进行了大幅度的调整。特点:自动调度网络请求支持多个并发的网络连接支持请求优先级可以取消单个或一系列请求易于定制,如自定义请求方式调试和跟踪工具使用场景:非常适合去进行数据量不大,但通信频繁的网络操作不适合大数据......

2020-01-07 15:54:36 1668 1

转载 Android OkHttp3架构分析

转载来源: https://www.jianshu.com/p/9deec36f2759在OkHttp3中,其灵活性很大程度上体现在,可以intercept其任意一个环节,而这个优势便是okhttp3整个请求响应架构体系的精髓所在:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PkLb5sZq-1578299871669)(1.webp)]在OkHttp3中......

2020-01-06 16:38:10 946 1

转载 Android Okhttp主流程源码分析

在OkHttp3中,其灵活性很大程度上体现在可以 intercept 其任意一个环节,而这个优势便是okhttp3整个请求响应架构体系的精髓所在,先放出一张主框架请求流程图,接着再分析源码。String url = "http://wwww.baidu.com";OkHttpClient okHttpClient = new OkHttpClient();final Request requ...

2020-01-06 15:27:44 545 1

转载 Android Okhttp3基本使用

I.简介HTTP是现代应用常用的一种交换数据和媒体的网络方式,高效地使用HTTP能让资源加载更快,节省带宽。OkHttp是一个高效的HTTP客户端,它有以下默认特性:支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接连接池减少请求延时透明的GZIP压缩减少响应数据的大小缓存响应内容,避免一些完全重复的请求当网络出现问题的时候OkHttp依然坚守自己的职责,它会...

2020-01-06 14:45:36 19758 1

转载 Android EventBus3.0源码解析

转载来源: http://liuwangshu.cn/application/eventbus/2-eventbus-sourcecode.html前言上一篇我们讲到了EventBus3.0的用法,这一篇我们来讲一下EventBus3.0的源码以及它的利与弊。1.构造函数当我们要调用EventBus的功能时,比如注册或者发送事件,总会调用EventBus.getDefault()来获取Ev...

2020-01-06 09:07:42 314 1

转载 Android EventBus3.0用法全解析

前言EventBus是一款针对Android优化的发布/订阅事件总线。简化了应用程序内各组件间、组件与后台线程间的通信。优点是开销小,代码更优雅,以及将发送者和接收者解耦。如果Activity和Activity进行交互还好说,如果Fragment和Fragment进行交互着实令人头疼,我们会使用广播来处理,但是使用广播稍显麻烦并且效率也不高,如果传递的数据是实体类需要序列化,那么很显然成本会有点...

2020-01-03 18:13:39 8348 1

原创 Android 运行时动态申请权限

从Android6.0开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。同时系统默认为targetSdkVersion小于23的应用授予了所申请的所有权限。系统权限系统权限分为两类:正常权限和危险权限正常权限不会直接给用户隐私权带来风险。如果您的应用在其清单中列出了正常权限,系统将自动授予该权限。危险权限会授予应用访问用户机密数据的权限。如果您的应用在其清单中列出了正常权限...

2020-01-03 08:58:27 1070

原创 Android AsyncQueryHandler类

AsyncQueryHandler是用于ContentProvider上执行异步的CRUD操作。1. AsyncQueryHandler类AsyncQueryHandler类继承Handler类,通过封装ContentResolver来实现对ContentProvider的异步操作。public AsyncQueryHandler(ContentResolver cr) { supe...

2020-01-03 08:44:17 253

转载 Android CoordinatorLayout之源码解析

源码基于com.android.support:design:26.1.0,不同版本可能有所差异。一、开始上一篇Android CoordinatorLayout之自定义Behavior中,我们简单介绍了CoordinatorLayout以及如何自定义Behavior。所以这次我们从源码的角度分析CoordinatorLayout的内部实现机制,以便它更好的服务我们!本文内容主要围绕Be...

2020-01-02 16:19:01 279 1

转载 Android CoordinatorLayout之自定义Behavior

一、认识CoordinatorLayoutCoordinatorLayout作为support:design库里的核心控件,在它出现之前,要实现View之间嵌套滑动等交互操作可不是件容易的事,复杂、难度大,基本绕不开View的事件机制,CoordinatorLayout很大程度上解决了这个痛点,方便我们实现各种炫酷的交互效果。如果你还没用过CoordinatorLayout,可先了解它的基本用...

2020-01-02 15:14:49 660 1

原创 Android NavigationView控件

NavigationView帮助我们实现抽屉菜单界面,所有的东西都放在一个DrawerLayout中。<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/androi...

2020-01-02 13:01:42 443 1

原创 Android ConstraintLayout布局

前言ConstraintLayout约束布局, 与RelativeLayout有点类似。需要添加依赖dependencies { ... ... implementation 'com.android.support.constraint:constraint-layout:1.1.3'}1. 相对位置主要属性如下,layout_constraintLeft_to...

2020-01-02 12:25:22 2276

转载 Android LeakCanary原理分析

概述在上一篇LeakCanary使用详细教程中,我们熟悉了LeakCanary的使用和初步描述了它的工作机制,这篇我准备从源码的角度去分析LeakCanary的工作原理;源码分析从上一篇中我们知道,LeakCanary在Appaction的初始化方式:@Overridepublic void onCreate() { super.onCreate(); if (LeakC...

2020-01-02 09:55:41 3582 1

转载 Android LeakCanary使用详细教程

导语在Android的性能优化中,内存优化是必不可少的点,而内存优化最重要的一点就是解决内存泄漏的问题,在Android的内存泄漏分析工具也不少,比如PC端的有:AndroidStudio自带的Android Profiler、MAT等工具;手机端也有,就是我们今天要介绍的LeakCanaryLeakCanary简介LeakCanary是Square公司为Android开发者提供的一个自......

2020-01-02 09:17:36 17784 2

Python 核心编程(第二版).pdf

超清晰, Python 核心编程(第二版).pdf

2009-01-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除