自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android Activity之间跳转的原理

处理器(Handler)创建目标 Activity 实例,依次调用其。当前 Activity 在目标 Activity 启动前执行。Android Activity跳转的底层实现涉及 ‌。封装为标准化请求,并校验权限与目标合法性。,待目标 Activity 完成。回调目标应用进程,触发。

2025-05-14 15:05:46 555

原创 Android 一些Ext扩展

【代码】Android 一些Ext扩展。

2025-05-13 10:12:54 99

原创 一些被遗忘的原生组件

1、TabLayout2、RadioGroup

2025-05-12 15:49:48 271

原创 装杯向编程

【代码】装杯向编程。

2025-05-09 16:21:49 99

原创 个人项目总结

通过背压抽帧策略减轻引擎数据处理压力,提升识别的实时性,同时通过享元模式避免重复创建同样大小的数组和Bitmap优化内存抖动。在批改引擎存在性能瓶颈的情况下,使用Grpc流式分步返回方式,并行执行子引擎,客户端执行分步渲染,实现快速批改效果。通过安卓多进程及进程保活优化Unity游戏启动速度,通过本地计算拼图块变化避免Unity频繁渲染优化应用性能。通过集成物体检测引擎,截取作文纸内容进行OCR识别,支持多OCR任务并行,提升识别效率。批改场景通过自定义动画实现模拟老师真实批改标注效果。

2025-05-09 13:48:16 208

原创 Android OKHttp原理简单说明

BridgeInterceptor‌:添加通用请求头(如Content-Type、Cookie),处理响应头(如Gzip解压)。网络拦截器‌:在ConnectInterceptor之后执行,可获取网络层数据(如重定向后的请求)。同步请求调用execute(),异步请求调用enqueue(),最终通过拦截器链处理请求和响应。管理异步请求的线程池和请求队列,控制最大并发请求数(默认64),防止资源竞争。应用拦截器‌:最早执行,可修改原始请求(如添加全局Header)。

2025-05-06 16:32:07 564

原创 Android LiveData关键代码

3、在Lifecycle生命周期结束时移除对应观察者。1、observer方法。

2025-04-27 11:11:21 212

原创 Android ViewModel原理简要

6、如果是配置引起的重新创建,会保留ViewModelStore中的ViewModel,然后执行onRetainNonConfigurationInstance,重新从NonConfigurationInstance中获取ViewModelStore。5、ComponentActivity持有Lifecycle,当触发Destroy时判断是否是ConfigChange,如果不是,则清除ViewModelStore中的ViewModel,如果是配置引起的Destroy,不清除ViewModel。

2025-04-27 10:30:06 258

原创 Android 防抖点击

Kotlin View扩展类 除了防抖还有一些其他的功能。

2025-04-25 16:13:55 90

原创 IJKPlayer的优化项

ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", 1024*16); // 默认值较大,调整为16KBijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "packet-buffering", 0); // 禁用网络缓冲:ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER,

2025-04-24 10:56:14 155

原创 Android ExoPlayer使用优化

【代码】Android ExoPlayer使用优化。

2025-04-22 10:46:43 223

原创 Android 动画实现打字机效果

【代码】Android 动画实现打字机效果。

2025-04-15 17:16:44 86

原创 Android 视频播放全屏及退出全屏实现

核心代码如下,部分代码可自行推测。

2025-04-15 15:45:04 88

原创 Android Kotlin泛型工具类

【代码】Android Kotlin泛型工具类。

2025-04-01 09:40:07 111

原创 Android PCM转AAC工具

【代码】Android PCM转AAC工具。

2025-03-31 15:32:40 305

原创 Android 文字带拼音

项目使用,自定义ReplaceSpan,使用富文本方式,定义好协议,显示中文汉字上带拼音功能。

2025-03-31 15:04:20 354

原创 Android 文字带拼音

这个自定义View可以实现文字带拼音,根据当前VIew长度自动换行,实现一句带拼音文本的多行显示,如果是诗词或者其他多段落场景,可以结合RecyclerView,此View作为一个Item显示一句文本。

2025-03-28 20:50:35 172

原创 Android RecyclerView滚动到置顶的Item并置顶

方法二:有滚动过程的动画,并且可以控制滚动快慢。方法一:不显示滚动过程动画。

2025-03-25 16:31:59 146

原创 Android Pcm播放器

用于播放分段的pcm流,适用于长连接形式多次分段返回pcm流,边返回边播放场景。播放器音频焦点处理器。

2025-03-22 21:30:19 254

原创 Android进阶之RecyclerView原理

四、一些优化点本文默认你已掌握RecyclerView的基本使用,结合主流文章及自己的理解讲解下RecyclerView原理及它的一些优化点,非纯搬运。

2025-03-06 15:52:17 803

原创 Android研发小技巧(一)

工作中在使用Kotlin和日常工作总结了一些小技巧点,不定期更新,这里记录下。11、Fragment获取AcitivityViewModel。5、RecyclerView适配器的简单写法。1、根据上下文获取Lifecycle对象。6、自定义View的简单写法。14、进一步查看错误信息。7、修改项目的git地址。9、AndroidX升级。10、强制使用依赖库。

2025-03-04 14:28:23 195

原创 Android由简到深之Handler

,如果没有消息处理的时候,next()方法就会阻塞在这里,而阻塞却没有导致当前线程ANR的原因,是因为native的nativePoolOnce方法时候,调用了linux低层,使当前线程腾出CPU的使用权,处于休眠等待状态,直到休眠时间结束或消息入队被唤醒。首先我们要知道,在我们持有一个handler的时候,我们的post,postDelay,发送的事件,Handler是不会立刻响应的,它们会在一个队列里,Handler会不断取出我们发送的事件,一个个处理,那么我们再来看,这个流程涉及到了哪些类。

2025-03-04 14:11:03 806

原创 Android 弹窗弹出时隐藏底部导航栏

原理为弹窗设置不可获取焦点,在弹窗弹出后去除不可获取焦点标签,使弹出可以点击额外区域取消,且不会发生点击穿透,然后兼容部分机型,在弹出后调用hideNavigationBar隐藏状态栏。使用方法是在Dialog或者FragmentDialog的onCreate方法中直接调用initHideNavigationBarConfig()即可。我们在设备使用虚拟键导航时,弹窗弹出会调起底部导航栏导致抖动一下,原因是因为Dialog获取到了焦点导致导航栏被唤起。基于Kotlin的扩展方法,这里写一个工具类。

2024-03-19 16:09:06 1023

原创 Android常见面试问题及其答案

思考:我们上面已经知道String是指向常量池的,它的值是不可变的,变更时其实是使用了StringBuilder进行拼接,再将拼接后的值在常量池中的地址指向给String,StringBuilder和StringBuffer的区别是前者线程不安全,效率高,后者线程安全。思考:String不可变的代码层原因是它的本质是一个设置为final的byte数组,内容不可变更,设计上是基于稳定考虑,毕竟不可变的对象是原子性的,线程安全的,避免了变化引起的问题。String b = "he"+"llo" (常量池)

2023-10-30 17:14:59 189

原创 安卓 synchronized(this)和synchronized(object)区别

synchronized(object)在多线程调用当前对象时,只阻塞同一个object对象的方法,而不是阻塞所有的synchronized方法,使用起来更加灵活。synchronized(this)在多线程调用this这个对象时,锁粒度比较大,它会将所有synchronized方法都阻塞。简单的线程锁一般有两种写法,它们本质上的区别是。

2023-07-31 17:39:04 214

原创 Git指令的基本使用

Git基本指令使用

2023-02-15 16:42:13 135

原创 Android 抽屉组件DrawerLayout的简单使用

对于点击屏幕上按钮,从屏幕外上下左右划出一个菜单的场景,Android原生的DrawerLayout简单实用,这里记录一下<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/home_drawer_lay

2022-05-20 14:22:43 2415

原创 Android 23种设计模式:(零)面向对象的六大原则

设计模式是安卓最重要的进阶知识之一,好的代码结构必定由各种设计模式组成,而学习设计模式之前,我们要了解面向对象的六大原则六大原则是设计模式的基础理念,这里只需要理解记忆,学习完所有的设计模式后,再回来看六大原则,应该能有很大的收获1、单一职责原则单一原则很简单,就是将一组相关性很高的函数、数据封装到一个类中,每个方法的职责单一这个原则是最简单,也是最难的一点,因为方法职责单一的界定,一般需要开发者自己的经验来判断举例说明class A{ // 执行第一步 pri..

2021-10-29 17:01:21 1127

原创 Android Studio无法手动设置NDK路径问题

点击File->Project Structure后,打开的这个界面无法配置NDK localtion解决方式是直接在local.properties中配置ndk路径

2021-10-29 10:50:42 4606 3

原创 Android WebSocket原理及实战(二)

上期原理篇我们讲到了WebSocket和HTTP的区别及其优缺点,这期主要是实战部分,大多数Android项目不需要使用第三方重量级的WebSocket框架,所以我以OKHttp3.0自带的WebSocket为例,来进行讲解添加依赖implementation "com.squareup.okhttp3:okhttp:4.9.0"实现步骤 构建OkHttpClient配置初始化一些参数。 使用WebSocket的Url地址连接。 设置WebSocket的连接状态回..

2021-10-28 18:26:42 3622 4

原创 Android WebSocket原理及实战(一)

近来封装了一个基于WebSocket服务的库,过程中对WebSocket进行了总结,分几个章节进行讲解,看完后,应该能够对以下内容有个简单的了解1、WebSocket原理2、WebSocket与Http的区别3、为什么要使用WebSocket4、Android端WebSocket实战下面开始WebSocket伴随HTML5协议横空出世,这里的HTML5指的是一系列新规范,新技术,那么在HTML5之前,为什么没有WebSocket,而现在WebSocket的加入,又是为了解决什么问题呢

2021-10-28 16:32:32 4023

原创 解决OpenCv 图像倾斜90度或者倒立的问题

最近在做人脸识别,刚刚把OpenCvSDK环境配置好,就发现预览时的图像惨不忍睹,前置斜着,后置也有问题,所以做了些修改,解决了前置和后置各自的角度问题直接搜索CameraBridgeViewBase这个类,替换成下面的代码 public abstract class CameraBridgeViewBase extends SurfaceView implements Surfac...

2018-08-31 11:16:46 2017 1

原创 Android Tv 焦点移动特效项目学习经验1

1. android:clipChildren的意思:是否限制子View在其范围内参考文章 http://blog.youkuaiyun.com/flymoon1201/article/details/446464732. android:clipToPadding 设置绘制区域是否不包括padding,常用于解决ImageView设置padding属性无效等问题参考文章 http://blog.

2017-10-09 16:56:01 316

空空如也

空空如也

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

TA关注的人

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