自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android实战——修改系统默认输入法

对于 Android 设备开发来说,内置输入法的安装及默认输入法的设置是一个很常见的功能,下面我们就来看一下系统输入法的相关配置流程。

2025-03-05 10:21:43 814

原创 从记录到分享:我的创作之旅

而我也从职场小白成长为领域精英,并且在 2024 年,我获得了 优快云 移动开发领域新星创作者和博客专家的头衔,并且还参与了 优快云 博客之星的评选,最终获得了 88 名的成绩。更重要的是,我重新找到了一份自己理想的工作,这份工作不仅满足了我的职业发展需求,也提供了更多的机会去探索前沿技术。尤其是在AI爆发的时代背景下,我们的见识和积累可以更好地帮助我们解决遇到的各种问题,也为我的职业生涯开辟了新的方向。在有限的精力下,我尝试找到创作与工作学习之间的平衡点,确保每一方面都能得到应有的重视。

2025-03-05 10:09:38 405

原创 Android Audio其他——数字音频接口(附)

数字音频接口 DAI,即 Digital Audio Interfaces,顾名思义,DAI 表示在板级或板间传输数字音频信号的方式。相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DAI 在音频电路设计中得到越来越广泛的应用。

2025-02-24 11:37:06 686 2

原创 Android Audio实战——音频相关基础概念(附)

Android Audio 开发其实就是媒体源数字化的过程,通过将声波波形信号通过 ADC 转换成计算机支持的二进制的过程叫做音频采样 (Audio Sampling)。采样 (Sampling) 的核心是把连续的模拟信号转换成离散的数字信号。

2025-02-24 11:36:40 818 1

原创 Android多语言开发自动化生成工具

在做 Android 开发的过程中,经常会遇到多语言开发的场景,尤其在车载项目中,多语言开发更为常见。对应多语言开发,通常都是在中文版本的基础上开发其他国家语言,这里我们会拿到中-外语言对照表,这里的工作难度其实并不高,但是工作量却是非常的大,而且都是复制/粘贴的无聊操作,如何能快速的完成这种简单重复的操作呢?这里我们就来简单实现一下。

2025-01-23 08:55:13 1655 1

原创 Android SystemUI——最近任务列表启动(十八)

前面分析了初始化涉及到的关键类,系统启动后会启动 SystemUI 进程,然后进行一系列初始化,接下来看一下进入 Recents 的流程。我们主要分析最近任务应用列表的启动与显示。

2025-01-23 08:54:07 994 1

原创 Android SystemUI——最近任务应用列表(十七)

对于最近任务应用列表来说,在 Android 原生 SystemUI 中是一个单独的组件。但对于 Android 源码的 CarSystemUI 最近任务应用列表组件有是一个移除的组件(代码参考确实,在某些版本的 Android 源码中,特别是针对 CarSystemUI(车载系统的用户界面),最近任务应用列表组件可能被移除或者其功能被限制。这种改动通常是为了优化用户体验或遵守特定的安全法规和设计指南。

2025-01-22 08:42:17 1072 1

原创 Android SystemUI——通知栏构建流程(十六)

如果说 StatusBar 是代码最多最重要的一个,那 Notification 是使用最多,最广泛的一个。对于通知栏的构建与前面快捷设置面板相似,都是在状态栏(StatusBar)中完成的,这里我们就看看一下通知栏的相关内容。

2025-01-22 08:42:04 561 1

原创 Android SystemUI——快捷面板的显示(十五)

上一篇文章我们分析了 QSTileHost 初始化以及快捷设置面板的创建流程,这里我们继续来看一下快捷设置面板显示流程。

2025-01-21 08:48:44 1028 1

原创 Android SystemUI——快捷面板的创建(十四)

上一篇文章介绍了快捷面板界面 QSFragment 的创建流程,这里我们继续介绍快捷按键 QSTile 和管理 QSTile 生命周期和服务注册的 QSTileHost。

2025-01-21 08:48:32 643

原创 Android SystemUI——系统快捷设置面板(十三)

通过前面的内容我们了解了SystemUI的启动流程以及相关组件的加载流程,同时也详细介绍了导航栏的创建和加载流程,对于SystemUI的组件来说,除了导航栏之外,下拉快捷设置面板也是比较重要的一个组件。

2025-01-20 08:46:46 637 1

原创 Android SystemUI——自定义状态栏和导航栏(十二)

通过前面的文章内容,我们了解了Android系统原生的状态栏StatusBar和车载系统状态栏CarStatusBar的启动流程以及视图构建流程,这里我们来简单的看一下自定义状态栏和导航栏视图的实现流程。

2025-01-20 08:46:29 1144 1

原创 Android SystemUI——CarSystemBar视图解析(十一)

前面文章我们已经把CarSystemBar从启动到构建视图,再到将视图添加到Window的流程分析完毕,我们知道默认情况下在车载系统中只显示顶部栏和底部栏视图的。这里我们在前面文章的基础上具体解析顶部栏视图的结构。

2025-01-19 00:03:29 1133

原创 Android SystemUI——CarSystemBar添加到窗口(十)

上一篇文章我们看到了车载状态栏CarSystemBar视图的创建流程,这里我们继续分析将车载状态栏添加到Windows窗口中。

2025-01-19 00:03:08 829

原创 Android SystemUI——CarSystemBar车载状态栏(九)

上一篇文章我们介绍了车载开发中的CarSystemUI,而车载开发中的状态栏也被CarSystemBar所取代,这里我们就来看看一下车载系统中的状态栏——CarSystemBar。

2025-01-18 10:28:36 803

原创 站在35岁的起点:年度创作回顾与未来展望

站在2025年的起点上,我相信,在持续学习与不懈努力下,35岁不会是危机,而是我们程序员生涯中的黄金时代。让我们一起加油,继续书写属于我们的故事。优快云不仅是我的博客家园,更是无数开发者共同成长、互相激励的精神乐园。在这里,我找到了前进的方向,也收获了满满的友谊和支持。是你们的鼓励让我有勇气面对每一次挑战;是你们的关注和订阅给了我继续前行的动力;是你们的评论和建议帮助我不断完善自己。

2025-01-18 08:45:12 1136

原创 Android SystemUI——车载CarSystemUI加载(八)

车载 CarSystemUI 是指专门为汽车环境设计的用户界面和用户体验(UI/UX),它通常与 Android Automotive OS 或其他嵌入式操作系统一起工作,为驾驶者和乘客提供安全、直观且高效的交互方式。Android Automotive OS 是 Google 专门为汽车开发的操作系统版本,它基于 Android 平台,并针对车辆内部的使用进行了优化。

2025-01-16 09:00:18 1322

原创 Android SystemUI——NavigationBar导航栏(七)

系统导航栏同样也是在StatusBar中被创建的,经过层层调用,最终是调用导航栏控制器NavigationBarController的createNavigationBars方法来创建导航栏窗口。NavigationBarController最终是调用NavigationBar的createView方法来创建导航栏并返回导航栏视图。1、上面我们分析完了状态栏的创建过程,下面我们再来简单分析一下系统导航栏的创建过程。3、NavigationBar的createView方法如下所示。

2025-01-16 09:00:00 782

原创 Android SystemUI——StatusBar视图创建(六)

上一篇文章我们介绍了 StatusBar 的构建过程,在 makeStatusBarView() 中获得 FragmentHostManager,用来管理 StatusBar 的窗口。

2025-01-15 08:49:07 638

原创 Android SystemUI——StatusBar状态栏构建(五)

通过前面的分析我们知道,SystemUI 的所有组件实例都是通过和 Dagger2 相关的 ComponentHelper 类得到的,该类中的 SystemUI 组件实例最初是通过 Dagger2 的依赖注入得到的,而 Dagger2 在实例化 SystemUI 组件的时候,会调用对应组件的构造方法。源码位置:/frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java。

2025-01-15 08:48:49 747

原创 Android SystemUI——使用Dagger2加载组件(四)

SystemUI模块在源码中的路径为framework/base/package/SystemUI,本质上来说它也是一个APK(Android应用程序包)。虽然SystemUI在技术层面上是一个APK,但它的角色和行为远远超出了普通应用程序的范畴,作为一个系统级别的应用,它不仅享有更高的权限,而且对于维持Android设备的基本操作和用户体验至关重要。

2025-01-14 09:29:37 1215

原创 Android SystemUI——初始化流程(三)

1、Android 系统在启动之后,首先会Zygote进程,Zygote进程又会进一步启动 SystemServer进程,它会启动各种系统所需要的服务,在监听AMS启动完毕之后,还会启动SystemUIService。2、在启动SystemUIService服务之前,系统首先会创建SystemUI对应的进程,获取SystemUIAppComponentFactory实例对象,调用instantiateApplicationCompat创建SystemUIApplication实例对象并设置回调方法。

2025-01-14 09:29:12 669

原创 Android SystemUI——服务启动流程(二)

在 Andorid 系统源码中,package/apps下放的是系统内置的一些 APP,例如 Settings、Camera、Phone、Message 等等。而在 framework/base/package 下,它们也是系统的 APP,SystemUI 就在此目录下。它控制着整个 Android 系统的界面,但其实他也是一个 APP,不同于一般的 APP,它不可卸载也不可以被第三方应用替换。对于用户而言,SystemUI 的改动是最能直观感受到的。

2025-01-13 08:58:32 1033

原创 Android SystemUI——基础简介(一)

Android SystemUI 是指 Android 操作系统中的系统用户界面,它是用户与设备交互的界面。SystemUI 提供了状态栏、导航栏、通知中心等重要的用户界面元素,这些元素可以帮助用户快速地访问设备的各种功能和信息。

2025-01-13 08:58:10 1000

原创 Android Audio实战——音频流数据dump(十)

在中已经对音频链路进行了分析,并且也分析了 dump pcm 数据的相关节点,这里我们来看一下 dump pcm 数据的详细代码。

2024-12-19 09:48:49 411

原创 Android Audio实战——混音重采样空数据(九)

在 Android 11 的项目中,多媒体与语音混音时,出现了有异响的情况。从 dump 看是由于语音数据出现卡顿,并且结合 Log 内容可以看到出现此问题是由于在重采样时,获取缓冲区数据出现 underrun,造成重采样出现空数据。所以接下来需要分析混音流程中重采样产生 underrun 的原因。

2024-12-19 09:46:38 239

原创 Android Audio实战——音频多声道混音适配(八)

上一篇文章我们修改了在 Android 11 中适配 7.1.4 声道的相关常量定义及部分代码,这里我们来看一下另外两个部分重要逻辑的修改及优化。在音频处理过程中,经常需要将不同采样率的音频统一到相同的采样率,以便进行进一步处理。而在 AudioMixer 中,很可能会使用 AudioResampler 来统一不同音频流的采样率。AudioMixer 主要负责混合多个音频流,调整音量,处理声道等。同时需要处理来自不同采样率的音频流。

2024-11-27 16:15:41 627 1

原创 Android Audio实战——音频多声道基础适配(七)

这篇文章以在 Android 11 增加对 7.1.4 声道(12 声道)的支持为例,做出如下修改:添加 7.1.4 声道的相关常量定义,并引入 FCC_LIMIT 常量记录支持的最大声道数,方便后期维护。修改源码中使用 FCC_8 判断最大值的代码(目前就想到这些,后续发现继续添加),使用新常量 FCC_LIMIT 进行判断。修改获取支持最大通道数的相关代码。到这里其实还没完,还有两个比较重要的部分需要修改,由于篇幅原因我们方法下一篇文章继续分析。

2024-11-27 16:13:32 764 3

原创 Android Audio基础——音频输出声道设置(十九)

在音频系统中,多声道信息通常用于描述音频信号的多个独立通道。这些通道可以包括常见的立体声(左、右)、环绕声(前、后、中心、低频等)以及触觉反馈通道。触觉反馈(Haptic)主要用于增强用户体验,如游戏中的振动效果。这里我们主要关注音频通道。

2024-10-24 09:02:28 1718

原创 Android Audio基础——音频流重采样(十三)

在音频处理过程中,音频流重采样是一个常见的需求,尤其是在不同设备之间进行音频传输或播放时。重采样就是将不同采样率的音频统一到相同的采样率(例如,将 44.1 kHz 的音频转换为 48 kHz 的音频),主要用于解决输入音频流的采样率与输出设备支持的采样率不匹配的问题。

2024-10-24 09:02:00 880

原创 Android Audio基础——音频混合器介绍(十二)

在 Android 平台上,音频混合器 AudioMixer 主要用在 AudioFlinger 里,将多路音频源数据混音(包括音频叠加、音量控制、音频效果添加及处理声道等),以方便送进音频设备播放出来。位于 framework 的音频处理模库 libaudioprocessing(frameworks/av/media/libaudioprocessing)中。

2024-10-23 08:49:40 1057

原创 Android Audio基础——音频混音结束处理(十一)

上一篇文章主要介绍了混音线程 MixerThread 的创建及混音流程的处理过程,这里我们看一下完成混音后的调用流程。

2024-10-23 08:49:16 1200

原创 Android Audio基础——音频混音线程介绍(十)

MixerThread 是 Android 音频输出的核心部分,主要负责将多个音频流混合成一个输出流,通常用于处理多个音频源(如音乐播放器、语音通话、系统提示音等)的混音操作,混音后的音频数据会被发送到音频硬件(如扬声器或耳机)进行最终输出。大多数 Android 的音频都需要经过 MixerThread 进行混音后再输出到音频设备。

2024-10-22 09:26:08 1090 2

原创 Android SELinux——neverallow问题处理(十六)

遇到 neverallow 规则问题,千万别急着去注释/剔除里面原有的规则(原生的尽量别动)。增加 allow 规则是常见的解决办法,但是随着 android 版本的升级,系统对 SELinux 的管控越来越严,增加了大量的 neverallow。一般情况下,向默认标签授予权限的做法是错误的,其中许多权限都是 neverallow 规则所不允许的。按照上面方法去添加 SELinux 可能会违反了 neverallow 规则,编译时候会报 neverallow 相关的错误。

2024-10-22 09:24:15 1492

原创 Android SELinux——添加策略实例(十五)

通过前面的文章,我们基本了解在 Android 系统中 SELinux 策略配置和基本语法,这里我们就来看一些常见的问题及其解决方案。这里我们主要看通过 allow 添加策略的方案。

2024-10-21 09:01:36 596

原创 Android SELinux——常见问题处理思路(十四)

然后用 make selinux_policy 编译,然后 push 相关分区下的 etc/selinux。直到没有 avc 报错为止。

2024-10-21 09:00:53 678

原创 Android SELinux——调试工具audio2allow介绍(十三)

audit2allow 工具可以获取 dmesg 拒绝事件并将其转换成相应的 SELinux 政策声明。因此,该工具有 助于大幅加快 SELinux 开发速度。audit2allow 包含在 Android 源代码树中,会在您基于源代码构建 Android 时自动编译。

2024-10-17 09:09:02 1415

原创 Android SELinux——添加新服务策略(十二)

通过前面的学习我们也大致了解 SELinux 的相关只是,这里我们就来看一下实际开发中,如果需要为厂商新增的一个自定义服务添加相关权限该如何操作。

2024-10-17 09:08:38 991

原创 Android SELinux——其他常见策略⽂件(十一)

通过前面的文章内容,我们了解了 Sepolicy 的相关语法和书写规范,这里我们来看一下系统中自带的一些比较重要的策略相关文件。

2024-10-16 08:56:26 763

原创 Android SELinux——上下文Context源码(十)

通过前面的文章我们知道,SELinux 中的上下文(contexts)包含很多类型,这里我们就来看看Androd 源码中 上下文 SELinux Contexts 的代码结构。

2024-10-16 08:55:44 1194

页面跳转与数据回传

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

2015-02-16

Android控件的简单使用

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

2015-02-16

通知Notification

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

2015-01-28

布局优化Demo

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

2015-01-27

ScorollView简单使用

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

2015-01-23

ViewFlipper简单使用

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

2015-01-21

ViewPager简单使用

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

2015-01-21

Fragment使用

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

2015-01-20

进度条简单使用和自定义

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

2015-01-16

下拉列表使用

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

2015-01-16

日期时间选择

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

2015-01-16

广播使用Demo

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

2015-01-14

ContentProvider测试Demo

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

2015-01-14

ContentProvider使用

使用ContentProvider,实现应用程序的数据共享。

2015-01-14

添加查询联系人信息

实现手机联系人的添加和查询功能,没有积分的可以去http://blog.youkuaiyun.com/c19344881x/article/details/42679795,

2015-01-14

本地文件读写

主要实现本地文件的创建以及读写操作。没有积分的可以搜索《Android开发存储方式详解之本地文件读写实例》查看源码。

2015-01-13

自定义导航栏

代码中有详细的注释,功能比较简单,主要是学习使用,有积分的可以下载支持一下,如果实在没有积分可以查找我的《Android 自定义控件详解》这篇文章学习。

2015-01-09

WebView JS方法调用

在WebView页面上的按钮点击事件响应本地类中的方法。

2015-01-07

WebView文件下载

用于实现WebView页面中的文件下载功能。

2015-01-06

phonegap-2.9.1.zip

PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台.

2014-11-24

HCI Log分析工具-CPAS-11

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

2024-04-17

Android Audio相关流程时序图

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

2023-11-30

Android Radio相关流程时序图

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

2023-09-01

Android 蓝牙开发相关知识总结

Android 蓝牙开发相关知识总结

2023-03-07

SurfaceFlinger学习笔记总结

SurfaceFlinger学习笔记总结

2023-03-07

MinGw 安装包,版本0.6.2

MinGw 安装包,版本0.6.2

2023-03-07

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

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

2023-01-06

Android Studio生成自己的so库

Android Studio生成自己的so库

2023-01-06

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

本地实现U盘扫描功能SDK,无法直接运行,需要自己编译成SDK在调用。 参考:https://blog.youkuaiyun.com/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

jai-imageio和swingx.jar.zip

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

2021-12-16

Android端Socket实现聊天功能

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

2021-10-11

SocketDemo.zip

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

2021-09-24

竖直滚动TextView

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

2016-01-18

滚动选择控件

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

2015-08-25

断点续传下载

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

2015-05-19

AsyncTask异步加载使用

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

2015-05-15

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

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

2015-04-14

手势识别实现

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

2015-02-26

Service使用

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

2015-02-25

空空如也

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

TA关注的人

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