
Android面试题
文章平均质量分 88
时小雨
无人扶我青云志,我自踏雪至山巅。
若是命中无此运,亦可孤身登昆仑。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android性能优化:过度绘制分析与层级优化实战
null,// 问题1:每次绘制创建新对象// 问题2:绘制超出边界的内容= null,// 复用Paint对象// 复用Rect对象// 1. 获取可见绘制区域// 2. 裁剪绘制区域// 3. 只绘制可见内容层级扁平化:优先使用ConstraintLayout,减少嵌套背景精简:移除不必要的背景设置延迟加载:ViewStub按需加载复杂布局绘制优化:自定义View使用clipRect限制绘制区域资源复用:避免在onDraw中创建对象合理分层:策略性使用硬件层。原创 2025-06-27 06:45:07 · 912 阅读 · 0 评论 -
Protobuf序列化性能全面对比分析
特性Protobuf 表现主要竞争者对比序列化速度⚡非常快远超 JSON/XML ≈ 或微优于 Thrift/Avro < Flat/Cap’n反序列化速度⚡非常快远超 JSON/XML ≈ 或微优于 Thrift/Avro<<Flat/Cap’n (零拷贝优势)序列化后大小✅✅✅极其紧凑远超 JSON/XML ≈ Thrift/AvroFlat/Cap’n (通常更小)CPU 开销✅✅低(编解码)低文本格式 ≈ Thrift/Avro<<Flat/Cap’n (反序列化极低)内存开销(处理)✅✅。原创 2025-06-17 07:33:02 · 1059 阅读 · 0 评论 -
Android中Activity、Task与Process的关系
是三个紧密相关但概念不同的核心组件,它们共同协作管理应用的用户界面和生命周期。在 Android 开发中,简单来说:Activity。原创 2025-06-11 07:33:51 · 861 阅读 · 0 评论 -
App主界面点击与跳转启动方式区别
特性主界面点击图标启动从其他程序跳转启动 (通过 Intent)触发方式用户直接操作桌面图标用户在程序A中操作触发程序A代码调用启动上下文冷启动/温启动 (回到主界面)热启动/温启动/冷启动 (跳转到特定点)Intent 类型隐式 (MAIN + LAUNCHER)显式 或 带特定 Action/Data 的隐式Intent 数据通常无额外extras通常携带重要的extras数据目标界面主 Activity (主页/入口)任何公开的特定 Activity (深度页面/功能)任务栈行为。原创 2025-06-09 07:28:50 · 1126 阅读 · 0 评论 -
我用Intent传大图片时竟然崩了,怎么回事啊
而 Binder 的事务缓冲区(Transaction Buffer)有固定大小限制(通常为。(如简单应用内部跳转),可先压缩图片至合理尺寸。传递唯一标识符(如文件名或 UUID)。URI 既安全又无大小限制,需注意配置。传递的数据超过此限制时,系统会抛出。或字节数组,应用会直接崩溃并抛出。在 Android 开发中,通过。URI 传递,而非直接传递数据。将图片保存到文件系统中,通过。缩小尺寸,但需评估画质要求。,务必使用 URI 或缓存。)时,若直接传递大尺寸的。原创 2025-06-09 07:28:27 · 668 阅读 · 0 评论 -
单线程模型中消息机制解析
Android消息机制解析 Android的消息机制通过Message、Handler、MessageQueue和Looper四大核心组件协作实现线程通信。Message作为数据载体,Handler负责跨线程发送和处理消息,MessageQueue按优先级存储消息,Looper则循环取出消息并分发。 关键点: 主线程默认初始化Looper,子线程需手动调用Looper.prepare()和loop() Handler需绑定Looper,通过sendMessage()或post()发送任务 MessageQu原创 2025-06-08 15:18:50 · 747 阅读 · 0 评论 -
OkHttp 3.0源码解析:从设计理念到核心实现
OkHttp 3.0源码分析揭示了其作为高效HTTP客户端的核心设计。文章首先对比了OkHttp相比HttpURLConnection和Apache HttpClient的优势,包括连接池、拦截器机制和HTTP/2支持等特性。通过示例展示了同步/异步请求的基本用法,并重点剖析了其分层架构设计和拦截器机制。源码分析详细解读了OkHttpClient、Request、Call等核心组件,以及Dispatcher调度器和Interceptor责任链的实现原理。文章深入挖掘了OkHttp通过连接复用、智能调度和可扩原创 2025-06-07 10:31:37 · 1555 阅读 · 0 评论 -
Android LinearLayout、FrameLayout、RelativeLayout、ConstraintLayout大混战
本文深度剖析Android三大传统布局的性能问题与优化方案。FrameLayout通过层级叠加实现极简布局,但需注意叠加顺序;LinearLayout的权重机制可能导致30%以上的性能损耗,建议统一使用0dp+weight组合;RelativeLayout依赖关系复杂易形成测量循环。而ConstraintLayout仅需1次测量即可完成复杂布局,性能显著优于传统方案。文章通过具体代码示例和性能数据对比,为Android开发者提供了可直接落地的布局优化实践方案,有效解决60%以上的界面卡顿问题。原创 2025-06-07 10:28:59 · 1305 阅读 · 0 评论 -
应用启动性能优化与黑白屏处理方案
通过上述方案组合实施,可有效将冷启动时间控制在1秒内,同时消除黑白屏带来的不良视觉体验。⚠️ 注意:可能影响返回动画,需在Activity创建后恢复原主题。使用Play Feature Delivery实现按需加载。即会出现白屏/黑屏(取决于主题颜色)原创 2025-06-06 07:31:28 · 868 阅读 · 0 评论 -
Android处理大图防OOM
在 Android 中处理大图时,内存占用是关键问题。由于 Bitmap 的像素数据直接存储在内存中,一张高分辨率图片(如 4000x3000)可能占用约。通过上述策略,可显著降低内存占用,有效避免 OOM。实际开发中优先使用 Glide/Picasso 等成熟库,减少手动处理风险。(ARGB_8888 格式下,每个像素占 4 字节)。:自动处理图片缩放、内存/磁盘缓存、生命周期管理。:类似 Glide,提供简洁的 API 管理大图。中为 Activity 添加。原创 2025-06-06 07:30:54 · 709 阅读 · 0 评论 -
进程优先级与组件存活关系解析
这样的多任务系统中。系统通过动态调整进程优先级来决定哪些进程可以保留内存和 CPU 资源,而哪些可能被终止以释放资源。需结合系统机制,通过优化组件设计、合理管理资源、适配后台限制,确保关键功能稳定运行,同时避免资源浪费导致用户体验下降。组件(如 Activity、Service)的生命周期由其所在进程的优先级决定。若进程被终止,所有组件将被销毁。进程优先级与组件存活之间的关系在操作系统资源管理中至关重要,尤其是在像。值(基于进程优先级)决定终止顺序。值越高,越容易被终止。Android 使用。原创 2025-06-05 07:29:42 · 663 阅读 · 0 评论 -
详解图片内存占用的计算原理与代码验证(以500×500 PNG为例)
决定性因素:像素格式(ARGB/RGB)比文件格式(PNG/JPEG)更影响内存平台差异:iOS/Android默认配置不同,需显式指定格式测量原则:始终通过代码而非文件大小计算内存优化黄金法则:降分辨率 → 改格式 → 及时回收。原创 2025-06-05 07:28:55 · 703 阅读 · 0 评论 -
Android动画全面解析:属性动画与补间动画原理、实现与对比
本文详细对比了Android中的补间动画和属性动画两种技术。补间动画通过视图矩阵变换实现视觉效果但不改变实际属性,适用于简单场景;属性动画则通过动态修改对象属性值实现,支持任意对象和自定义动画,灵活性更高。文章从原理、代码实现、使用步骤和核心差异全面解析两种技术,帮助开发者根据需求选择合适方案。补间动画操作简单但功能有限,属性动画功能强大但稍复杂,掌握二者特点能有效提升应用动画效果。原创 2025-06-04 07:00:14 · 1038 阅读 · 0 评论 -
Android Activity启动模式面试题
在Android面试中,Activity启动模式是高频考点,需深入理解其机制与应用场景。以下是精讲内容,结构清晰,便于记忆与表达: 1. 四种启动模式的核心区别 standard(默认模式) 每次启动原创 2025-06-02 12:27:20 · 475 阅读 · 0 评论