- 博客(535)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 【Android FrameWork】延伸阅读:为什么Android不使用C++新特性的智能指针
Android选择自研RefBase智能指针而非采用C++11标准,主要基于三大原因:历史时间线错位、系统级定制需求和兼容性考量。Android核心架构设计早于C++11标准发布,早期只能自研解决方案。RefBase深度集成Binder跨进程通信机制,支持对象死亡通知等Android特有功能,且针对嵌入式设备进行了轻量级优化。此外,重构数十亿行核心代码和第三方硬件库的成本过高,使得Android保持RefBase体系,仅在新模块中有限采用C++11智能指针。这种折中方案平衡了系统稳定性和开发便利性。
2025-11-24 18:35:04
139
原创 【Android FrameWork】第十三天:属于Andorid的C++智能指针
摘要:Android原生开发中,C/C++缺乏垃圾回收机制,手动内存管理易引发内存泄漏等问题。为此,Android提供了基于引用计数的智能指针体系:核心基类RefBase与封装类sp(强指针)、wp(弱指针)。RefBase维护强/弱引用计数,决定对象生命周期;sp通过自动增减强引用计数管理对象存活;wp仅增加弱引用计数,需通过lock()获取强指针访问对象。这套机制广泛应用于Framework和NDK开发,有效解决了内存泄漏、野指针和循环引用问题。
2025-11-24 18:09:38
3
原创 【Android FrameWork】第十二天:systemservice的看门狗
Android系统的Watchdog机制是保障系统稳定性的核心组件,它作为SystemServer进程中的监控线程,负责检测关键系统服务(如AMS、PMS)的运行状态。Watchdog通过周期性检测(约20秒一次)实现三大功能:监控服务响应性(5秒超时判断)、检测线程死锁、故障后收集日志并尝试恢复。当检测到故障时,Watchdog会先收集线程堆栈等日志,然后根据服务重要性选择重启单个服务或整个SystemServer进程。这种机制有效防止了系统级死锁和无响应问题,是Android稳定运行的"守护者
2025-11-21 08:45:00
141
原创 【Android FrameWork】延伸阅读:WMS调度Actvity过程
摘要:本文详细解析Android系统中Activity从启动到前台显示的完整流程,聚焦Window Manager Service(WMS)的核心作用。流程分为6个阶段:1)AMS发起调度;2)应用创建窗口并请求WMS添加;3)WMS验证窗口合法性;4)分配Surface绘图画布;5)计算布局与层级;6)SurfaceFlinger合成渲染。WMS作为"总调度",负责窗口合法性验证、资源分配、层级管理和焦点控制,通过与AMS、应用进程和SurfaceFlinger的协作,确保Activi
2025-11-21 08:30:00
131
原创 【Android FrameWork】第十一天:WindowManagerService
Android WMS(窗口管理服务)是系统的核心组件,负责管理所有窗口的创建、布局、显示和交互。作为用户界面的"调度中心",WMS协调应用与系统窗口资源,控制窗口的位置、大小和层级,并确保输入事件正确分发。其核心功能包括窗口生命周期管理、层级排序、布局计算、可见性控制,以及与AMS、SurfaceFlinger等系统服务的协作。WMS通过严格的权限管控确保系统安全,并随着Android版本迭代不断进化,支持多窗口模式、折叠屏适配等新特性。理解WMS有助于开发者优化UI体验,并为用户提供
2025-11-20 22:02:31
60
原创 【Android FrameWork】延伸阅读:PMS模块的PackageInstaller
Android应用安装流程中,PackageInstaller和Installd扮演不同角色:前者作为应用层组件负责用户交互和请求传递,后者作为系统服务进程执行底层文件操作。PackageInstaller通过UI界面展示APK信息和权限,经用户确认后调用PMS完成安装;Installd则在PMS调度下执行APK复制、数据目录创建等操作。二者通过PMS协同工作,共同完成应用从请求到安装的全流程,形成完整闭环。
2025-11-20 08:30:00
841
原创 【Android FrameWork】延伸阅读:AssetManager
AssetManager 功能与使用解析 AssetManager 是 Android 中管理 APK 内 assets 目录的核心工具类,主要负责处理未编译的原始文件访问。它与处理 res 目录编译资源的 Resources 不同:AssetManager 通过相对路径访问 assets 下的任意格式文件,支持多级目录结构;而 Resources 通过资源 ID 访问预定义类型的编译后资源。 AssetManager 的核心功能包括: 加载 APK 中的 assets 目录(通过 addAssetPath
2025-11-19 22:25:03
675
原创 【Android FrameWork】延伸阅读:PMS模块的PackageParser
摘要: PackageParser是Android系统内置的Java工具类,负责将APK二进制信息转换为结构化数据,为PackageManagerService(PMS)提供关键支持。其核心功能包括:解析AndroidManifest.xml(提取包名、组件、权限等配置信息)、解析APK资源与资产(建立资源映射、创建Resources对象)、校验Dex文件元信息。PackageParser完全由PMS调用,主要作用于APK安装、系统启动、动态加载及应用更新场景,是Android应用管理的基础模块,确保组件注
2025-11-19 08:30:00
1937
原创 【Android FrameWork】第十天:PackageManagerService
PMS解析APK流程解析 PackageManagerService(PMS)是Android系统管理应用安装、卸载和解析的核心服务。其解析APK过程主要分为三个关键阶段: 触发阶段: 系统启动时全量扫描系统及应用目录 应用安装时执行单文件解析 存储挂载或应用更新时补充解析 解析过程: 先校验APK路径有效性和文件完整性 通过PackageParser解析AndroidManifest.xml,提取组件配置和权限信息 利用AssetManager解析资源文件 使用SignatureUtils验证签名合法性
2025-11-18 10:57:40
843
原创 【Android FrameWork】第九天:ActivityManagerService服务
摘要: 本文详细分析了ActivityManagerService(AMS)在Android系统中的启动流程。AMS的启动依赖于系统底层初始化链,包括init进程解析配置脚本启动Zygote进程,Zygote预加载资源后创建SystemServer进程作为AMS宿主。在SystemServer中,AMS作为引导服务优先启动,依次完成实例化核心数据结构、绑定依赖服务和初始化Binder通信。最后AMS注册到ServiceManager,成为全局可用的系统服务。整个过程展现了AMS从系统初始化到功能就绪的完整生
2025-11-18 08:15:00
858
原创 【Android FrameWork】延伸阅读:ActivityManagerService启动Activity
AMS调度Activity启动的跨进程协作机制 本文系统分析了Android系统中Activity启动的核心流程,揭示了AMS(ActivityManagerService)与其他系统组件协同工作的机制。关键环节包括: 进程间通信:通过Binder实现应用进程与AMS的跨进程交互 AMS调度阶段:完成组件校验、任务栈管理和进程状态判断 进程创建:AMS请求Zygote创建新进程(冷启动场景) 组件实例化:AMS通过ApplicationThread触发目标进程创建Activity 整个流程展现了Androi
2025-11-17 21:11:45
796
原创 【自动驾驶学习笔记】自动驾驶的开源项目
开源自动驾驶辅助系统正加速汽车智能化进程。百度Apollo作为工业化全栈平台,提供L2-L4级解决方案,感知模块精度超99%;Autoware以模块化架构成为学术研究首选;OpenPilot采用端到端学习实现低成本消费级应用;CARLA模拟器则通过场景生成技术大幅提升测试效率。选型建议:量产选Apollo,科研选Autoware,入门用CARLA+OpenADAS。未来趋势将向ROS2架构迁移,并加强多传感器融合能力。开源生态持续降低技术门槛,推动自动驾驶普惠发展。
2025-11-17 08:15:00
1761
原创 【自动驾驶学习笔记】智能驾驶仿真器的开源项目
智能驾驶模拟器已从辅助工具发展为自动驾驶研发的核心基础设施。研究目标(L2辅助驾驶vs L4完全自动驾驶)硬件资源(普通PC vs GPU集群)与现有系统集成需求学习成本和社区支持推荐入门路径初学者:AirSim(友好API)→CARLA(全面功能)→Gazebo(深度定制)研究者:根据领域选择专业模拟器并深入学习开发者:优先选择与目标平台集成的模拟器(LGSVL for Apollo, AWSIM for Autoware)
2025-11-17 07:15:00
860
原创 【Android FrameWork】第八天:installd进程
本文解析了 Android 系统中的 installd 进程,这一关键系统守护进程负责应用全生命周期的底层文件操作。installd 由 init 进程早期启动,以 root 身份运行,通过 Socket 接收 Installer 服务的命令,执行目录创建、权限设置、Dex 优化等特权操作。文章从定位、启动流程、核心功能等维度展开,详细介绍了 installd 如何管理应用目录(如创建/删除/data/data/<包名>)、配置权限安全(通过 chown/chmod 实现应用沙盒隔离)以及处理
2025-11-08 10:00:00
1800
原创 【Android FrameWork】延伸阅读:Installer服务
摘要:Installer服务是Android系统中负责应用安装文件操作的核心组件,作为PackageManagerService等上层服务与installd守护进程的桥梁。它在SystemServer启动时优先初始化,通过Socket与installd建立长连接,提供应用数据目录创建、权限配置、代码优化等基础功能。Installer通过严格的文件系统权限管理确保应用数据隔离安全,其稳定接口贯穿Android版本迭代,是应用生命周期管理的底层支撑。
2025-11-08 09:30:00
969
原创 【Android FrameWork】第七天:SystemServer
SystemServer是Android系统的核心进程,负责启动和管理所有系统服务。它由Zygote进程孵化,初始化基础环境后分批次启动引导服务、核心服务和其他服务,解决服务间依赖关系。SystemServer作为系统服务的"容器"和内核与应用的"桥梁",拥有最高权限,其崩溃会导致系统重启。启动过程包括进程孵化、初始化准备、服务启动和进入运行态四个阶段,通过SystemServiceManager统一管理服务生命周期,确保系统稳定运行。
2025-11-08 08:30:00
1832
原创 【Android FrameWork】延伸阅读:startSystemServer
本文分析了Android系统中startSystemServer的关键作用与执行流程。该函数是Zygote进程启动SystemServer的核心步骤,通过四个阶段完成系统服务的孵化:首先准备包含权限、安全上下文等参数的启动配置;然后通过fork复用Zygote预加载资源;接着在子进程中完成环境特殊化;最后移交执行权至SystemServer主入口。整个过程实现了系统服务的快速启动与严格权限控制,为Android服务生态奠定基础,体现了Zygote与系统服务间的协同设计。 (字数:149)
2025-11-07 08:45:00
1197
原创 【Android FrameWork】第六天:认识Zygote的Java部分
Zygote Java层核心机制解析 摘要:Zygote的Java层在Android进程孵化中扮演关键角色,通过预加载资源和请求处理机制实现高效进程创建。其核心流程包括:1)启动初始化阶段完成Socket注册和参数解析;2)资源预加载阶段预先加载系统类、资源和共享库;3)通过select机制监听应用启动请求;4)解析参数并调用fork创建子进程。Java层与C++层协同工作,ZygoteInit作为入口类,Zygote封装JNI方法,ZygoteServer管理通信,RuntimeInit完成子进程初始化,
2025-11-07 08:15:00
960
原创 【Android FrameWork】第五天:init加载RC文件
本文基于Android 12+源码,深入分析Init进程加载RC文件的机制。Init进程作为用户空间首个进程,通过解析RC文件(初始化脚本)控制系统启动流程。文章详细阐述了两个关键阶段:1)初始化解析环境(日志系统、文件系统挂载、解析器配置);2)RC文件解析过程(主文件解析、Import指令处理、Service/Action指令解析)。源码分析表明,Init通过Parser类实现指令映射,ServiceParser和ActionParser分别处理服务定义和动作指令,最终将配置存入全局管理类。该机制为理解
2025-11-06 09:00:00
1059
原创 【Android FrameWork】第六天:认识Zygote的C++部分
本文分析了Android系统中Zygote的C++实现部分,该组件作为应用进程的孵化器,通过预加载资源与fork机制提升启动效率。Zygote的C++层主要包含三大核心组件:app_main.cpp作为进程入口处理参数解析和启动配置;AndroidRuntime类负责ART虚拟机初始化、JNI注册等桥梁功能;zygote.cpp实现关键的进程fork与资源管理逻辑。这些组件通过JNI与Java层协作,共同完成进程孵化任务,其中C++部分专注于底层系统操作如虚拟机构建、进程控制、信号处理等,为上层Java逻辑
2025-11-06 08:15:00
1041
原创 【OPENGL ES 3.0 学习笔记】第十七天:模型矩阵、视图矩阵与投影矩阵
本文详细解析了3D图形渲染中的三大核心变换矩阵:模型矩阵(Model Matrix)、视图矩阵(View Matrix)和投影矩阵(Projection Matrix)。模型矩阵通过缩放、旋转和平移将局部坐标转换为世界坐标;视图矩阵将世界坐标转换为以相机为中心的观察坐标;投影矩阵则完成观察坐标到裁剪坐标的转换。文章从数学原理到工程实践,系统阐述了这三个矩阵的构建方法和组合逻辑,揭示了它们如何协同完成3D顶点到2D屏幕的精确映射,是理解3D渲染基础的关键。
2025-11-05 08:30:00
2008
原创 【Android 性能分析】延伸阅读:关于异常捕获
摘要:Android异常捕获与处理指南 本文系统介绍了Android开发中的异常处理机制。异常分为受检异常(编译时检查)和非受检异常(运行时崩溃主因)。核心处理方式是通过try-catch块捕获异常,结合finally进行资源清理,使用throw主动抛出异常,throws声明可能抛出的异常类型。文章详细分析了六种常见异常场景:空指针异常(预防建议:判空检查)、类型转换异常(使用instanceof校验)、数组越界异常(索引范围检查)、非法参数异常(参数预校验)、资源未找到异常和网络IO异常,均提供了典型捕获
2025-11-04 17:03:31
1181
原创 【Android GLSurfaceView源码学习】第一天:认识GLSurfaceView
本文深入解析了Android中的GLSurfaceView组件,它继承自SurfaceView,是连接OpenGL ES渲染的核心桥梁。通过分析SurfaceView的独立Surface、双缓冲机制等特性,揭示了GLSurfaceView如何在此基础上封装EGL上下文管理、自动维护渲染线程和生命周期绑定三大核心功能。GLSurfaceView通过EGLHelper自动处理OpenGL与硬件的交互,GLThread实现独立的渲染循环,并支持连续渲染和按需渲染两种模式,大幅简化了OpenGL ES开发流程,让开
2025-11-04 08:30:00
1232
原创 【OPENGL ES 3.0 学习笔记】第十六天:光栅化
光栅化:计算机图形学的像素转换枢纽 光栅化是计算机图形学中将矢量图元转换为像素片段的关键环节,位于图元装配与片段着色器之间。其核心功能包括:空间离散化(确定图元覆盖的像素)、属性插值(实现顶点属性到片段的平滑过渡)、抗锯齿处理(消除边缘锯齿)和性能优化(剔除无效片段)。主要流程分为图元准备、扫描转换(采用重心坐标或扫描线算法)、属性插值(含透视校正优化)和抗锯齿处理(如多重采样)。OpenGL ES通过特定API控制渲染模式与插值方式,现代GPU硬件普遍采用并行优化的重心坐标法实现高效光栅化。该技术直接影响
2025-11-03 10:00:00
1064
原创 【Android FrameWork】第四天:init进程启动zygote
摘要: Android系统的init进程是服务管理的核心,负责解析配置、启动服务并监控运行状态。本文以zygote服务为例,详细分析init对服务的控制流程:首先解析init.rc中的服务配置,等待触发条件(如on boot事件)后,通过class_start命令启动服务。启动过程分为四个关键阶段:创建必要资源(如socket)、fork子进程、设置权限隔离、通过execve加载服务程序。其中init会创建并传递socket文件描述符,确保zygote与系统其他组件正常通信。整个过程体现了Linux进程管理
2025-11-03 08:30:00
1143
原创 【Android FrameWork】第三天:init进程对service的解析
Android Init进程解析Service的过程分析 本文分析了Android系统中init进程对service配置的解析过程,主要包括以下关键点: 配置文件加载:init进程读取init.rc等配置文件,预处理注释和换行符。 service块识别:当遇到"service"关键字时,进入专用解析模式。 基本信息解析: 检查服务名称唯一性 创建Service对象并初始化名称、路径和启动参数 切换解析状态处理后续属性 详细属性解析: 通过关键字映射表处理不同属性(user、group等)
2025-11-02 10:00:00
1541
原创 【Android FrameWork】第二天:认识Skia
Skia是Google主导的开源2D图形渲染引擎,已成为现代数字产品的视觉基石。从2001年诞生到2005年被Google收购开源,Skia凭借高效矢量图形处理能力,逐步成为Android、Chrome、Flutter等核心产品的底层渲染引擎。其三层架构设计(API层、核心逻辑层、后端适配层)实现了跨平台一致性渲染,支持从移动设备到嵌入式系统的全场景需求。Skia在GPU加速、智能缓存、低功耗设计等方面表现优异,同时提供丰富的视觉表现力。如今,Skia已渗透到移动、桌面、嵌入式及车载系统等多个领域,并朝着A
2025-11-02 09:00:00
674
原创 【OPENGL ES 3.0 学习笔记】延伸阅读:多边形偏移
多边形偏移技术指南 在3D渲染中,多边形偏移是解决深度冲突(z-fighting)的核心技术。当多个多边形因深度缓冲区精度限制出现闪烁或遮挡异常时,该技术通过动态微调深度值实现稳定渲染。 关键原理 偏移量Δz = factor × max_slope + units × min_depth_resolution,根据多边形倾斜度动态调整 仅作用于启用了偏移的特定图元类型(填充/线框/点模式) 实现流程 启用深度测试和偏移功能(如GL_POLYGON_OFFSET_FILL) 设置偏移参数(factor和un
2025-11-01 09:15:00
1721
原创 【OPENGL ES 3.0 学习笔记】第十五天:图元装配
本文详细解析了OpenGL ES 3.0渲染流水线中的图元装配环节。作为连接顶点处理与光栅化的关键枢纽,图元装配通过"组装→裁剪→剔除→属性传递"等步骤,将离散顶点转化为有效图元。重点剖析了图元组装规则(6种图元类型及其适用场景)、裁剪处理(Sutherland-Hodgman算法)和背面剔除(基于缠绕顺序的优化)三大核心流程。特别强调了高效图元类型(GL_TRIANGLE_STRIP/FAN)的顶点共享优势及裁剪后的退化图元处理机制,为3D图形渲染的正确性与性能优化提供了关键技术支撑。
2025-11-01 09:00:00
715
原创 【OPENGL ES 3.0 学习笔记】延伸阅读:退化三角形
摘要: OpenGL ES 3.0中的退化三角形(Degenerate Triangle)是一种面积为零的特殊图元,虽不参与光栅化渲染,但在三角形条带(GL_TRIANGLE_STRIP)绘制中具有重要连接作用。其数学本质表现为三点共线或顶点重叠,通过向量叉积可判定。实践中,开发者需区分无意生成的错误退化三角形(需规避)与有意设计的衔接退化三角形(用于优化条带连续性)。典型案例表明,插入重复顶点生成的退化三角形能有效分割独立图元,在单次绘制调用中保持高效性。需注意性能优化,如减少冗余顶点、结合索引绘制,并警
2025-10-31 09:00:00
1412
原创 【OPENGL ES 3.0 学习笔记】延伸阅读:图元
图元重启(Primitive Restart)是OpenGL/OpenGL ES中优化连续图元(如三角形带、线段带)绘制性能的关键技术。它通过在索引数组中插入特殊重启索引(如0xFFFFFFFF)作为分隔符,使GPU能在单次绘制调用中处理多组独立连续图元,避免传统多调用或冗余顶点方法带来的性能损耗。核心技术流程包括:启用GL_PRIMITIVE_RESTART、设置重启索引、构造含分隔符的索引数组。该技术特别适用于网格、地形等需要大量连续图元的场景,能显著降低CPU-GPU通信开销,但需注意重启索引与数据类
2025-10-31 08:00:00
721
原创 【OPENGL ES 3.0 学习笔记】延伸阅读:glVertexAttribDivisor函数
本文深入解析了OpenGL中的关键函数glVertexAttribDivisor,它是实现高效实例化渲染的核心机制。该函数通过控制顶点属性的更新频率(每个顶点/每个实例/每N个实例更新一次),使开发者能够用一次绘制调用渲染大量相似对象,同时保持各实例的差异化特性。文章详细介绍了其工作原理、配置步骤(结合VAO/VBO)和注意事项,并对比了与传统渲染方式的性能差异。理解并正确使用这个函数,可以大幅减少CPU-GPU通信开销和内存占用,显著提升渲染效率。
2025-10-30 08:15:00
594
原创 【OPENGL ES 3.0 学习笔记】第十四天:几何形状实例化
OpenGL实例化渲染函数glDrawArraysInstanced和glDrawElementsInstanced通过减少绘制调用次数显著提升渲染效率。前者适用于无重复顶点的物体,直接通过顶点数组绘制多个实例,利用gl_InstanceID区分实例;后者配合索引缓冲区复用顶点数据,更适合存在重复顶点的复杂模型。两者均通过设置glVertexAttribDivisor控制属性更新频率,实现差异化渲染。这种技术可大幅降低CPU-GPU通信开销,适用于粒子系统、建筑群等场景的批量高效渲染。
2025-10-30 08:00:00
1293
原创 【OPENGL ES 3.0 学习笔记】延伸阅读:VAO与VBO
VAO(顶点数组对象)和VBO(顶点缓冲区对象)是现代OpenGL核心组件。VBO在GPU显存存储顶点数据(如位置、颜色),避免CPU-GPU频繁传输;VAO记录VBO的解析规则(格式、偏移等)和绑定状态。VBO通过glGenBuffers创建,glBindBuffer绑定目标,glBufferData写入数据,glVertexAttribPointer配置属性解析。二者协同工作提升渲染效率:VBO存储数据,VAO管理状态,实现高效3D渲染。使用后需通过glDeleteBuffers销毁VBO释放显存。理解
2025-10-29 10:32:49
914
原创 【OPENGL ES 3.0 学习笔记】第十三天:实现立方体(glDrawElements)
本文介绍了如何使用OpenGL ES的glDrawElements函数高效绘制彩色旋转立方体。通过索引缓冲区(IBO)复用8个顶点定义36个索引,相比glDrawArrays减少70%数据量。文章详细解析了顶点坐标与颜色数据设计、索引顺序排列规则,以及VBO、IBO、VAO三类缓冲区的协同工作机制,包括数据传输、属性配置和状态管理。该技术利用顶点复用机制显著提升3D渲染性能,适用于存在大量共享顶点的模型。
2025-10-29 08:30:00
964
原创 【OPENGL ES 3.0 学习笔记】第十二天:实现立方体(glDrawArrays)
OpenGL ES立方体绘制与MVP矩阵变换 本文介绍了使用OpenGL ES的glDrawArrays方法绘制彩色旋转立方体的完整实现,重点分析了顶点数据设计、着色器程序和3D变换原理。 核心实现 顶点数据:立方体由36个顶点组成(6面×6顶点),每个顶点包含位置和颜色数据 着色器程序: 顶点着色器:应用MVP矩阵变换,传递颜色数据 片段着色器:输出插值后的颜色 矩阵变换: 模型矩阵:控制立方体旋转 视图矩阵:模拟相机视角 投影矩阵:实现3D透视效果 技术要点 使用glDrawArrays直接渲染三角形,
2025-10-28 20:38:27
902
原创 【OPENGL ES 3.0 学习笔记】第十一天:glDrawArrays和glDrawElements
OpenGL ES渲染管线中,glDrawArrays和glDrawElements是两大核心渲染函数。前者直接顺序读取顶点数据,适合简单场景;后者通过索引缓冲区实现顶点复用,大幅降低内存占用,尤其适合复杂3D模型。两者在顶点数据使用方式上的差异直接影响渲染性能和内存效率,开发者需根据具体场景选择最优方案。
2025-10-28 13:28:19
704
原创 【OPENGL ES 3.0 学习笔记】第十天:认识图元
OpenGL ES中的图元(Primitive)是连接顶点数据与几何形状的核心元素,定义了顶点如何组成可见图形。主要分为三类:点图元(GL_POINTS)、线图元(GL_LINES/GL_LINE_STRIP/GL_LINE_LOOP)和三角形图元(GL_TRIANGLES/GL_TRIANGLE_STRIP/GL_TRIANGLE_FAN)。点图元用于独立点渲染,线图元生成线段或折线,三角形图元则是构建复杂模型的基础,支持独立、连续或辐射状三角形组合。通过指定图元类型,开发者可高效实现2D/3D图形渲染,
2025-10-25 09:00:00
695
原创 【Android 性能分析】第一天:性能优化的全景图
Android性能优化是提升用户体验的关键,聚焦四大核心维度:响应性能(启动时间、帧率、ANR)、内存性能(泄漏、GC)、耗电性能(CPU唤醒、网络请求)和网络性能(加载时间、流量消耗)。官方工具如Android Studio Profiler、Systrace和Perfetto提供多维分析能力,配合命令行工具dumpsys可快速定位问题。通过量化指标和工具组合,开发者能系统性地解决卡顿、闪退、耗电等痛点,打造高性能应用。
2025-10-24 09:30:00
854
原创 【Android应用开发】Android Flutter开发
摘要: Flutter是Google推出的跨平台UI开发框架,通过自绘引擎实现iOS、Android、Web等多端一致的高性能应用。其核心优势包括: 跨平台一致性:不依赖原生控件,确保UI统一; 高性能:基于Dart AOT编译和Skia引擎,接近原生体验; 热重载:秒级代码更新提升开发效率; 丰富组件库:支持响应式编程与全平台覆盖。 架构分为引擎层(C++)和框架层(Dart),结合完善的生态工具(如pub.dev、DevTools)及状态管理方案(Provider、Bloc),适用于复杂应用开发。Flu
2025-10-24 08:30:00
584
Android SurfaceView+OpenGL ES 3.0 kotlin版本实现绘制彩色三角形源码
2025-10-16
snmpwalk的timeout问题
2016-07-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅