读完需要8分钟速读仅需 3 分钟引言在Android领域,面试是展示个人技能和经验的重要场合。本文将围绕Android中的Flow相关技巧展开,深入分析高级疑难问题,帮助Android技术人员提升面试水平。Flow的核心概念问题: 请解释Flow是什么,与传统的RxJava相比有何优势?出发点:在回答这个问题时,应当强调对Flow的理解以及与RxJava的对 ......
257
0
0
2024-03-31
作者:Gityuan博客: libcore/ojluni/src/main/ Java /java/lang/Class.java art/ Runtime /native/java_lang_Class.cc art/runtime/hidden_api.h art/runtime/runtime.h 一、引言每一次Android大版本的 ......
178
0
0
2024-03-29
如果并发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁 线程 ,如此一来会大大降低系统的效率。这就是 线程池 的目的了。线程池为线程生命周期的开销和资源不足问题提供了解决方案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程池主要流程 用户通过submit提交一个任务,线程池会执行如下流程:判断当前运行的worker数 ......
169
0
0
2024-03-12
前言原始方式在我们的开发过程中,需要获取XML布局文件中的ViewId,以便其赋值显示,我们习惯使用findViewById进行操作,可这样会导致很多的模版代码出现。Butter Knife框架直到Android大神 Jake Wharton开源了Butter Knife框架,通过Bind方式绑定获取ViewId。基于Kotlin的扩展近几年Android对 ......
207
0
0
2024-03-08
前言因业务需要,过去一年从熟悉的Android开发开始涉及嵌入式Linux开发,编程语言也从Java/Kotlin变成难上手的C++,这里面其实有很多差异点,特此整理本文来详细对比这两者开发的异同,便于对嵌入式Linux开发感兴趣的同学一些参考。适用人群有一定Android开发经验想了解嵌入Linux开发的同学思维导图架构对比注:左边是Android的平台架 ......
191
0
0
2024-03-02
| 导语上文介绍了Android中提供的Ashmem(匿名内存)。Ashmem以驱动的形式运行在内核。应用层如果需要使用Ashmem,可以直接打开Ashmem驱动并和驱动进行交互,也可以使用Android为我们提供的基于Ashmem驱动的函数库(更推荐使用这个)。本文将介绍Android提供的Ashmem函数库以及共享内存的实现。1. Ashmem函数库函数 ......
202
0
0
2024-02-15
当涉及到Android应用程序中的网络请求处理时,OkHttp是一个非常强大和流行的工具。其中一个关键的功能是拦截器(Interceptors),它们允许您在请求和响应传输到服务器和应用程序之间执行各种操作。在本文中,我们将深入研究OkHttp拦截器,了解其工作原理以及如何使用它们来优化您的Android应用程序。什么是OkHttp拦截器OkHttp拦截器是 ......
209
0
0
2024-02-05
动态代理是一种在编程中非常有用的设计模式,它允许你在运行时创建一个代理对象来代替原始对象,以便在方法调用前后执行额外的逻辑。在Android开发中,动态代理可以用于各种用例,如性能监控、AOP(面向切面编程)和事件处理。本文将深入探讨Android动态代理的原理、用途和实际示例。什么是动态代理?动态代理是一种通过创建代理对象来代替原始对象的技术,以便在方法调 ......
184
0
0
2024-02-04
简介Android Glide是一款强大的图片加载库,提供了丰富的功能和灵活的使用方式。本文将深入分析Glide的工作原理,并介绍一些使用姿势,助你更好地运用这个优秀的库。原理分析Glide的原理复杂而高效。它首先基于给定的图片URL或资源ID进行加载,支持多种数据源,包括网络请求、本地文件和ContentProvider等。Glide通过缓存机制提高加载速 ......
226
0
0
2024-02-04
引言在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,文章写的尽量详细,希望对准备进入Android开发的朋友有帮助。 一、安装 JDK 官网: JAVA /javase/downloads/index ......
217
0
0
2024-01-13
目录 混淆编辑器介绍 功能说明 编译流程 二者区别 使用说明 规则文件说明 组件化混淆 1. 混淆编译器Android 代码混淆历史时期可以根据使用何种混淆编辑器分为以下两个时期: ProGuard:一个通用的 Java 字节码优化工具 R8:ProGuard 的继承者,专为 Android 设计,编译性能和编译产物更优秀 ......
185
0
0
2024-01-11
WMRouter是一款Android路由框架,基于组件化的设计思路,功能灵活,使用也比较简单。WMRouter最初用于解决美团外卖App在业务演进过程中的实际问题,之后逐步推广到了美团其他App,因此我们决定将其开源,希望更多技术同行一起开发,应用到更广泛的场景里去。GitHub项目地址与使用文档详见 。本文先简单介绍WMRouter的功能和适用场景,然后 ......
237
0
0
2024-01-07
1、概述 html 在android开发的过程当中,有时候会遇到这样的需求,须要显示很大的图片,而且还不容许压缩。好比显示:世界地图、 微博 长图等,那么如何完成这个需求呢? 首先咱们分析一下,图片很是大,考虑到内存的状况,咱们不能一次将整个图片加载到内存中,由于这样会OOM,而后图片的宽或者高超出了手机屏幕的尺寸,要想显示整张没有压缩过的图片,咱们只能每次 ......
275
0
0
2023-09-19
目录前言一、为什么需要自定义控件二、具体步骤1.首先我们创建一个 layout xml文件:2.为自定义控件创建java类:3.在res/values下,新建一个attrs.xml文件:4.最后使用:前言你好, 我是Cici。这几天在做一个小项目的时候,用到了自定义控件,为了方便在XML中进行配置,于是需要用到自定义属性,特此记下用法,方便复习的同时也希望对 ......
311
0
0
2023-09-16
目录一、如何绘制X和Y轴。1、我们来分析下,我们想知道三个坐标,那么这三个坐标是多少呢,我们该怎么计算呢? 答:这里,我是在onSizeChanged()方法中获取到了父类控件的宽度,然后把宽度分成16份,例如,下方的上下左右四个分别如下:2、这三个坐标我们有了,那就好办了,我们根据这四个参数值,就可以知道我们上面三个坐标点的坐标,在draw()方法中,连接 ......
279
0
0
2023-09-15