移动开发

Android-接入腾讯X5内核的WebView

图片来源网络,入侵必删 在维护一些原生+H5的Android项目的时候,我们会发现项目是接入了X5内核的WebView来提高H5的用户体验感。这篇博客我知道的X5内核WebView相关的知识,希望对看文章的小伙伴有所帮助。 X5内核的WebView 项目集成 项目的build.gradle中加入: repositories { google() // 增加这行

React18新特性介绍&&升级指南

react历次版本迭代主要想解决的是两类导致网页卡顿的问题,分别是cpu密集型任务和io密集型任务导致的卡顿问题,react18提出的并发特性(Concurrent Rendering)就是为了解决上述问题。 Concurrent Rendering 什么是concurrent 简单体验一下 concurrent不算是个新鲜概念,react很早之前就开始为其铺路,早在v16/v17就引入了fib

【Android R】车载 Android 核心服务 - CarPropertyService

座舱配图 - 上汽飞凡R7 前言 对比开发车载Android和手机Android应用,最大的区别应该就是许多车载应用需要考虑汽车整体的运行状态,例如,控制车载空调或车速达到一定的阈值时,出于安全的考虑多媒体应用要主动保持静音;汽车处于行驶状态下,OTA应用要保持静默等等。APP如何从Framework层获取车辆状态的数据,而Framework层又是从哪里获取到数据,它们的运行机制是怎样

由系统组成的系统

书名:代码本色:用编程模拟自然系统 作者:Daniel Shiffman 译者:周晗彬 ISBN:978-7-115-36947-5 目录 4.5 由系统组成的系统 1、由系统组成的系统 我们已经知道如何实现粒子对象, 也学会了如何实现粒子对象组成的系统,这个系统称为“粒子系统”,粒子系统就是由一系列独立对象组成的集合。 但粒子系统本身不也是一个对象? 如果粒子系统也是个对象,我们可以让这些

ijkplayer 源码解析1(重要结构体介绍)

ijkplayer作为b站开源的播放器,在业界享誉盛名,深受开发者喜爱,因为底层采用ffmpeg解码,支持主流的流媒体协议,再软件兼容度上非常高;今天我们就针对ijkplayer做一些源码分析,帮助那些喜爱ijkplayer但是苦于2w多行代码无从下手的同学们 系列文章讲解将按照以下顺序进行分析,以方便读者理解; 1.重要结构体分析 2.读数据线程解析 3.音频包解析和音频播放解析 4.视频包解析

Android-EventBus库的使用

图片来源网络,入侵必删 在维护一些项目的时候,我们可能会遇到使用EventBus做Android事件总线优化。这篇博客分享一下EventBus的知识,希望对看文章的小伙伴有所帮助。 EventBus的引入 implementation("org.greenrobot:eventbus:3.3.1") 我发文的时候,最新的版本是3.3.1。如果看文章过来很久了,你可以去EventB

Flutter PopupMenuButton 详解

1. 引言        在 Flutter 中,PopupMenuButton 是一个用于创建弹出菜单的组件,适用于提供上下文操作、设置选项等功能。用户点击按钮后,会弹出一个菜单列表,供用户选择。本文将介绍 PopupMenuButton 的基本用法、主要属性及自定义样式。2. PopupMenuButton 的基本用法    PopupM

Kotlin 监听键盘显示隐藏

最近碰上了需要监听键盘显示和隐藏,在Kotlin场景下封装了一个扩展方法,方便日后使用。 Android系统本身并没有提供有效的方法可以监听键盘的显示和隐藏,常用的监听方法莫过于屏幕的可见区域高度,当高度变化超过一定值,一般认为是超过200像素,就说明有键盘的显示和隐藏操作。 fun Activity.observeKeyboardChange(onChange: (isShowing: Bool

设计模式之装饰器模式

也称装饰者模式、装饰器模式、Wrapper、Decorator。 装饰模式是一种结构型设计模式, 允许你通过将对象放入包含行为的特殊封装对象中来为原对象绑定新的行为。 解决方案 当你需要更改一个对象的行为时, 第一个跳入脑海的想法就是扩展它所属的类。 但是, 你不能忽视继承可能引发的几个严重问题。 继承是静态的。 你无法在运行时更改已有对象的行为, 只能使用由不同子类创建的对象来替代当前的整个对

Touch:iOS判断当前点击的位置是否在某个视图上

iOS判断当前点击的位置是否在某个视图上 记录几种判断触摸点是否在某个view上面的方法 第一种方式:isDescendantOfView: 通过touch.view调用 isDescendantOfView:方法,返回 YES, 则触摸点在我们需要判断的视图上;反之则不在。 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEv