Android专题
文章平均质量分 89
Android专题
红石榴花生油
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
安卓UI核心:Activity、Window与View的关系解析
Android UI系统的核心在于理解Activity、Window和View的协作关系。Activity作为"主人"负责业务逻辑,PhoneWindow(Window唯一实现类)作为"框架"提供窗口容器,View则是具体的UI元素。系统在Activity启动时自动创建PhoneWindow,开发者通过setContentView将布局添加到DecorView(PhoneWindow的根视图)中。View的绘制由ViewRootImpl触发而非PhoneWindow。原创 2025-09-10 23:23:51 · 882 阅读 · 0 评论 -
彻底掌握GLSurfaceView:从原理到实战
GLSurfaceView 是 Android 专为 OpenGL ES 渲染提供的视图组件,继承自 SurfaceView 并封装了 OpenGL ES 所需的渲染环境(如 EGL)和线程管理。核心特性包括:1)管理高效绘制的 Surface 内存缓冲区;2)自动初始化 EGL 环境连接 OpenGL 与屏幕;3)独立的渲染线程避免 UI 卡顿。开发时需通过 setRenderer() 实现 GLSurfaceView.Renderer 接口,在 onDrawFrame 中编写 OpenGL 绘制逻辑。百原创 2025-09-10 22:47:02 · 614 阅读 · 0 评论 -
Android图片内存计算
这道题考察Android屏幕适配和图片内存计算。关键点:1)屏幕密度比例(xxhdpi到xhdpi缩放比例为2/3,72×72图片实际显示48×48);2)ARGB8888格式每个像素占4字节。内存计算:48×48×4=9216字节,正确答案是C。原创 2025-09-11 10:50:57 · 421 阅读 · 0 评论 -
移动端hook框架全解析
摘要:本文介绍了四种移动端hook框架:1)Xposed-通过修改Android的Zygote进程实现hook,需Root权限,用于应用增强和系统定制;2)Substrate-支持Java和Native层hook,兼容性好,用于安全检测和性能分析;3)Cydia-作为插件平台,需越狱/Root,用于iOS/Android功能扩展;4)Frida-跨平台框架,通过注入JS引擎实现hook,无需Root,适用于安全测试和自动化。这些框架在安全测试、逆向分析等领域发挥重要作用。原创 2025-09-11 11:05:48 · 718 阅读 · 0 评论 -
Android View刷新:invalidate和postInvalidate详解
Android中invalidate()和postInvalidate()都是触发View重绘的方法,主要区别在于线程安全性:invalidate()只能在UI线程调用,直接触发重绘;postInvalidate()可在任意线程调用,通过Handler将重绘任务发送到UI线程执行。使用时,UI线程内直接调用invalidate(),子线程中优先使用postInvalidate(),也可通过Handler配合invalidate()实现。两者都会触发当前View及其父View的递归重绘,不存在"仅重原创 2025-09-11 11:09:39 · 446 阅读 · 0 评论 -
AsyncTask 全面解析:用法、原理与注意事项
Android异步任务处理工具AsyncTask的核心解析:封装线程池和Handler,实现"后台处理+UI更新"模式。其核心方法包括准备阶段onPreExecute()、后台执行doInBackground()、进度更新onProgressUpdate()和结果处理onPostExecute()。关键注意事项:必须在UI线程创建实例并调用execute(),否则会抛出异常;存在生命周期管理问题,需手动取消任务。虽然目前推荐使用Kotlin协程等新方案,但理解AsyncTask有助于掌握原创 2025-09-10 23:57:25 · 1213 阅读 · 0 评论 -
Android屏幕适配全解析:单位换算与最佳实践
在Android开发中,屏幕适配是核心问题之一,而是适配的基础。Android提供了多种屏幕单位,目的是让UI在不同尺寸、不同密度的设备上保持一致的视觉效果。下面从核心概念、单位详解、换算公式、实战场景四个维度彻底讲清楚。原创 2025-09-10 22:32:22 · 1024 阅读 · 0 评论 -
Android Intent核心方法解析
本文解析Android中构建显式Intent的三种核心方法:setComponent()、setClass()和setClassName()。它们均用于明确指定目标组件(如Activity/Service),但适用场景不同: setComponent():通过ComponentName直接指定组件,适合跨应用场景; setClass():简化写法,通过上下文和Class对象跳转应用内组件,最常见; setClassName():动态传入包名和类名字符串,支持跨应用或动态配置。 三者最终均转化为Com原创 2025-09-10 23:37:53 · 698 阅读 · 0 评论 -
Android Intent详解:显式与隐式对比
Intent可以理解为一个「消息载体」,用于在 Android 的四大组件(Activity、Service、BroadcastReceiver、ContentProvider)之间传递请求或数据。原创 2025-09-10 17:13:04 · 824 阅读 · 0 评论 -
深入解析Android onNewIntent()方法
摘要:Android的onNewIntent()方法用于处理Activity复用时的Intent更新,仅适用于singleTop、singleTask和singleInstance启动模式。该方法不属于标准生命周期,调用时需手动更新Intent并刷新UI。standard模式不会触发该方法,因其总是创建新实例。正确使用onNewIntent()对处理Activity复用场景至关重要。原创 2025-09-10 16:45:53 · 528 阅读 · 0 评论 -
EventBus核心原理与实战应用指南
本文全面解析EventBus在Android开发中的应用,重点包括:1. 核心设计基于观察者模式,通过"发布-订阅"机制实现组件解耦;2. 详细使用流程:定义事件类→注册订阅→处理事件→发布事件→注销;3. 典型应用场景:跨组件通信、线程间切换、替代复杂回调;4. 使用注意事项:不适合同步返回、高频事件和敏感数据传输场景。EventBus能有效简化组件通信,但需合理使用避免过度依赖。原创 2025-09-10 16:54:07 · 375 阅读 · 0 评论 -
Android进程优先级:从前台到后台的层级解析
前台进程是用户当前正在交互的进程,直接影响用户体验,系统会尽最大努力保持其运行。包含的组件场景用户正在交互的Activity(处于resumed状态)与前台Activity绑定的Service正在执行方法的BroadcastReceiver正在执行生命周期回调(如onCreate()onStart())的Service实例:正在使用的微信聊天界面所属的进程。前台进程直接保障用户当前操作,优先级最高可见进程维持用户可见的界面状态,优先级次之服务进程支持后台任务执行,优先级中等。原创 2025-09-10 16:38:40 · 726 阅读 · 0 评论 -
Android SharedPreferences知识点
摘要:Android的SharedPreferences是一种轻量级键值对存储方案,用于保存应用配置和用户偏好数据。其特点包括:以XML格式存储在应用私有目录(/data/data/<包名>/shared_prefs/),支持基本数据类型存储,具有线程安全性但不支持跨进程。使用时需注意:适合少量简单数据,敏感信息需加密,推荐使用apply()异步提交。该存储会随应用卸载自动清除,是移动端常见的本地持久化方案之一。(149字)原创 2025-09-10 16:09:15 · 497 阅读 · 0 评论 -
Android ViewModel的能力解析
本文通过一道多选题系统解析了Android ViewModel的核心能力。ViewModel主要用于存储管理UI数据,在配置变更时保持数据不丢失;支持感知宿主生命周期,实现资源清理;并能分离业务逻辑与UI逻辑,但不可用于Activity间通信。文章还拓展了ViewModel的创建方式、跨Fragment共享数据及结合SaveStateHandle实现数据持久化等用法,明确了ViewModel的数据托管和架构解耦价值,同时强调其作用范围仅限于单个宿主组件。原创 2025-09-10 16:04:08 · 700 阅读 · 0 评论 -
Android NDK开发实战:从入门到精通
《Android NDK完全指南》系统介绍了NDK开发的核心概念与实践流程。NDK作为连接Java/Kotlin与C/C++的桥梁,主要应用于性能优化(如音视频处理)、代码保护(防止反编译)和复用C/C++生态(如OpenCV)三大场景。文章通过"Java调用C实现加法"的完整示例,详细演示了从配置环境、生成JNI头文件到编译.so文件的开发全流程,并解析了数据类型映射、内存管理等关键技术点。NDK虽有一定门槛,但在音视频、游戏等高性能领域具有不可替代的价值。原创 2025-09-10 23:41:12 · 1512 阅读 · 0 评论 -
安卓开发-ANR 机制
本文深入解析安卓开发中的ANR(应用无响应)问题。ANR是系统对主线程阻塞的警告机制,当主线程处理用户交互或UI更新超时(Activity5秒、BroadcastReceiver10秒、Service20秒)就会触发。文章通过典型考题分析各类场景,指出子线程执行不会触发ANR,强调应将耗时操作(网络请求、IO读写等)移至子线程。同时给出实战避坑建议:避免主线程耗时操作、广播接收器轻量化处理、合理配置线程池、监控ANR日志等。掌握ANR机制有助于开发流畅稳定的应用,提升用户体验。原创 2025-09-04 12:56:38 · 897 阅读 · 0 评论
分享