读完需要8分钟速读仅需 3 分钟引言在Android领域,面试是展示个人技能和经验的重要场合。本文将围绕Android中的Flow相关技巧展开,深入分析高级疑难问题,帮助Android技术人员提升面试水平。Flow的核心概念问题: 请解释Flow是什么,与传统的RxJava相比有何优势?出发点:在回答这个问题时,应当强调对Flow的理解以及与RxJava的对 ......
168
0
0
2024-03-31
运行环境DevEco Studio:4.0ReleaseOpenHarmony SDK API10开发板:润和DAYU200设备类型分为default(默认设备)、tablet、tv、wearable、2in1等,有多种查询设备类型的方式目前有两种方法,一种是命令行的方式。方式一、命令行的方式通过命令行的方式查询设备类型。通过命令行查询指定系统参数(cons ......
138
0
0
2024-03-18
在iOS应用中使用实时活动与灵动岛iOS16系统引入了实时活动与灵动岛相关的API。实时活动API能够让用户在桌面直接浏览到应用程序所提供的实时性较高的信息,例如比赛的比分信息,外卖的配送进度信息,票务信息等。在支持灵动岛的设备上,实时活动配合灵动岛,更是能带给用户沉浸式的信息获取体验,在某些特定应用场景下非常有用。1 - 引言从iOS16开始,实时活动能够 ......
131
0
0
2024-03-17
经过坚果派内部的测试,最后发现,其实这个问题还是有解决的办法的。不信,你继续往后读。一、创建项目image-20240102142924183i二、Want学习Want的定义与用途Want是一种对象,用于在应用组件之间传递信息。其中,一种常见的使用场景是作为startAbility()方法的参数。例如,当UIAbilityA需要启动UIAbilityB并向U ......
81
0
0
2024-03-17
如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁 线程 ,如此一来会大大降低系统的效率。这就是 线程池 的目的了。线程池为线程生命周期的开销和资源不足问题提供了解决方案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程池主要流程 用户通过submit提交一个任务,线程池会执行如下流程:判断当前运行的worker数 ......
78
0
0
2024-03-12
前言原始方式在我们的开发过程中,需要获取XML布局文件中的ViewId,以便其赋值显示,我们习惯使用findViewById进行操作,可这样会导致很多的模版代码出现。Butter Knife框架直到Android大神 Jake Wharton开源了Butter Knife框架,通过Bind方式绑定获取ViewId。基于Kotlin的扩展近几年Android对 ......
85
0
0
2024-03-08
一文学会iOS蓝牙开发背景最近做APP对接蓝牙设备开发,这里分享一下iOS对接蓝牙设备中需要注意的东西,大致包含下面这些方面:Xcode蓝牙权限如何扫描蓝牙设备、获取Mac地址不同蓝牙设备切换写入蓝牙命令data转16进制字符串16进制转Stringcrc算法数据异或计算,字符串异或负数异或计算依次写入多个命令蓝牙开发的大致流程首先来了解一下蓝牙开发的流程, ......
200
0
0
2024-03-03
前言因业务需要,过去一年从熟悉的Android开发开始涉及嵌入式Linux开发,编程语言也从Java/Kotlin变成难上手的C++,这里面其实有很多差异点,特此整理本文来详细对比这两者开发的异同,便于对嵌入式Linux开发感兴趣的同学一些参考。适用人群有一定Android开发经验想了解嵌入Linux开发的同学思维导图架构对比注:左边是Android的平台架 ......
104
0
0
2024-03-02
| 导语上文介绍了Android中提供的Ashmem(匿名内存)。Ashmem以驱动的形式运行在内核。应用层如果需要使用Ashmem,可以直接打开Ashmem驱动并和驱动进行交互,也可以使用Android为我们提供的基于Ashmem驱动的函数库(更推荐使用这个)。本文将介绍Android提供的Ashmem函数库以及共享内存的实现。1. Ashmem函数库函数 ......
119
0
0
2024-02-15
当涉及到Android应用程序中的网络请求处理时,OkHttp是一个非常强大和流行的工具。其中一个关键的功能是拦截器(Interceptors),它们允许您在请求和响应传输到服务器和应用程序之间执行各种操作。在本文中,我们将深入研究OkHttp拦截器,了解其工作原理以及如何使用它们来优化您的Android应用程序。什么是OkHttp拦截器OkHttp拦截器是 ......
128
0
0
2024-02-05
动态代理是一种在编程中非常有用的设计模式,它允许你在运行时创建一个代理对象来代替原始对象,以便在方法调用前后执行额外的逻辑。在Android开发中,动态代理可以用于各种用例,如性能监控、AOP(面向切面编程)和事件处理。本文将深入探讨Android动态代理的原理、用途和实际示例。什么是动态代理?动态代理是一种通过创建代理对象来代替原始对象的技术,以便在方法调 ......
103
0
0
2024-02-04
简介Android Glide是一款强大的图片加载库,提供了丰富的功能和灵活的使用方式。本文将深入分析Glide的工作原理,并介绍一些使用姿势,助你更好地运用这个优秀的库。原理分析Glide的原理复杂而高效。它首先基于给定的图片URL或资源ID进行加载,支持多种数据源,包括网络请求、本地文件和ContentProvider等。Glide通过缓存机制提高加载速 ......
109
0
0
2024-02-04
前言最近为一个公众号h5商城接入了微信支付功能,查找资料过程中踩了很多坑,以此文章记录一下和大家分享前期准备公众号认证微信支付功能需要开通企业号并进行资质认证,费用一年300,且需企业营业执照等信息,对公账户打款验证登录微信公众平台https://mp.weixin.qq.com/,创建服务号如果已有服务号扫码登录后点击公众号头像选择认证详情菜单商户开通点击 ......
139
0
0
2024-02-03
作者简介Leo,携程高级移动开发工程师,关注跨端技术,致力于高效、高性能开发。Jarmon,携程高级移动开发工程师,专注 Flutter、iOS 开发。一、背景随着各种多端技术的蓬勃发展,项目主体从纯 Native 项目,到 Native+RN,到现在的 Native+RN+Flutter。基于我们的业务都在 Flutter 技术栈上面,这要求我们需要嵌套展 ......
140
0
0
2024-01-16
Flutter会在屏幕上绘制Widget。如果一个Widget的内容需要更新,那就只能重绘了。尽管如此,Flutter同样会重新绘制一些Widget,而这些Widget的内容仍有部分未被改变。这可能会影响应用程序的执行性能,有时影响会非常巨大。如果您正在寻找一种方法,来防止不必要的部分重绘,您可以考虑利用RepaintBoundary。在这篇博客理,我们将探 ......
119
0
0
2024-01-14