博客园 - just_yang
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=85817
2020-01-20T03:59:56Z
just_yang
https://www.cnblogs.com/jiy-for-you/
feed.cnblogs.com
https://www.cnblogs.com/jiy-for-you/p/12217394.html
实现Arp报文发送和接收 - just_yang
继上次实现了 Ping 之后,尝试进入更底层的网络接口层实现局域网的 ARP 报文收发 ARP 协议概述 ARP(Address Resolution Protocol) 地址解析协议是用来通过网络层地址(IP地址)去寻找数据链路层地址(MAC地址)的网络传输协议. 在以太网(Ethernet)协议
2020-01-20T04:00:00Z
2020-01-20T04:00:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】继上次实现了 Ping 之后,尝试进入更底层的网络接口层实现局域网的 ARP 报文收发 ARP 协议概述 ARP(Address Resolution Protocol) 地址解析协议是用来通过网络层地址(IP地址)去寻找数据链路层地址(MAC地址)的网络传输协议. 在以太网(Ethernet)协议 <a href="https://www.cnblogs.com/jiy-for-you/p/12217394.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/12217384.html
实现 ping Utility - just_yang
为了加深自己对计算机网络的理解, 想自己实现一些操作系统提供的网络工具, 于是先从 ping 开始 首先, 命令的作用是检测两个网络设备在 TCP/IP 网络下是否能连通. 其底层基于 ICMP 协议, 而 ICMP 协议位于 TCP/IP 协议栈的网络层. 模拟 ping 命令则需要模拟发送 IC
2020-01-20T03:58:00Z
2020-01-20T03:58:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】为了加深自己对计算机网络的理解, 想自己实现一些操作系统提供的网络工具, 于是先从 ping 开始 首先, 命令的作用是检测两个网络设备在 TCP/IP 网络下是否能连通. 其底层基于 ICMP 协议, 而 ICMP 协议位于 TCP/IP 协议栈的网络层. 模拟 ping 命令则需要模拟发送 IC <a href="https://www.cnblogs.com/jiy-for-you/p/12217384.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/11707366.html
理解 Flutter 中的 Key - just_yang
概览 在 中,大概大家都知道如何更新界面视图: 通过修改 去触发 重建,触发和更新的操作是 框架做的。 但是有时即使修改了 ,`Flutter Widget` 重建, 其中就隐含了 框架内部的更新机制,在某些情况下需要结合使用 ,才能触发真正的“重建”。 下面将从 3 个方面 (When, Wher
2019-10-20T05:32:00Z
2019-10-20T05:32:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】概览 在 中,大概大家都知道如何更新界面视图: 通过修改 去触发 重建,触发和更新的操作是 框架做的。 但是有时即使修改了 ,`Flutter Widget` 重建, 其中就隐含了 框架内部的更新机制,在某些情况下需要结合使用 ,才能触发真正的“重建”。 下面将从 3 个方面 (When, Wher <a href="https://www.cnblogs.com/jiy-for-you/p/11707366.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/11707356.html
Android 中 MessageQueue 的 nativePollOnce - just_yang
Android SDK 中的事件循环已经是一个老生常谈的问题了, 像 `Looper MessageQueue` 这几个类也是被大家研究透彻了. 但是再回头看以前自己的分析, 总感觉差点什么, 不够透彻. 心里隐隐感觉自己没有把事情完全吃透, 于是今日又回顾 Android 中的事件循环机制, 注意
2019-10-20T05:29:00Z
2019-10-20T05:29:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】Android SDK 中的事件循环已经是一个老生常谈的问题了, 像 `Looper MessageQueue` 这几个类也是被大家研究透彻了. 但是再回头看以前自己的分析, 总感觉差点什么, 不够透彻. 心里隐隐感觉自己没有把事情完全吃透, 于是今日又回顾 Android 中的事件循环机制, 注意 <a href="https://www.cnblogs.com/jiy-for-you/p/11707356.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/9899118.html
Flutter GitLab 客户端 - just_yang
F4Lab Flutter for GitLab. 欢迎参加一起完成 🎉🎉🎉🎉 " Flutter4GitLab " 为啥做 GitLab 客户端 🙈 现在很多同学公司应该都是用 GitLab 来做代码管理的,如果手机上有客户端能方便的合下 MR, 写个评论,给个 Approve 应该体验
2018-11-02T15:39:00Z
2018-11-02T15:39:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】F4Lab Flutter for GitLab. 欢迎参加一起完成 🎉🎉🎉🎉 " Flutter4GitLab " 为啥做 GitLab 客户端 🙈 现在很多同学公司应该都是用 GitLab 来做代码管理的,如果手机上有客户端能方便的合下 MR, 写个评论,给个 Approve 应该体验 <a href="https://www.cnblogs.com/jiy-for-you/p/9899118.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/9745709.html
Android贝塞尔曲线应用-跳动的水滴 - just_yang
主要通过6个控制点实现。 绘制过程: 一些扩展函数,方便直接使用 PointF。 动画 分为 6 个阶段完成 具体请看: "https://github.com/stefanJi/AndroidView/tree/master/jumpwater"
2018-10-05T12:07:00Z
2018-10-05T12:07:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】主要通过6个控制点实现。 绘制过程: 一些扩展函数,方便直接使用 PointF。 动画 分为 6 个阶段完成 具体请看: "https://github.com/stefanJi/AndroidView/tree/master/jumpwater" <a href="https://www.cnblogs.com/jiy-for-you/p/9745709.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/9563982.html
Android媒体解码MediaCodec MediaExtractor学习 - just_yang
Android提供了MediaPlayer播放器播放媒体文件,其实MediaPlyer只是对Android Media包下的MediaCodec和MediaExtractor进行了包装,方便使用。但是最好理解下Android媒体文件的解码,编码和渲染流程。 使用 包下的MediaCodec和Medi
2018-08-31T01:35:00Z
2018-08-31T01:35:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】Android提供了MediaPlayer播放器播放媒体文件,其实MediaPlyer只是对Android Media包下的MediaCodec和MediaExtractor进行了包装,方便使用。但是最好理解下Android媒体文件的解码,编码和渲染流程。 使用 包下的MediaCodec和Medi <a href="https://www.cnblogs.com/jiy-for-you/p/9563982.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/9563953.html
RecyclerView 通用 Adapter - just_yang
先看使用方法 👀 Step 1. Add the JitPack repository to your build file Add it in your root build.gradle at the end of repositories: Step 2. Add the dependenc
2018-08-31T01:28:00Z
2018-08-31T01:28:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】先看使用方法 👀 Step 1. Add the JitPack repository to your build file Add it in your root build.gradle at the end of repositories: Step 2. Add the dependenc <a href="https://www.cnblogs.com/jiy-for-you/p/9563953.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/7751281.html
Android高亮TextView - just_yang
HighlightTextView " " Android文本高亮控件,基于View实现。 特点 文本高亮 单词自动换行 高亮词组保持在同一行显示 截图 Demo Java: XML: Methods: | method 方法 | description 描述 | |: |: | |setDefau
2017-10-29T13:16:00Z
2017-10-29T13:16:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】HighlightTextView " " Android文本高亮控件,基于View实现。 特点 文本高亮 单词自动换行 高亮词组保持在同一行显示 截图 Demo Java: XML: Methods: | method 方法 | description 描述 | |: |: | |setDefau <a href="https://www.cnblogs.com/jiy-for-you/p/7751281.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/7353745.html
去除DialogFragment的背景阴影,背景色,标题栏 - just_yang
style中: DialogFragment中:
2017-08-13T07:58:00Z
2017-08-13T07:58:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】style中: DialogFragment中: <a href="https://www.cnblogs.com/jiy-for-you/p/7353745.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/7309280.html
树的遍历,重建二叉树 - just_yang
详见 "jiyangg.github.io(二叉树集锦)" 二叉树节点: 访问节点操作 二叉树节点数目 如果是空树:返回0 如果不是空树:节点数 = (左子树节点数)+(右子数节点数) + 1 求二叉树深度 如果是空树:返回0 如果不是空树:深度 = Max(左子树深度,右子树深度) + 1 前序遍
2017-08-08T14:07:00Z
2017-08-08T14:07:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】详见 "jiyangg.github.io(二叉树集锦)" 二叉树节点: 访问节点操作 二叉树节点数目 如果是空树:返回0 如果不是空树:节点数 = (左子树节点数)+(右子数节点数) + 1 求二叉树深度 如果是空树:返回0 如果不是空树:深度 = Max(左子树深度,右子树深度) + 1 前序遍 <a href="https://www.cnblogs.com/jiy-for-you/p/7309280.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/7309221.html
链表逆序 - just_yang
```java
public ListNode reverse(ListNode listNode) if (listNode == null) { return null; } ListNode pre = null; ListNode cur = listNode; ListNode nex = cur.n...
2017-08-08T13:52:00Z
2017-08-08T13:52:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】```java
public ListNode reverse(ListNode listNode) if (listNode == null) { return null; } ListNode pre = null; ListNode cur = listNode; ListNode nex = cur.n... <a href="https://www.cnblogs.com/jiy-for-you/p/7309221.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/7282539.html
ThreadPoolExecutor理解 - just_yang
ThreadPoolExecutor组成 ThreadPoolExecutor的核心构造函数: 2. 使用 的`new Pool()`方法创建ExecutorService: 每一个new\ \ \ \ Pool方法实质也是调用ThreadPoolExecutor的构造方法,只是传入的参数是设定好的
2017-08-03T14:52:00Z
2017-08-03T14:52:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】ThreadPoolExecutor组成 ThreadPoolExecutor的核心构造函数: 2. 使用 的`new Pool()`方法创建ExecutorService: 每一个new\ \ \ \ Pool方法实质也是调用ThreadPoolExecutor的构造方法,只是传入的参数是设定好的 <a href="https://www.cnblogs.com/jiy-for-you/p/7282539.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/7282055.html
ThreadLocal理解 - just_yang
ThreadLocal:线程本地变量 意思就是:每个线程都拥有自己的ThreadLocal。 实际上是,不同的线程可以通过同一个ThreadLocal对象获取只属于自己的数据。其实是,ThreadLocal通过每个Thread内部的ThreadLocalMap实现了这个机制。 使用地方有: Andr
2017-08-03T13:48:00Z
2017-08-03T13:48:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】ThreadLocal:线程本地变量 意思就是:每个线程都拥有自己的ThreadLocal。 实际上是,不同的线程可以通过同一个ThreadLocal对象获取只属于自己的数据。其实是,ThreadLocal通过每个Thread内部的ThreadLocalMap实现了这个机制。 使用地方有: Andr <a href="https://www.cnblogs.com/jiy-for-you/p/7282055.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/7282051.html
Java反射理解 - just_yang
什么是Java反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种 的以及 的方法的功能称为Java的反射机制。 反射提供的功能: 运行时判断任意一个对象的类 运行时构造任意一个类的对象 运行时判定一个类具有的
2017-08-03T13:47:00Z
2017-08-03T13:47:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】什么是Java反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种 的以及 的方法的功能称为Java的反射机制。 反射提供的功能: 运行时判断任意一个对象的类 运行时构造任意一个类的对象 运行时判定一个类具有的 <a href="https://www.cnblogs.com/jiy-for-you/p/7282051.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/7282042.html
Object的wait和Thread的sleep - just_yang
Object的wait() 搭配 ,`nofityAll()`使用。 线程获取到对象锁之后,执行 就会释放对象锁,同时线程挂起,直到其他线程获取到对象锁并执行 后,线程重新开始运行。 输出: Thread.sleep() 线程获取到对象锁之后,sleep时不会释放对象锁,其他线程也不能获取到对象锁。
2017-08-03T13:45:00Z
2017-08-03T13:45:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】Object的wait() 搭配 ,`nofityAll()`使用。 线程获取到对象锁之后,执行 就会释放对象锁,同时线程挂起,直到其他线程获取到对象锁并执行 后,线程重新开始运行。 输出: Thread.sleep() 线程获取到对象锁之后,sleep时不会释放对象锁,其他线程也不能获取到对象锁。 <a href="https://www.cnblogs.com/jiy-for-you/p/7282042.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/7282033.html
Android媒体解码MediaCodec,MediaExtractor - just_yang
Android提供了MediaPlayer播放器播放媒体文件,其实MediaPlyer只是对Android Media包下的MediaCodec和MediaExtractor进行了包装,方便使用。但是最好理解下Android媒体文件的解码,编码和渲染流程。 Shape Of My Heart.mp4
2017-08-03T13:43:00Z
2017-08-03T13:43:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】Android提供了MediaPlayer播放器播放媒体文件,其实MediaPlyer只是对Android Media包下的MediaCodec和MediaExtractor进行了包装,方便使用。但是最好理解下Android媒体文件的解码,编码和渲染流程。 Shape Of My Heart.mp4 <a href="https://www.cnblogs.com/jiy-for-you/p/7282033.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/7282029.html
图片加载AsyncTask并发问题 - just_yang
在列表控件中使用AsycnTask加载图片时,会带来并发问题。 如果每个子视图都触发一个AsyncTask,因为AsyncTask内部是一个线程池,并发触发时,不能确保每个子视图的AsyncTask都进入了队列,而且异步任务的完成顺序和启动顺序也不一定一致。 "Multithreading For
2017-08-03T13:42:00Z
2017-08-03T13:42:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】在列表控件中使用AsycnTask加载图片时,会带来并发问题。 如果每个子视图都触发一个AsyncTask,因为AsyncTask内部是一个线程池,并发触发时,不能确保每个子视图的AsyncTask都进入了队列,而且异步任务的完成顺序和启动顺序也不一定一致。 "Multithreading For <a href="https://www.cnblogs.com/jiy-for-you/p/7282029.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/7282023.html
LruCache缓存机制 - just_yang
LruCache : Android提供的使用了(Least Recently Used)近期最少使用算法的缓存类 内部基于LinkedHashMap实现 实现这个主要需要重写 构造时需要确定Cache的最大内存,一般通过 方法:在添加value到Cache时会被调用,需要返回添加进数据的字节大小
2017-08-03T13:41:00Z
2017-08-03T13:41:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】LruCache : Android提供的使用了(Least Recently Used)近期最少使用算法的缓存类 内部基于LinkedHashMap实现 实现这个主要需要重写 构造时需要确定Cache的最大内存,一般通过 方法:在添加value到Cache时会被调用,需要返回添加进数据的字节大小 <a href="https://www.cnblogs.com/jiy-for-you/p/7282023.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/jiy-for-you/p/7282016.html
Android高效加载大图 - just_yang
通过 的`decode options`缩小图片到指定尺寸 1:通过加载设置了只编码图片边界options的图片,获取原图的尺寸和类型 2:计算图片需要缩小的倍数 3:设置options的inSimpleSize属性为缩小的倍数 4:获取缩小之后的Bitmap 设置会在decode时,不分配内存,但
2017-08-03T13:39:00Z
2017-08-03T13:39:00Z
just_yang
https://www.cnblogs.com/jiy-for-you/
【摘要】通过 的`decode options`缩小图片到指定尺寸 1:通过加载设置了只编码图片边界options的图片,获取原图的尺寸和类型 2:计算图片需要缩小的倍数 3:设置options的inSimpleSize属性为缩小的倍数 4:获取缩小之后的Bitmap 设置会在decode时,不分配内存,但 <a href="https://www.cnblogs.com/jiy-for-you/p/7282016.html" target="_blank">阅读全文</a>