自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

躬行之

个人公众号:躬行之(jzman-blog),本号主推原创 Android、 Java、职场、生活、个人成长等方面的文章,这里能看到和你一样的成长足迹,希望我们在提升认知的道路上走得更远。可

  • 博客(86)
  • 资源 (5)
  • 收藏
  • 关注

原创 自定义View实现一个日期选择器

通过自定义 View 来实现一个时期时间选择器,可以放在底部也可以放在中间位置弹出,先来一张效果图:下面简述一下实现过程:基本思路Baseline计算如何实现滚动具体绘制MDatePickerDoialog的实现MDatePickerDoialog的设置MDatePickerDoialog的使用基本思路日期选择器的一个最基本元素都是一个可以随意设置数据的一个滚轮,这里也是...

2019-12-09 00:08:29 152

原创 Spring Boot系列之项目国际化

PS:原文首发于微信公众号:躬行之(jzman-blog)前面几篇文章尝试了接口开发、Thymeleaf 模板、常用语法及模板布局,阅读本文之前可以阅读前面几篇:阅读本文之前可以阅读前面几篇:Spring Boot系列之开发一个接口Spring Boot系列之Thymeleaf模板入门Spring Boot系列之Thymeleaf常用语法Spring Boot系列之Thymeleaf模板布局Spring Boot 项目的国际化实现起来非常简单,为了保证 Spring Boot 系列的连.

2020-11-26 22:55:27

原创 Spring Boot系列之Thymeleaf模板布局

PS:原文首发于微信公众号:躬行之(jzman-blog)前面几篇文章尝试了接口开发、Thymeleaf 模板及其常用语法,阅读本文之前可以阅读前面几篇:Spring Boot系列之开发一个接口Spring Boot系列之Thymeleaf模板入门Spring Boot系列之Thymeleaf常用语法Thymeleaf 模板布局主要是为了更好的对前端页面进行划分,主要是通过 Thymeleaf 相关语法来对前端页面布局,主要内容如下:引用模板片段片段表达式语法参数化模板片段移除模.

2020-11-24 01:41:27 10

原创 Spring Boot系列之Thymeleaf常用语法

主题列表:juejin, github, smartblue, cyanosis, channing-cyan贡献主题:https://github.com/xitu/juejin-markdown-themestheme: juejinhighlight: juejin原文首发于微信公众号:躬行之(jzman-blog)上篇文章中简单介绍了 Thymeleaf 模板的依赖、基本属性以及使用方式,下面将从以下几个方面介绍 Thymeleaf 中的常见语法:表达式字符串拼接条件比较s.

2020-11-11 00:56:11 37

原创 Spring Boot系列之Thymeleaf模板入门

原文首发于微信公众号:躬行之(jzman-blog)Thymeleaf 是一个用于 Web 开发的 Java 模板引擎,能够处理 HTML、XML、JavaScript、CSS 甚至纯文本,Spring Boot 推荐使用 Thymeleaf 模板引擎而不是传统的 JSP 技术,主要内容如下:引入ThymeleafThymeleaf属性Thymeleaf的使用热部署引入Thymeleaf个人觉得 Gradle 相较 Maven 更简洁,这里是用 gradle 来构建整个 Web 项目.

2020-10-27 00:42:33 25

原创 Spring Boot系列之开发一个接口

原文首发于微信公众号:躬行之(jzman-blog)Spring Boot 是用来简化 Spring 应用程序的开发的,可以减少不必要的配置过程,其主要特性包括 Spring Boot Starter、自动配置、命令行接口、Actuator 等,作为 Android 开发者对 Spring Boot 的学习将以会使用为主,所有文章会基于对应的案例,本篇文章将从以下几个方面介绍如何使用 Spring Boot 开发一个接口:Spring Boot项目初始化使用IDEA创建Spring Boot项目.

2020-10-13 01:16:14 60

原创 设计模式之迭代器设计模式

原文首发于微信公众号:躬行之(jzman-blog)迭代器设计模式是一种常用的设计模式,用于提供一种方法顺序访问一个聚合对象中的各种元素,但是又不暴露该对象的内部表示,迭代器设计模式属于行为型设计模式。相关概念使用场景Java实现Dart实现相关概念抽象聚合角色:定义添加、删除等操作聚合对象的方法以及创建迭代器的方法;具体聚合角色:抽象聚合角色的具体实现类;抽象迭代器角色:定义迭代器相关方法,比如 hasNxt、first、last等方法;具体迭代器角色:抽象迭代器角色的具体实.

2020-09-29 00:22:03 27

原创 Wireshark分析验证TCP协议

原文首发于微信公众号:躬行之(jzman-blog)最近特意书梳理了一下 TCP 相关的知识,并通过抓包进行了验证,并分析了从 TCP 建立连接到端来连接的全过程,相信以前和我一样上课没懂的看完这篇文章应该差不多懂了。TCP 提供的是一种面向连接的、可靠的字节流服务,也就是说两个 TCP 的应用在交换数据之前必须建立一个 TCP 连接,且在一个 TCP 连接中仅有两方进行通信,TCP 和 UDP 都使用相同的网络层。使用 TCP 发送数据时,数据会被分割成 TCP 认为最适合发送的数据块,这一点与.

2020-09-27 00:23:52 17

原创 普及一下IPTV行业

原文首发于微信公众号:躬行之(jzman-blog)机顶盒起源于 20 世纪 90 年代欧美国家,主要用于保护版权和收取收视费,有线电视台在电视机前加一个密钥盒。只有交了费的用户才能正常收看电视,这就是最初机顶盒的原型。后来随着互联网技术的不断发展出现了具备上网功能的机顶盒,但是市场反响一般。20 世纪 90 年代后期,随着美国和欧洲 DTV(数字电视)和 HDTV(高清晰度数字电视)试播之后,掀起了机顶盒发展的高潮,这次机顶盒的主要作用是普通模拟电视机收看数字电视或数字高清晰度电视,这种机顶盒就是.

2020-09-24 23:57:33 1533

原创 单链表及其反转

原文首发于微信公众号:躬行之(jzman-blog)单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点由元素和指针构成,元素是存储数据的存储单元,指针是连接每个结点的地址数据,本文将介绍什么是单链表以及单链表的翻转,主要内容如下:什么是单链表遍历反转单链表递归反转单链表什么是单链表对于单链表的每个结点,都有两块存储区域,一块存储对应节点的数据,另一块存储该节点的下一个结点的地址,可以称之为后继指针(next),单链表图示.

2020-09-22 23:55:38 514

原创 自定义View中为何match_parent和wrap_content效果一样

原文首发于微信公众号:躬行之(jzman-blog),欢迎关注交流!今天来分享一个我在自定义 View 中遇到的问题,如果分析有误,还望各位指出,在自定义 View 的过程中一定会遇到一个问题,自定义 View 没有问题,唯独在自定义的 View 中 match_parent 和 wrap_content 效果一致,onMeasure() 方法如下:/** * * 测量View的宽度和高度,这个方法由 measure方法调用,一般由子类重写该方法以提供更加精确和高效的测量 * * 规定:当重.

2020-09-21 00:49:32 60

原创 LayoutInflater.Factory使用及源码解析

PS:原文首发于微信公众号:躬行之(jzman-blog)LayoutInflater.Factory 是提供给你的一个加载布局使用的回调接口(Hook),可以使用 LayoutInflater.Factory 来自定义布局文件,实际上就是可以在 LayoutInflater.Factory 的回调中可以根据对应的 Tag 来修改某个 View,然后返回出去,LayoutInflater.Factory 源码如下:// LayoutInflater.javapublic interface Fac.

2020-09-15 23:38:17 24

原创 Android Jetpack组件之Paging Library源码篇

PS:原文首发于微信公众号:躬行之(jzman-blog)阅读本文之前,可先阅读同系列 Android Jetpack 组件文章如下 :Android Jetpack组件之Lifecycle篇Android Jetpack组件之LiveData详解Android Jetpack组件之ViewModel篇Android Jetpack组件之DataBinding详解Android Jetpack组件之使用可观察的数据对象Android Jetpack组件之Paging Library使用篇.

2020-08-31 00:31:37 33

原创 Android Jetpack组件之Paging Library使用篇

PS:原文首发于微信公众号:躬行之(jzman-blog)阅读本文之前,可先阅读同系列 Android Jetpack 组件文章如下 :Android Jetpack组件之Lifecycle篇Android Jetpack组件之LiveData详解Android Jetpack组件之ViewModel篇Android Jetpack组件之DataBinding详解Android Jetpack组件之使用可观察的数据对象本文将介绍 Paging Library 库的使用,其源码解析将在下.

2020-08-19 01:26:38 32

原创 Android Jetpack组件之使用可观察的数据对象
原力计划

PS:原文首发于微信公众号:躬行之(jzman-blog)可观察性是指某个对象变化通知其他数据的能力,主要有三种可观察类型:字段对象集合使用数据绑定可对数据对象提供在数据更改时通知其他数据更改的能力,将一个可观察数据对象绑定到 UI 上,当数据对象的属性发生变化可自动更新 UI。字段如果某个类只有几个属性,为了使得这些对象具有观察数据变化的能力,可以使用可观察字段(Observable fields)来实现,databinding 中提供了这样的通用 Observable 类,包括八种.

2020-06-30 00:03:03 122

原创 Android Jetpack组件之BindingAdapter详解
原力计划

PS:原文首发于微信公众号:躬行之(jzman-blog)上篇主要是 DataBinding 的基本使用,Android Jetpack 组件系列文章如下 :Android Jetpack组件之Lifecycle篇Android Jetpack组件之LiveData详解Android Jetpack组件之ViewModel篇Android Jetpack组件之DataBinding详解本篇文章主要介绍 Binding adapters 的使用方式,内容如下:databinding机制.

2020-06-12 00:02:58 561

原创 Android Jetpack组件之DataBinding详解
原力计划

原文首发于微信公众号:躬行之(jzman-blog)前面总结了 ViewModel、LiveData 及 Lifecycle 架构组件的使用,可先阅读下面文章详细了解:Android Jetpack组件之Lifecycle篇Android Jetpack组件之LiveData详解Android Jetpack组件之ViewModel篇本篇主要侧重 dataBinding 的基本使用,主要内容如下:dataBinding支持布局文件配置绑定数据特殊表达式事件绑定自定义绑定类O.

2020-05-25 07:36:23 239

原创 Android Jetpack组件之ViewModel篇
原力计划

PS:原文首发于微信公众号:躬行之(jzman-blog)前面学习了 LiveData 和 Lifecycle 架构组件的使用:Android Jetpack组件之Lifecycle篇Android Jetpack组件之LiveData篇ViewModel 具有生命周期意识,会自动存储和管理 UI 相关的数据,即使设备配置发生变化后数据还会存在,我们就不需要在 onSaveInstanceState 保存数据,在 onCreate 中恢复数据了,使用 ViewModel 这部分工作就不需要我.

2020-05-11 00:04:01 232

原创 Android Jetpack组件之LiveData详解
原力计划

PS:原文首发于微信公众号:躬行之(jzman-blog)LiveData 是一个可观察的数据持有者类,与常规 observable 不同,LiveData 是生命周期感知的,LiveData 也是 Android Jetpack 组件的一部分,本文将从如下几个方面学习 LiveData:什么是LiveDataLiveData的优点LiveData的使用自定义LivedataLi...

2020-04-08 00:19:36 292

原创 Android Jetpack组件之Lifecycle-Aware组件使用及源码解析
原力计划

PS:原文首发于微信公众号:躬行之(jzman-blog)Lifecycle-Aware 组件是 Android Jetpack 的一部分,该组件可以感知 Activity 和 Fragment 的生命周期状态的改变,有利于生成更易组织、更轻量化、更易于维护的代码,常用的开发方式就是在组件的对应的生命周期方法中处理相关业务逻辑,这种方式会导致不良代码的产生以及 bug 的增加,如果使用生命周...

2020-04-02 00:38:55 70

原创 HTTPS及加密算法,看这一篇就够了
原力计划

PS:坚持就是最大的超越。最近交流群里有人问 HTTPS 相关的知识,虽然会用,但是却一知半解,今天专门来总结一些 HTTPS 相关的知识点,这一篇主要是相关理论知识,下一篇写个案例实践一下,主要内容如下:HTTP的缺点什么是HTTPS公开密钥加密技术HTTPS加密传输公开密钥证书SSL和TLS为什么不使用HTTPSHTTP的缺点HTTP 的缺点如下:通信使用明文...

2020-03-24 23:38:12 731

原创 时间复杂度和空间复杂度
原力计划

时间复杂度和空间复杂度可以帮助我们根据具体的平台选择合适的算法,要学会以空间换时间或以时间换空间的设计思想,如在单片机等一般是内存空间比较紧张,在追求最优算法时应该可以适当以时间来换空间进行设计,当然在大内存设备上可以选择以空间换时间的设计思想来设计最优算法,所以,时间和空间复杂度可在一定的限制条件下作为判断某个算法或代码块运行快慢的判断方式,主要从如下几个方面了解和学习时间和空间复杂度:数据...

2020-03-22 21:05:04 54

原创 设计模式之外观设计模式
原力计划

PS:输入倒逼输出,想持续输出就得持续输入,每天的坚持很小,但是如果坚持一年呢,甚至更长时间呢,结果不一定很美好,但是过程一定很充实。今天温习一下外设计模式,可以选择阅读同系列文章:提到外观设计模式,就不得不提到设计模式的六大原则之一的迪米特法则,本篇文章将从如下几个方面介绍外观设计模式:迪米特法则如何理解外观设计模式实现外观设计模式迪米特法则开发中经常会遇到类与类之间的关...

2020-03-17 00:52:11 55

原创 Android组件化之ARouter的使用

原文首发于微信公众号:躬行之(jzman-blog),欢迎关注交流!前面两篇文章分别介绍了 Android 组件化基础知识以及 Android 组件化过程 Application 的相关知识,在阅读本文之前可以先阅读下面两篇文章:Android组件化基础Android组件化之ApplicationAndroid 组件化过程中涉及到不同 module 之间界面的跳转也是分厂重要的,如...

2020-03-10 22:45:58 600

原创 Android组件化之Application

上一篇文章笼统的总结了一下组件化开发的一些基础性问题,本篇文章继续组件化的学习,主要分如下三个方面介绍组件化中的 Application 如下:Application的作用合并Application动态配置ApplicationApplication的作用Androuid 应用的启动的时候最先启动的就是 Application,每个 App 运行时仅创建唯一一个 Applicatio...

2019-12-25 22:44:59 796

原创 Android组件化基础

原文首发于微信公众号:躬行之(jzman-blog),欢迎关注交流!当 App 项目复杂一定的程度,将项目组件化是必不可少的,组件化可以更好的进行功能的划分,提到组件化有人可能会想到模块化,其实组件化和模块化的本质是一样的,都是为了代码重用的业务解耦,模块化主要按照业务划分,而组件化主要按照功能划分,从组件化最基础的几个方面打开组件化的大门。组件之间的跳转动态创建资源冲突静态常量...

2019-12-22 23:34:34 91

原创 如何正确编译ijkplayer

原文首发于微信公众号:躬行之(jzman-blog),欢迎关注交流!最近项目中可能需要视频播放,而且后期还可能要支持播放 rtsp 协议的视频,权衡了一下还是通过编译 B 站开源的 ijkplayer 吧,ijkplayer 是一个基于 ffmpeg 的轻量级的可在 Android 和 Ios 上使用的跨平台播放器,可以通过编译来实现更多格式的支持,可以说只要是 ffmpeg 支持的格式...

2019-12-17 21:59:45 176

原创 如何上传Android库项目的到JCenter

原文首发于微信公众号:躬行之(jzman-blog),欢迎关注交流!上篇文章实现了一个日期时间选择器,github 地址如下:https://github.com/jzmanu/MDatePickerSample直接使用 gradle 依赖即可:compile 'com.manu:MDatePicker:1.0.0'也可以查看上篇文章的详细介绍或在文末点击阅读原文查看,这里顺便将...

2019-12-11 23:41:49 67

原创 onTouch和onClick 的那些事儿

原文首发于微信公众号:躬行之(jzman-blog),欢迎关注交流!事件的分发流程可以说基本上已经阐述清楚,在阅读本篇文章之前,请先阅读下面几篇文章:Android 事件分发之基础Android事件分发之源码分析Android事件分发之流程分析还有一个问题是 Android 事件传递过程中 onTouch 和 onClick 事件在整个事件过程中是如何进行事件传递的,下面主要是关...

2019-12-04 21:48:14 94

原创 Android事件分发之流程分析

原文首发于微信公众号:躬行之(jzman-blog),欢迎关注交流!上篇文章中主要针对 Activity、ViewGroup 以及 View 中的相关事件方法进行了基本概述,下面主要以案例的方式对 Android 中的事件传递进行归纳。默认的事件分发流程事件分发事件处理事件拦截总结阅读本篇文章之前请先阅读:Android 事件分发之基础Android事件分发之源码分析...

2019-12-01 22:41:43 54

原创 Android事件分发之源码分析

原文首发于微信公众号:躬行之(jzman-blog),欢迎关注交流!上篇文章中叙述了 Android 事件分发的大致流程,下面从 Activity、ViewGroup、View 三个方面介绍事件的相关方法,小节如下:ActivityViewGroupView阅读本篇文章之前请先阅读:Android 事件分发之基础ActivityActivity中主要两个与事件传递相关...

2019-11-24 18:04:00 68

原创 Android事件分发基础

原文首发于微信公众号:躬行之(jzman-blog),欢迎关注交流!Android 事件分发机制是比较重要的一块内容,总结一下 Android 事件分发的一些知识,计划分为四篇文章来写,内容如下:本篇是第一篇,希望从整体流程上叙述一下大致的分发过程,使读者能够对事件分发有个初步的了解,内容如下:View 与 ViewGroupMotionEvent 对象View 的事件分发V...

2019-11-10 22:26:22 40

原创 RxJava2系列之转换型操作符

原文首发于微信公众号:躬行之(jzman-blog),欢迎关注交流!buffer 操作符window操作符map操作符groupBy操作符cast操作符scan操作符To操作符buffer 操作符buffer 操作符重载方法比较多,这里选取典型的几个来说明 buffer 操作符的使用,buffer 操作符的使用可以分为如下三类,具体如下://第一类public fin...

2019-10-30 23:45:17 137

原创 RxJava2系列之创建型操作符

原文首发于微信公众号:jzman-blog,欢迎关注交流!RxJava 是 ReactiveX 在 Java 上的开源的实现,一个用于通过使用可观察序列来进行异步编程和基于事件的程序的库,这是官网的介绍,主要关注点是异步编程和链式调用以及事件序列。引入RxJava概念基本实现Just操作符from操作符defer操作符empty操作符never操作符timer操作符in...

2019-10-22 23:35:32 115

原创 微信小程序之Flex容器详解

原文首发于微信公众号:jzman-blog,欢迎关注交流!Flex 是 W3C 提出的一种新的布局方案,可以非常方便的完成响应式页面布局,到目前为止几乎所有浏览器都支持,Flex 是 Flexible Box 的缩写,翻译过来是"弹性布局"的意思,下面一起来学习 Flex 布局的使用。基础概念flex容器属性flex项目属性总结基础概念采用 Flex 布局的元素称为 Flex...

2019-10-13 23:34:30 172

原创 微信小程序之初始篇

原文首发于微信公众号:jzman-blog,欢迎关注交流!微信官方团队对小程序的定义是一种全新的连接用户和服务的方式,当然微信小程序的出现更多的是巩固微信社交老大的地位,微信小程序之后诞生的支付宝小程序、快应用以及最近出现的百度智能小程序、头条小程序等,可见小程序设计出一套模板不是很难,巨头们都在抢占小程序风口,争取能在小程序的裂变效应下为自身赋能,不扯了,如果有时间还是学习一下小程序开发吧...

2019-10-10 23:17:27 85

原创 设计模式之策略设计模式

原文首发于微信公众号:jzman-blog,欢迎关注交流!策略模式对应于解决某个问题的算法集合,允许用户从这些算法集合中选择合适的算法,可以根据具体的业务需求,在不修改原有代码的基础上增加新的算法策略,这样不仅实现了算法或业务独立,而且可以做到统一切换、统一调用。相关概念抽象策略角色:一般使用接口来统一定义策略方法;具体策略角色:封装具体的策略算法;环境角色:完成策略算法的统一对外...

2019-10-07 22:47:16 34

原创 设计模式之代理设计模式

原文首发于微信公众号:jzman-blog,欢迎关注交流!今天来看一下什么是代理设计模式,顾名思义,代理就是通过中介代替某人做某一件事,对应到我们的程序中就是通过代理对象来控制某个具体对象某个方法的访问,在该方法之前和之后可以做一些额外处理。概念理解静态代理动态代理概念理解抽象角色:用于定义真实角色和代理角色共有的方法。真实角色:真实角色要实现的具体业务逻辑以供代理角色调用...

2019-09-27 00:05:27 31

原创 Android 8.0自适应图标

原文首发于微信公众号:jzman-blog,欢迎关注交流!Android 8.0 引入了自适应应用启动图标,可在不同的设备中显示不同的图标,如自适应图标可以在一台设备上显示为圆形,在另一台设备上显示为方形,每个 OEM 厂商都会提供一个 mask,系统会自动将自适应图标渲染成相同的形状,自适应图标也可以使用到设置、分享等想保持统一图标风格的位置。自适应图标支持的 mask 因不同设备而不同...

2019-09-25 22:47:51 359

原创 Android 7.0应用之间共享文件

原文首发于微信公众号:jzman-blog,欢迎关注交流!开发中经常需要将某个文件向另一个应用程序传递,如图片上传到另一个应用程序、文件在不同存储路径之间的复制粘贴等都需要共享文件,可以这样理解接收文件的应用是在向提供文件的应用发送请求。从 Android 7.0 开始,Android 执行 StrictMode 策略,禁止在应用外部公开 file://URL,如果在 Android 7....

2019-09-23 22:24:27 191

DBFlow使用完整案例

DBFlow使用完整案例,对应博客文章:https://blog.csdn.net/jzman/article/details/80012837

2018-12-19

录音文件amr转MP3

可以将录音文件amr转为MP3方便使用,官网【http://www.sauronsoftware.it/projects/jave/jave-1.0.2.zip?PHPSESSID=rs8aq1fber3ivi1f1ff70oht15】,但是下载非常慢,没有资源分的私我就好...

2018-02-09

Gif 录制工具

分享一款好用的 GIF 录制工具,比如写博客是需要录制 Gif 时就可以使用,非常好用...

2017-10-23

Android使用Mina与服务器通信Demo(包括服务端)

mina 客户端与服务器端之间的通信,整个压缩包包括服务端与Android客户端的完整代码,下载解压导入即可运行喔。。。

2017-09-12

支付宝官方Demo(亲测)

首先,这是支付宝官方Demo,使用过程中只需替换 APPID、PID以及配置自己应用的公钥私钥即可,测试需要配置沙箱环境并且下载沙箱钱包即可进行支付测试咯....

2017-09-11

空空如也

空空如也

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

TA关注的人 TA的粉丝

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