自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 几种图片加密方式及其原理

几种图片加密方式

2024-03-08 15:58:37 4755 1

原创 【面试题整理】

面试题整理

2023-05-17 10:59:20 82

原创 java中常用集合的简单介绍

【代码】java中常用集合的简单介绍。

2023-04-05 13:58:41 110

原创 一文简单说明LiveData实现原理

LiveData 是 Android Jetpack 架构组件之一,它是一个可观察的数据持有者类,允许组件(如 Activity、Fragment)观察数据变化并自动更新 UI。在实际应用中,组件(如 Activity、Fragment)需要实现 Observer 接口并重写 onChanged 方法,以便在数据发生变化时执行自定义操作(如更新 UI)。setValue 方法用于设置 LiveData 的值。在这个方法中,我们检查是否有关联的观察者,并调用其 onChanged 方法,通知数据变化。

2023-04-04 15:16:09 116

原创 一文简单说明EventBus实现原理

在这个简化版的 EventBus 中,我们使用了一个 HashMap(subscribers)来保存每个事件类型的订阅者列表。在订阅者注册时,我们会检查订阅者是否有一个名为 onEvent 的方法,该方法接受当前事件类型作为参数。如果有这样的方法,订阅者将被添加到相应的订阅者列表中。在发布事件时,我们会找到相应的订阅者列表,并使用反射调用它们的 onEvent 方法,将事件对象传递给它们。需要注意的是,这个简化版的 EventBus 实现没有考虑线程模型、订阅者方法的注解和订阅者方法的缓存等细节。

2023-04-04 14:34:13 79

转载 Android开源框架:Retrofit详解

ServiceMethod就像是一个中央处理器,传入Retrofit对象和Method对象,调用各个接口和解析器,最终生成一个Request,包含api 的域名、path、http请求方法、请求头、是否有body、是否是multipart等等。Retrofit的源码十分优秀,用注解的形式组合HTTP请求,通过代理接口,处理请求的逻辑,最后再执行请求。熟悉设计模式的都知道,代理模式的思想是通过一个“代理商”,让”用户“通过它处理难以处理的”事情“。它请求实现的核心在于“注解”、“动态代理”、“反射”。

2023-03-06 18:00:33 459

原创 Activity创建流程

它不是一个线程,它是运行在 App 进程中的主线程中的一个方法中。最终通过 WindowManagerImpl.addView -> WindowManagerGlobal.addView -> ViewRootImpl.setView -> ViewRootImpl.requestLayout 就触发了第一次 View 的布局、测量、绘制的流程。phonewindow是作为view与activity之间的一个管理工具,创建是在activity的attach方法中,作为window的一个实现类。

2023-02-26 16:25:26 486 1

原创 okhttp原理详解

一、okhttp工作的大致流程当我们通过OkhttpClient创建一个Call,并发起同步或异步请求时;okhttp会通过Dispatcher对我们所有的RealCall(Call的具体实现类)进行统一管理,并通过execute()及enqueue()方法对同步或异步请求进行处理;execute()及enqueue()这两个方法会最终调用RealCall中的getResponseWithInterc

2023-02-25 11:57:04 239

原创 MeasureSpec 三种模式

1.EXACTLY:精确模式,对应我们在布局文件中设置宽高时给一个具体值或者match_parent;当前的尺寸就是当前View应该取的尺寸.对应关系:match_parent—>EXACTLY。match_parent就是要利用父View给我们提供的所有剩余空间,而父View剩余空间是确定的,也就是这个测量模式的整数里面存放的尺寸。固定尺寸(100dp)—>EXACTLY.用户自己制定了尺寸大小,我们就不用再去干涉了,当然是以指定的大小为主。父容器已经为子容器设置了尺寸,子容器应当服

2022-04-14 17:10:31 515

原创 windows编译ijkplayer

自己记录用1、参考链接:https://github.com/CarGuo/GSYVideoPlayer/blob/master/doc/BUILD_SO.md[https://blog.csdn.net/linchaolong/article/details/52802401](https://blog.csdn.net/linchaolong/article/details/52802401)(这个链接安装的vmware版本有问题,不要用这个)2、配置jdk环境 ,可以直接用apt命令3、.

2021-12-31 17:00:00 927

原创 Android tv端一种焦点居中办法

/** * 计算需要滑动的距离,使焦点在滑动中始终居中 * * @param recyclerView 父布局 * @param view 当前焦点view */ private int[] getScrollAmount(RecyclerView recyclerView, View view) { int[] out = new int[2]; final int halfParentWight.

2021-04-30 17:47:32 356 1

原创 Android TV获取当前焦点控件ID

new Thread(new Runnable() {@Overridepublic void run() {while (true) {try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}View rootview = MoviedetailActivity.this.getWindow().getDecorView();View aaa = rootview.findFocus(

2021-04-20 17:40:25 427

原创 inflate失效

三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别View view = LayoutInflater.from(context).inflate(R.layout.xxx, this,true);失效时,使用View view = LayoutInflater.from(context).inflate(R.layout.xxx, this,true);addView(view);...

2021-04-16 17:03:02 112

原创 2020-12-24

突然最近发现很多SDK的引入由原来的jar包形式更换成aar形式,比方说最新版本的友盟crash的包,支付宝最新支付包。然后我们项目采用模块化开发,就造成尝试以前的各种方法引入不进来。关键是以前也很少有lib用aar的形式.先说说我在项目导入aar包的方法,然后再说一个IT大飞说写的笔记上导入aar的方法。其实我感觉两个都是一样的,就是写法不同。现在忽略掉把aar包放入libs文件下的相关操作。接下来的步骤是:1 在工程下的build.gradle中,moduleName指的是你把aar放入那个mod

2020-12-24 14:08:30 81

原创 FlycoTabLayout使用

FlycoTabLayout选中和未选中状态下改变字体大小FlycoTabLayout 简单分析

2020-11-28 12:25:37 362

原创 分享几个yuv数据处理方法

几个yuv图片处理方法Camera预览时需要对yuv帧做水平翻转处理,直接在onPreviewFrame(byte[] data, Camera camera)里调用YUVToolspublic class YUVTools { /******************************* YUV420旋转算法 *******************************/ // I420或YV12顺时针旋转 public static void rotateP(byt

2020-07-30 14:27:34 727

原创 android 视频播放码率自适应学习资料

1、如何做好 Android 端音视频测试https://blog.csdn.net/jingchuanhu/article/details/796324392、Android IOS WebRTC 音视频开发总结(五六)-- 如何测试网络性能?https://www.cnblogs.com/lingyunhu/p/rtc56.html?utm_source=tuicool&utm_medium=referral3、音视频通信 > 常用功能 > 网络环境监控与弱网策略 >

2020-07-08 16:14:04 2368

原创 我的收藏夹

我的收藏夹1、A full-featured App (iOS & Android) development assistant. You deserve it. 简称 “DoKit” 。一款功能齐全的客户端( iOS 、Android、微信小程序 )研发助手,你值得拥有。https://www.dokit.cn/ https://github.com/didi/DoraemonKit2、Android酷炫实用的开源框架(UI框架)https://blog.csdn.n

2020-06-04 12:30:01 857

空空如也

空空如也

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

TA关注的人

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