自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(542)
  • 资源 (35)
  • 收藏
  • 关注

原创 Android编译系统——.mk文件分析(六)

执行 runKatiBuild 时,有个重要的步骤,就是加载 build/make/core/main.mk,main.mk 文件是 Android Build 系统的主控文件。这里我们就来从 main.mk 文件开始进行分析。

2025-07-16 09:31:49 155

原创 Android编译系统——make编译过程(五)

前面的几篇文章我们分析编译环境初始化的过程,环境变量已经加载,并配置了编译目标,接下来执行一个 make 命令我们就能够进行编译。

2025-07-16 09:31:30 404

原创 Android编译系统——config.mk构建变量(四)

上一篇文章介绍了编译目标选择,我们了解到在 lunch 的过程中会对核心变量进行初始化,主要是同 main.mk 显式引入 build/make/core/config.mk 来完成。这里我们就来分析一下 config.mk 的加载流程。

2025-07-15 08:45:54 575

原创 Android编译系统——编译目标选择(三)

环境变量初始化完成后,需要选择一个编译目标。即 source build/envsetup.sh 的下一步 lunch xx。这里我们就来分析编译目标选择的详细流程。

2025-07-15 08:45:39 681

原创 Android编译系统——编译环境初始化(二)

本篇文章将聚焦于 Android 编译流程中的环境初始化阶段,这是整个编译过程的第一步,也是至关重要的一步。在这个阶段中,系统会设置好所需的构建环境、加载必要的配置信息、定义关键变量,并为后续的编译动作做好准备。

2025-07-14 09:48:16 428

原创 Android编译系统——基础介绍(一)

Android编译系统是构建Android操作系统及其应用程序的核心基础设施,负责将源代码、资源文件等编译打包成可在设备上运行的软件包。随着Android版本的演进,编译系统经历了多次重大变革。

2025-07-14 09:48:02 836

原创 Android Wifi实战——获取热点密码(一)

对于WiFi 热点开发来说,获取热点密码属于最基础的功能,在实际开发中遇到了首次获取 WiFi 热点密码错误的问题,再次获取恢复正常。这里借着这次机会来看一下热点密码的获取流程。

2025-07-10 09:13:25 378

原创 Android性能优化——开机启动优化总结(十六)

通过前面的文章内容,我们已经了解了系统优化方案的排查方法和一些问题的解决思路,这里继续针对开机启动优化方向做一次总结。

2025-07-10 09:12:37 335

原创 Android性能实战——播放音乐导致界面卡顿处理(十五)

上一篇文章分析播放音乐界面卡顿的最终结论是仪表屏的合成方式发生了变化导致,因此怀疑音乐播放时仪表屏的音乐小窗口变化导致的。虽然有怀疑,但是我们还是先来看一下合成方式变化的相关代码。

2025-07-09 09:12:58 532

原创 Android性能实战——播放音乐导致界面卡顿分析(十四)

对于性能分析来说,界面卡顿是最常见的问题。首先多打开一些设备中的应用程序,然后分别在播放音乐和暂停音乐的情况下滑动最近任务列表,会发现播放音乐的时候会有明显的掉帧情况,而暂停音乐则不会有这种情况。

2025-07-09 09:12:39 737

原创 Android性能分析——Systrace中CPU分析(十三)

Systrace 中的 CPU 信息区域位于视图的顶部,前面的文章中很少通过 CPU 的相关数据去分析系统性能,其实 CPU 频率、调度、锁频和锁核等相关信息可以更好的了解当前系统的性能。

2025-07-08 09:08:02 569

原创 Android性能实战——Systrace分析实例(十二)

上一篇文章我们得到了一个 html 文件,这里我们来通过拿到的 trace.html 文件来分析一些耗时场景。

2025-07-08 09:07:30 532

原创 Android性能分析——Systrace系统卡顿分析(十一)

系统卡顿是性能优化中比较常见的问题场景,而导致界面卡顿的原因也非常多,有 APP 本身的问题,有系统原因导致卡顿的,也有硬件层的、整机卡的。

2025-07-07 08:59:49 570

原创 Android性能分析——Systrace使用介绍(十)

上一篇文章我们介绍了 Systrace 的基础信息以及 trace 数据的抓取流程,这一篇主要介绍如何查看 Systrace 中的线程状态,如何对线程的唤醒信息进行分析,如何解读信息区的数据,以及介绍了常用的快捷键。

2025-07-07 08:59:31 533

原创 Android性能分析——Systrace基础介绍(九)

用户对卡顿的感知,主要来源于界面的刷新,而界面的性能主要是依赖于设备的UI渲染性能,如果我们的UI设计过于复杂,或是实现不够好,设备又不给力,界面就会像卡住了一样,给用户卡顿的感觉。

2025-07-04 09:16:36 346

原创 Android性能优化——无障碍服务启动(八)

对于提高 com.test.xiaoxu 服务的启动时间,上一篇文章已经就有结论了,由于 App 的 Application 中使用 SharedPreferences 读取数据,在屏幕解锁前启动会出现异常。

2025-07-04 09:16:17 398

原创 Android性能优化——进程启动优化(七)

开始实际开发中系统进程的速度也是设备性能优化的关键点,我们也经常遇到要求提高某一服务的启动速度,这里我们假如要提高一个进程为 com.test.xiaoxu 的系统预装三方应用服务的启动速度。

2025-07-03 00:24:42 881

原创 Android性能优化——Dex预优化介绍(六)

在 Android 应用开发领域,性能优化始终是开发者关注的核心议题之一。随着应用功能日益复杂,代码量不断增长,如何确保应用启动迅速、运行流畅成为了一项重要挑战。Dex 预优化技术正是在这样的背景下应运而生,它通过提前对 Dex 字节码进行优化处理,显著提升了 Android 应用的运行时性能。

2025-07-03 00:24:06 761

原创 Android性能优化——调整窗口动画时长(五)

在 Android 性能优化中,界面切换速度(如 Activity 跳转、Dialog 弹出等)是影响用户体验的关键指标之一。由于测试人员通常采用 逐帧分析(FPS 或帧耗时统计) 的方式验证界面切换性能,因此 减少或关闭窗口动画和过渡效果可以在视觉上显著加快界面响应速度,并降低 GPU 和 CPU 的渲染开销,从而优化整体流畅度。

2025-07-02 09:30:17 693

原创 Android性能优化——系统启动优化(三)

上一篇文章我们介绍了 Bootchart 分析了系统启动过程的耗时问题,而系统启动时间优化也是 Android 车机开发中常见的案例,这一篇文章我们就来看一下通过优化持久化应用的启动时序来实现优化系统的启动速度。

2025-07-02 09:30:00 837

原创 Android性能分析——Bootchart使用介绍(二)

Bootchart 是一个用于分析和可视化 Linux 系统启动过程的工具,Android 也集成了这一工具来帮助开发者分析和优化系统启动性能。它能够记录系统启动期间各个进程的 CPU 和 I/O 使用情况,记录进程的启动顺序和父子关系以及生成直观的图表展示启动时间线。

2025-07-01 09:28:46 774

原创 Android性能分析——hprof文件分析(一)

hprof  文件是 Java 堆转储文件(Heap Dump File)的标准格式,用于保存 Java 虚拟机(JVM)在某个时间点的内存快照。这种文件对于分析内存泄漏、内存使用情况和对象分配模式非常有用。

2025-07-01 09:28:13 500

原创 Android日志实战——缓冲区与性能分析(十九)

在 Android 系统中,日志缓冲区(log buffers)用于存储不同类型和来源的日志信息。不同的缓冲区包含不同类型的日志数据,这些数据对于调试、监控系统状态以及分析问题非常有用。默认情况下我们通常使用 adb logcat 获取日志信息,这时它只显示 main 缓冲区中的日志。Main 缓冲区包含了大多数应用程序产生的日志信息。这种模式适合于查看应用级别的日志输出,特别是那些通过 Log.v()、Log.d()、Log.i()、Log.w()和 Log.e() 等函数打印出来的日志。

2025-06-19 09:04:11 408

原创 Android实战——系统字体库加载流程

字体库文件是指存储字体数据的文件,这些文件包含了创建文本字符所需的所有信息。不同的字体格式有不同的技术规范和使用场景。主要在下面两个路径:frameworks/base/data/fonts:主要包含的是 Android 系统默认使用的字体文件。这些字体被直接集成到Android框架中,并且是系统运行所必需的一部分。external/noto-fonts:包含了 Google Noto 字体家族的更全面集合。Noto 字体项目的目标是为所有现代设备上的每一种语言提供优雅而和谐的字体呈现。

2025-06-19 09:03:17 452

原创 Android多媒体——ACodec加载OMX(三十)

ACodec 作为 Android 多媒体框架中的关键组件,采用了精心设计的状态机模式来管理编解码器的生命周期和数据处理流程。主要负责与底层 OMX (OpenMAX) 编解码器交互,实现音视频数据的编解码处理。

2025-06-18 09:31:39 548

原创 Android多媒体——OMX服务启动(二十九)

OMX 服务是一个 Hal 层服务,上一篇文章介绍了 OMX 服务连接流程,这一篇我们主要来看一下 OMX 服务的启动流程。

2025-06-18 09:31:23 847

原创 Android多媒体——OMX基础介绍(二十八)

在移动设备的多媒体处理领域,硬件加速一直是提升性能、降低功耗的关键技术。然而,不同芯片厂商提供的硬件编解码接口各异,导致上层应用难以实现跨平台兼容。Khronos Group 制定的 OpenMAX 标准应运而生,为多媒体处理提供了统一的抽象层。本文将深入解析 OpenMAX 标准,特别是其在 Android 系统中的具体实现——OMX架构。

2025-06-17 09:21:32 366

原创 Android多媒体——MediaCodec功能封装(二十七)

前面几篇文章详细分析了 MediaCodec 的相关功能,但是在 MediaCodec 外面还包裹了一层 NuPlayerDecoder,从理论上来讲,既然 NuPlayerDecoder 包裹在 MediaCodec 外层,所以它相对于 MediaCodec 也可以理解为 App,它调用 MediaCodec 的 API 来完成相关任务。

2025-06-17 09:21:05 735

原创 Android多媒体——MediaCodec输入缓冲区(二十六)

上一篇文章介绍了 MediaCodec 的回调和配置流程,当完成了对 MediaCodec 的配置之后(通过 configure() 方法),下一步就是调用 start() 方法启动编解码器并准备进行数据的输入输出处理。 

2025-06-16 20:14:21 499

原创 Android多媒体——MediaCodec回调与配置(二十五)

在完成 MediaCodec 初始化流程的探索后,我们正站在多媒体处理最精妙的核心地带——回调机制。这不仅是简单的异步通知接口,更是连接应用层与底层编解码引擎的智能控制系统。

2025-06-16 20:13:48 578

原创 Android多媒体——MediaCodec详解(二十四)

在初步了解 MediaCodec 的基本概念和工作原理后,我们将深入剖析其完整实现流程。MediaCodec 作为 Android 多媒体处理的核心组件,其实现流程涉及多个关键环节,包括编解码器初始化、数据流处理、缓冲区管理以及异常处理等。

2025-06-12 09:24:31 402

原创 Android多媒体——MediaCodec介绍(二十三)

MediaCodec 是 Android 系统提供的底层多媒体编解码框架,用于对音视频数据进行编解码处理。它是 Android 多媒体基础架构的重要组成部分,为开发者提供了直接访问设备编解码器的能力。 

2025-06-12 09:24:16 305

原创 Android多媒体——同步Video显示时间(二十二)

上一篇文章我们介绍了 Audio 锚点的计算及更新流程,这里我们继续来看一下 Video 显示时间的获取及同步流程。在音视频同步(AV Sync)中,Video 显示时间的准确性直接决定了画面的流畅性。与 Audio 类似,Video 的同步也依赖于时间戳管理、渲染控制和时钟同步。

2025-06-11 09:15:42 754

原创 Android多媒体——音/视同步锚点更新(二十一)

音视频同步(AV Sync)是多媒体处理中的核心问题,而音频锚点时间(Audio Anchor Time)的更新机制直接影响同步精度,当音频解码、渲染或动态调整(如变速、跳转)时,需高效修正时间锚点以避免唇音不同步(Lip Sync Error)或卡顿。

2025-06-11 09:15:21 1768

原创 Android多媒体——音/视同步数据处理(二十)

在多媒体播放中,音视频同步(A/V Sync)是保证流畅观看体验的核心技术之一。前文已介绍了同步的基本流程,本文将深入分析数据处理阶段的关键逻辑。

2025-06-10 09:16:42 568

原创 Android多媒体——音/视同步流程分析(十九)

解码后的音频片段和视频片段,都分别带有 pts 时间戳信息。回放时需要做的,就是尽量保证 apts(音频时间戳)和 vpts(视频时间戳)之间的差值是最小的。为了达到这个目的,就需要在 audio device 和 video device 进行渲染的时候进行控制。控制的方法就是 delay。由于音频的采样率是固定的,在回放时我们必须保证连续性,就是说两个时间上连续的音频片段是不允许有 delay 的。一般声卡每次播一个采样点而不是一帧,声音当一个采样点丢失了都可以听出来,视频则不然。

2025-06-10 09:16:16 823

原创 Android多媒体——音/视频数据播放(十八)

在媒体数据完成解码并准备好之后,播放流程便进入了最终的呈现阶段。为了确保音视频内容能够顺利输出,系统需要首先对相应的播放设备进行初始化。只有在设备初始化成功后,才能真正开始音视频的同步渲染与播放。这一过程不仅影响播放的启动速度,也直接关系到播放的稳定性和用户体验。

2025-06-09 10:28:45 840

原创 Android多媒体——Render渲染器分析(十七)

在 Android 多媒体框架中,渲染器(Renderer)扮演着将解码后的音视频数据呈现给用户的最终角色。对于视频而言,这意味着将解码后的图像帧显示在屏幕上;对于音频,则是将解码后的 PCM 数据通过音频输出设备播放出来。

2025-06-09 10:22:12 436

原创 Android多媒体——解码器数据处理(十六)

从上层来看,MediaCodec 就是一个黑盒,只需要是如何驱动它的,而不需要关心它内部是如何实现解码的,对于这个黑盒,它有一个 input port,一个 output port,buffer 是如何运转就会非常重要,所以在这里关注的就是 NuPlayerDecoder 和 MediaCodec 的交互关系。

2025-05-15 10:23:11 472

原创 Android多媒体——媒体解码器初始化(十五)

通过上一篇文章我们了解了媒体解码器的创建过程,并且可以看到,在媒体解码器创建成功后,分别调用了 configure()、setCallback() 和 start() 函数来对解码器进行配置、回调和启动。这里我们就来详细看一下这几个过程。

2025-05-15 10:22:57 593

Android仿百度贴吧看帖滑动返回效果

实现百度贴吧看帖时的滑动返回效果和AutoCompleteTextView的使用。

2015-04-14

手势识别实现

文件中包含两种实现手势识别功能的工程,一种是使用GestureDetector实现手势识别,另一种是使用GestureOverlayView实现手势识别。

2015-02-26

页面跳转与数据回传

页面跳转与数据回传,跳转方法startActivityForResult的使用与返回数据的处理。

2015-02-16

滚动选择控件

自定义日期滚动选择控件,代码使用方便,而且可以通过修改自定义Dialog中代码控制日期可选范围和添加时间选择功能等。

2015-08-25

竖直滚动TextView

很简单的文本信息竖直滚动展示效果,没有积分的可以搜索“Android TextView竖直滚动文字广告效果”的博客。

2016-01-18

进度条简单使用和自定义

进度条简单使用和自定义进度条显示风格,代码比较简单,注释详细,适合初学者。

2015-01-16

ContentProvider测试Demo

ContentProvider的测试Demo,只有下载并运行http://download.csdn.net/detail/c19344881x/8360531下的应用才会看到效果。单独下载没有用处。

2015-01-14

ScorollView简单使用

主要ScorollView简单使用方法,包括滑动监听、滑动加载、位置跳转等功能。适合初学者研究使用,注释非常详细。

2015-01-23

ViewPager简单使用

主要介绍ViewPager的简单使用和三种Adapter的区别,适合初学者学习使用。

2015-01-21

日期时间选择

日期时间选择控件的使用,包括嵌入Activity中和弹出式两种情况,适合初学者,代码注释比较详细。

2015-01-16

断点续传下载

主要实现文件下载的暂停和继续下载功能。 用到的知识点: 1、Service的使用以及Service与Activity之间的数据交互; 2、SQLite数据库的简单使用; 3、文件下载与存储; 4、广播的简单使用。

2015-05-19

Service使用

实现Service的启动、停止、绑定、解绑与Service中方法的调用。

2015-02-25

AsyncTask异步加载使用

AsyncTask异步加载使用Demo,详解可以参考《Android中AsyncTask的使用详解》,代码中的注释也比较详细,初学者可以参考。

2015-05-15

Android控件的简单使用

Android控件简单使用,AoutCompleTextView、MultiAoutCompleTextView、ToggleButton、CheckBox、RadioGroup等控件

2015-02-16

广播使用Demo

主要包括三种类型的广播的简单实用及对比。

2015-01-14

下拉列表使用

下拉列表的简单实用Demo,代码简单注释详细,适合初学者学习使用。

2015-01-16

Fragment使用

主要介绍Fragment的使用,包括动态加载、静态加载、生命周期、数据传递等,代码里注释比较详细,但代码中的结构和命名比较混乱,最好结合下面的问章看。http://blog.csdn.net/c19344881x/article/details/42876041

2015-01-20

ViewFlipper简单使用

ViewFlipper实现图片轮播和图片滑动切换,原理和思路比较清晰,滑动切换效果不是很好,需要修改动画效果文件。

2015-01-21

布局优化Demo

布局界面中include、merge、ViewStub的使用实例。

2015-01-27

通知Notification

这是一个Android中通知的简单使用源码,基本满足大多是用户的使用需求,其中的注释特别详细,适合初学者学习使用。

2015-01-28

Android Audio基础-音频链路分析(二十二)

Android Audio基础-音频链路分析(二十二)

2025-06-25

Android性能分析-Bootchart使用介绍

bootchart.jar

2025-06-18

MemoryAnalyzer-1.16.1

.hprof 文件解析工具

2025-05-23

jdk-24-windows-x64-bin

Java Jdk

2025-05-23

Systrace抓取工具

适用实用高版本Android Studio无法找到Systrace工具。

2025-05-21

python-2.7.13版本

python-2.7.13版本

2025-05-21

Android多语言strings.xml生成工具

在做 Android 开发的过程中,经常会遇到多语言开发的场景,尤其在车载项目中,多语言开发更为常见。对应多语言开发,通常都是在中文版本的基础上开发其他国家语言,这里我们会拿到中-外语言对照表,该工具就是可以将这里的 xls 文件生成 AndroidStudio 中直接使用的 strings.xml 工具。 参考文章:https://xiaoxu.blog.csdn.net/article/details/145152764

2025-04-09

HCI Log分析工具-CPAS-11

HCI Log分析工具-CPAS-11,使用参考:https://xiaoxu.blog.csdn.net/article/details/129261272

2024-04-17

Android Audio相关流程时序图

Android 11 Audio相关流程时序图,需要使用EA画图工具打开。包含Audio中音量获取/设置、焦点申请/放弃、属性设置等相关流程,从APP层到Hal层。 详细讲解相关文章参考:https://blog.csdn.net/c19344881x/category_12324194.html

2023-11-30

Android Radio相关流程时序图

Android 9.0 Radio相关流程时序图,需要使用EA画图工具打开。包含Radio暂停、播放、切换电台、获取电台信息、切换FM/AM、调频/调辐、搜索、取消搜索等相关流程,从APP层到Hal层。同时还包含类图等其他软件图。 详细讲解相关文章参考:https://blog.csdn.net/c19344881x/category_12312897.html

2023-09-01

MinGw 安装包,版本0.6.2

MinGw 安装包,版本0.6.2

2023-03-07

Android 蓝牙开发相关知识总结

Android 蓝牙开发相关知识总结

2023-03-07

SurfaceFlinger学习笔记总结

SurfaceFlinger学习笔记总结

2023-03-07

Android Studio生成自己的so库

Android Studio生成自己的so库

2023-01-06

根据.h文件在自己的so库中调用三方so库

根据.h文件在自己的so库中调用三方so库

2023-01-06

本地实现U盘扫描SDK部分代码

本地实现U盘扫描功能SDK,无法直接运行,需要自己编译成SDK在调用。 参考:https://blog.csdn.net/c19344881x/article/details/126161462

2022-10-28

开发调试所使用的各种格式音视频

视频格式:ts 264 avi wmv mkv mov rm 3gp flv gif mpg rmvb swf vob webm asf dat f4v h264_mp4 h265_mp4 音频格式:aac ac3 aiff amr au m4a mka mp2 ogg ra wav wma mp3

2022-07-20

Android端Socket实现聊天功能

Android端Socket实现聊天功能,能够发送文字、图片、商品等信息,实现了消息本地存储。讲解:https://mp.csdn.net/mp_blog/creation/editor/120673184

2021-10-11

jai-imageio和swingx.jar.zip

【图形处理相关的jar包】jai-imageio-1.1.jar和swingx-1.6.1.jar下载

2021-12-16

SocketDemo.zip

Android Socket通信简单实现源码下载:https://blog.csdn.net/c19344881x/article/details/120455491

2021-09-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除