自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (6)
  • 收藏
  • 关注

原创 kotlin 访问修饰符

## 访问权限修饰符public:​ 默认修饰符,被其修饰的在任何位置都可以被访问private​ 表示在当前类可以被访问protected:​ 在当前类以及子类可以被访问Internal:​ 模块内可以访问## kotlin Java 访问修饰符的区别相同点:private、protected、public 访问权限修饰符kotlin 和 java 是一致的不同点:​ java 默认修饰符是default (包可见),kotli...

2021-06-21 10:33:26 558 2

转载 jetPack 架构组件状态保存(来自官网)

jetPack 架构组件状态保存(来自官网)在发生系统发起的 Activity 或应用销毁后,需要及时保存和恢复 Activity 的界面状态,这是用户体验的一个至关重要的部分。在这些情况下,用户希望界面状态保持不变,但是系统会销毁 Activity 及其中存储的任何状态。要使系统行为符合用户预期,可以把 ViewModel 对象、onSaveInstanceState() 方法和/或本地存储空间结合起来使用,从而在发生此类应用和 Activity 实例转换后保持界面状态。在决定如何组合这些选项时,需

2020-09-29 16:39:05 340

原创 Jetpack 组件 LiveData + viewModel 使用分析

Jetpack 组件 LiveData + viewModel 使用分析1、LiveData 简介LiveData 是一个可观察对象的持有者,与常规的可观察对象不同,liveData 是生命周期感知的,这意味着它尊重其他应该用程序组件(如 activity,fragment ,service)这种意识确保LiveData只更新处于活动生命周期状态的应用程序组件观察者LiveData 认为一个观察者的生命周期处于启动或恢复状态,那么这个观察者(由观察类表示)就处于活动状态LiveData 只向活动的观

2020-09-28 17:07:27 516

原创 JetPack LifeCycle 组件

JetPack LifeCycle 组件一、LifeCycle 简介:lifeCycle 是 Android JetPack 系列库中的一个组件,可以使其他对象感知 activity 后者fragment 生命周期的变化。通过该组件可以使分离activity 和fragment 生命周期的方法同时可以获取当前的 生命周期状态 进行具体业务处理.Lifecycle 使用两种主要枚举跟踪其关联组件的生命周期状态:1.1、Event 和 stateEvent:ON_CREATEON_START

2020-09-27 16:51:25 151

原创 ButterKnife process 处理流程

ButterKnife process 处理流程:一、ButterKnifeButterKnife 是一个运行时注解库,通过 processor(注解处理器)来实现注解处理的 ,经过Processor 接口提供的一些工具类进行自定义注解处理,结合JavaPoet 进行代码的自动生成,procssor 位于 javax.annotation.processing 包下,具体的方法可以访问jdk 文档进行了解,下面列出了常用的几个方法1.1、procossor 类结构:abstract Abstract

2020-09-01 19:46:51 197

原创 android webView 图片选择

android webView 图片选择一、webView 图片选择器调用触发开发中经常会与H5 交互,遇到图片选择怎么办呢?WebChromeClient 中 onShowFileChooser 可以用来处理图片选择问题代码如下: mWebView.setWebChromeClient(new WebChromeClient(){ private Uri imgUri; @Override public boolean

2020-08-28 11:56:53 1298

原创 OKHttp 源码解析(四):ConnectInterceptor 拦截器

ConnectInterceptor:ConnectIntercepter 拦截器的代码比较简单,实际上它是调用了其它实现类,连接拦截器通过 输入输出流进行网络连接通过 streamAllocation.newStream 创建一个httpCodec: @Override public Response intercept(Chain chain) throws IOException { RealInterceptorChain realChain = (RealInter

2020-08-04 16:04:03 154

原创 Dagger系列(二)常用注解的使用:

Dagger2(二)常用注解的使用:Dagger2起源于Dagger,是一款基于Java注解来实现的完全在编译阶段完成依赖注入的开源库,主要用于模块间解耦、提高代码的健壮性和可维护性。Dagger2在编译阶段通过apt利用Java注解自动生成Java代码,然后结合手写的代码来自动帮我们完成依赖注入的工作。Dagger2注解 :我们在使用dagger2 的时候经常用到一些注解:@Inject@Inject有两个作用,一是用来标记需要依赖的变量,以此告诉Dagger2为它提供依赖;二是用来标记构造函数

2020-06-13 23:15:37 388

原创 Arouter 使用(一):

Arouter 使用(一):官方git: https://github.com/alibaba/ARouter/blob/master/README_CN.md一、Arouter 简介:1、功能介绍支持直接解析标准URL进行跳转,并自动注入参数到目标页面中支持多模块工程使用支持添加多个拦截器,自定义拦截顺序支持依赖注入,可单独作为依赖注入框架使用支持InstantRun支持MultiDex(Google方案)映射关系按组分类、多级管理,按需初始化支持用户指定全局降级与局部降级策略页

2020-06-12 14:55:03 459

原创 Dagger系列(一)

Dagger系列(一)Dagger 是一个对象注入框架,我们用采用编写接口框架自动生成实现类的方式来生成实现代码,我们只需要通过相关注解来注入对象:举个例子,以下举例采用官方的ATM demo:第一步加入依赖 implementation 'com.google.dagger:dagger:2.22.1' annotationProcessor 'com.google.dagger:...

2019-10-29 15:07:57 198

原创 (jetPack)数据绑定(二)

使用可观察对象当一个对象发生变更会发出通知,数据绑定库允许使用对象,字段以及 集合 进行观察一个就旧的对象可以使用数据绑定但是修改对象不会自动引起UI 的更新,数据绑定可用于使您的数据对象在数据更改时通知其他对象(称为侦听器)当这些可观察数据对象之一绑定到UI且数据对象的属性更改时,UI将自动更新。可观察字段创建实现该Observable接口的类涉及一些工作 ,如果您的类仅具有一些属性,...

2019-10-29 09:41:19 245

原创 (jetPack)数据绑定(一)

数据绑定库一、搭建环境build.grage 添加 dataBindingandroid{ ... dataBinding{ enabled = true }}二、示例项目:xml 文件:<?xml version="1.0" encoding="utf-8"?><layout xmlns:android="http://schemas.android...

2019-10-28 16:10:54 318

原创 Notication 应用

package union.com.viewgroup.utils;import android.app.Notification;import android.app.NotificationChannel;import android.app.NotificationManager;import android.app.PendingIntent;import android.c...

2019-09-19 11:55:16 180

原创 Fragment 在viewPager 中的数据处理问题(Fragment 的懒加载)

package union.com.viewgroup.ui.frgment;import android.content.Context;import android.os.Bundle;import androidx.fragment.app.Fragment;import androidx.fragment.app.FragmentManager;import androi...

2019-08-27 18:47:40 156

原创 JavaPoet 的使用

一、介绍JavaPoet是一个用于生成. Java源文件的Java API。gitHub:https://github.com/square/javapoet文档地址:https://square.github.io/javapoet/1.x/javapoet/在进行注释处理或与元数据文件(例如,数据库模式、协议格式)交互时,源文件生成非常有用。通过生成代码,您可以消除编写样板文件的需要,...

2019-08-19 15:50:40 705

原创 清单文件meta-data 标签的解析:

定义接口Module:package union.com.viewgroup.utils.parser;/* * @Auther xiaobo * @Date 2019/8/16 15:32 * @Version 1.0 * @Desc 接口 */public interface Module { void println();}...

2019-08-19 15:50:08 444

原创 时间管理工具类 DateUtils

package union.com.viewgroup;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Local...

2019-08-12 20:33:34 182

原创 自定义titleLayout

JavaCode:package com.example.module_worldstudy.mvp.ui.widget;import android.app.Activity;import android.content.Context;import android.content.res.TypedArray;import android.graphics.drawable....

2019-08-12 14:17:03 426

原创 RxJava 基本介绍

RxJavaRxjava 介绍RxJava是ReactiveX(反应性扩展)的Java VM实现:一个库,用于使用可观察序列组合异步和基于事件的程序。RxJava 是轻量的RxJava 适用于多种语言 Groovy, Clojure, JRuby, Kotlinand Scala.RxJava 起步Gradle 集成compile 'io.reactivex.rxjava2...

2019-07-01 10:58:35 491

原创 Flutter(四)- Navigator 的使用

上一次我们创建了 Counter 计数器实例,关于 Navigator 使用在其基础上做以修改:代码如下:import 'package:flutter/material.dart';void main() { runApp(MyApp());}class MyApp extends StatelessWidget { @override Widget buil...

2019-05-15 14:55:42 157

原创 Flutter(三)-Counter 计数器项目示例说明

Android Studio 创建Flutter 计数器项目:创建的项目结构如上图:android 文件夹和我们原生app 的目录是一致的ios 文件是ios 平台的原生项目结构fluter 项目文件在哪呢,打开lib 文件夹,如下图:这个文件夹包含我们Flutter 的项目文件pubspec.yaml 这个文件是管理我们Flutter 的依赖先提供一下...

2019-05-13 18:11:53 1334

原创 Dart 语言简介(二)-Flutter 异步编程

Dart类库有非常多的返回Future或者Stream对象的函数。 这些函数被称为异步函数:它们只会在设置好一些耗时操作之后返回,比如像 IO操作。而不是等到这个操作完成。async和await关键词支持了异步编程,允许您写出和同步代码很像的异步代码。Future:Future.then 使用: Future.delayed(new Duration(seconds:2),(){...

2019-05-13 15:30:12 171

原创 Dart 语言简介(一)

一、变量声明1、var类似于JavaScript 中的var ,它可接收其它类型的变量,但最大不同的是Dart 中的变量一旦赋值,类型便会确定,则不能改变其类型 ,如:var t;t=’Hello World’;//下面代码在dart 中会报错,因为变量t的类型已经确定为String//类型一旦确定后则不能更改其类t= 1000;2、dynamic 和Object...

2019-05-13 10:41:43 354

原创 Glide v4 基本用法(一)

文档地址:https://muyangmin.github.io/glide-docs-cn/doc/download-setup.htmlAndroid SDK 要求: android minSDK  version 14  compile SDK verison 27support Library  Version SDK 27如果你需要使用不同的支持库版本,你需要在你的 ...

2019-01-30 09:39:47 372

原创 ReactiveX 学习笔记(Reactive 介绍 来自官网的翻译)

ReactiveX地址:http://reactivex.io/ReactiveX是一个通过使用可观察序列组合异步和基于事件的程序的库。它扩展了observer模式以支持数据和/或事件序列,并添加了操作符,允许您在抽象底层线程、同步、线程安全、并发数据结构和非阻塞I/O等问题的同时以声明的方式组合序列observable是访问多个条目异步序列的理想方法,它填补了这个空白它有时被...

2019-01-29 11:04:25 303

原创 okhttp3 源码解读(HttpUrl源码类)

在源码中okhttp-tests 中查看HttpUrlTest 单元测试类,该类包含了各种各样的url 样式,看其构造方法为: HttpUrl parse(String url) { return useGet ? HttpUrl.get(url) : HttpUrl.parse(url); } httpUrl.get(url) 方法也是通过...

2019-01-03 16:00:42 4820 1

原创 DiskLruCache 源码解析

着手阅读DiskLruCache 源码无可厚非先去了解 DiskLruCache  这个框架的用法 见下面代码: File cacheDir = getDiskCacheDir(this, "cache"); if (!cacheDir.exists()) { cacheDir.mkdirs(); } ...

2018-07-27 18:34:35 210

原创 仿咕咚长按解锁按钮圆环效果

package com.union.healthysport.view.widget;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF...

2018-04-25 18:05:19 803

原创 Android 7.0 拍照使用getUriForFile

Android 7.0 拍照使用getUriForFile

2017-08-29 17:40:51 1526

转载 ViewPager 指示器

http://blog.csdn.net/lmj623565791/article/details/42160391

2017-08-29 17:12:12 207

原创 动态代理的理解

动态代理的理解

2017-08-28 14:59:34 207

原创 ORMLite 使用(一)

ormLite 简单使用

2016-10-19 20:38:25 262

原创 获取线程的状态

获取线程信息

2016-10-19 19:53:22 438

原创 Audio Capture 声音采集

录制音频

2016-10-14 10:01:29 1436

BaseLazyBaseFragment.java

Fragment 在viewPager 中的数据处理问题,避免fragment 在viewPager 每次显示时重新去处理数据

2019-08-27

JavapoetTest.java

JavaPost 测试工具类,用户验证解释各种api 的使用

2019-08-19

okhttp 源码

okhttp-master 源码是基于java的项目结构的,需要导入到idea 进行运行,每一个模块的测试类的包名为 okhttp-tests 包下,可作为源码解读的入口

2019-01-02

DiskLruCache 工具类

Imageloader 框架中用到的缓存工具类,拿出来整理一下分享出来

2018-07-28

listView 分页

listView 实现分页加载数据,实现分页加载数据

2014-08-19

ListView+CheckBox UI 完美版

ListView+CheckBox UI 完美版。实现 全选 、 全不选 、 删除等功能.rar )

2014-08-19

空空如也

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

TA关注的人

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