移动开发

Android-推荐一个操作状态栏开源库(StatusBar)

图片来源网络,入侵必删 很多时候,我们开发中都是要适配Android状态栏的。这篇博客分享一个操作状态栏的开源库——StatusBar,目前我开发的新项目使用这个库实现沉浸式状态栏的,希望能提高小伙伴们的开发效率。 StatusBar StatusBar主要用来操作状态栏的,主要特性如下: 透明状态栏,我个人认为可以叫做沉浸式状态栏; 状态栏背景颜色; 状态栏文字颜色(亮|暗色模式)

这10张图拿去,别再说学不会RecyclerView的缓存复用机制了!

ViewPager2是在RecyclerView的基础上构建而成的,意味着其可以复用RecyclerView对象的绝大部分特性,比如缓存复用机制等。 作为ViewPager2系列的第一篇,本篇的主要目的是快速普及必要的前置知识,而内容的核心,正是前面所提到的RecyclerView的缓存复用机制。 RecyclerView,顾名思义,它会回收其列表项视图以供重用。 具体而言,当一个列表项被移出屏

聊聊libffi的调用流程

背景 花了点时间分析了下libffi的调用流程,做个总结。 什么是libffi libffi是ffi的主流实现方式,其主要是用C和汇编来实现的。 原理和用法市面上已经很多,下面这两篇是我觉得讲得较为通俗易懂的,这里就不做过多的解释了。 外部函数接口 FFI —— 虚拟机中重要但不起眼的组件 使用 libffi 实现 AOP libffi的调用流程 PS:最近换了M1,所以以下的代码都是ARM64架

JS高级—call(),apply(),bind()

call() 介绍 通过提供一个新的this值给当前调用的函数/方法,从而改变this指向。 语法 fn.call(this.Arg, arg1, arg2,...) thisArg:当前调用函数this指向的对象 arg1, arg2:传递的其他参数(直接传给形参可不写) 特点 可以直接调用函数—fn.call() 可以改变被调用函数的this指向为指定的— fn.call(this.

如何定位Linux应用程序崩溃?

背景 最近项目中用到了一个库,在程序崩溃时可以生成exception文件,记录程序崩溃时的调用信息,对于定位问题比较有价值,因此整理下这个库涉及到的知识点。相关测试代码已经放到github可以下载调试。 基础知识 maps maps用来描述进程的虚拟地址空间是如何使用的。总共包括六列,每列及其含义如下: 名字 含义 address 本段在虚拟内存中的地址范围。 perms 本段的

DDD碎片记录 03. 贫血模型与充血模型

将业务领域模型转换为程序设计 一般有2种设计思路:贫血模型,充血模型 所谓贫血模型,就是在软件设计中有很多POJO对象,他们除了get/set方法,基本没有任何业务逻辑。 vip会员的贫血模型的设计图 如vip会员的贫血模型的设计图所示,在领域模型中,有vip会员的领域对象,该对象除了有一堆属性之外,还有会员打折,会员福利,会员特权等方法。 如果将该领域模型按照贫血模型设计,就会设计

Mac OS14外接显示器字体过小和放大字体模糊问题的简单解决

文章目录 问题简述 解决方法 问题简述使用Mac mini外接2K 显示器时,默认分辨率是25601440,字体较小,如果切换成19201080,字体又变大模糊。 解决方法使用HiDP I(一种显示技术,使用多个物理像素显示1个像素区域,让显示效果更清晰、边缘更平滑)。

【Android开发】Android Studio汉化

前言该插件是官方支持插件,未对任何软件进行修改和破解Android Studio 是基于 IntelliJ IDEA 社区版开发的集成开发环境(IDE),专门用于Android应用程序的开发。以下是为什么 Android Studio 能使用 IntelliJ IDEA 插件的原因: 相同的基础框架:Android Studio 是建立在 IntelliJ IDEA 社区版之上的,它们共享相同

蓝牙 HFP 协议详解及 Android 实现

文章目录 前言 一、什么是蓝牙 HFP 协议? HFP 的核心功能HFP 的核心功能 HFP 在 Android 中的典型应用场景 二、HFP 协议的工作流程 HFP 的连接流程 三、HFP 在 Android 的实现 1. 检查蓝牙适配器状态 2. 发现并检测支持 H