Calvin880828
关注Android最新技术,开发Android相关的技术
展开
-
深入解析Android的Sound Trigger中间件架构
在现代移动设备中,应用程序对声音事件的检测需求越来越多,如热词检测和背景音乐识别等。为了实现低功耗和隐私敏感的声音事件检测,Android引入了Sound Trigger中间件。本文将详细介绍Sound Trigger的架构、工作原理以及其在不同层次中的职责。原创 2024-06-29 00:00:29 · 247 阅读 · 0 评论 -
探索AOSP中的RRO:运行时资源覆盖的奥秘
运行时资源覆盖(RRO)是一种允许开发者和设备制造商在运行时动态修改Android应用程序资源的技术。这些资源包括XML布局、图像、样式等,它们共同构成了任何Android应用程序的用户界面和外观。通过RRO,可以在不修改原始资源的情况下定制应用程序的UI组件。所有UI组件,包括上述的XML、布局、字符串、颜色、样式、主题、图像和图标(drawable),都存在于Android应用程序和框架源代码中的“res”文件夹中。这些资源都可以被RRO系统定制和覆盖。原创 2024-06-11 18:19:34 · 171 阅读 · 0 评论 -
Android的xTS测试概览解析:CTS、VTS、GTS等
Android拥有数十亿的设备,其成功归功于其对兼容性的承诺。这意味着为一个Android手机设计的应用程序通常应该在另一个上正常工作,即使它们具有非常不同的硬件。这种兼容性不是偶然的;它是通过广泛的测试精心设计的。xTS测试套件在这个过程中起着关键作用。原创 2024-06-07 09:59:45 · 332 阅读 · 0 评论 -
Framework | Android Rescue Party: 提升设备恢复力的机制
Rescue Party 作为 Android 系统中的一项重要机制,通过自动检测和恢复系统关键服务的崩溃,显著提高了设备的恢复能力,保障了用户的使用体验。这一机制在后台默默运行,确保设备在遇到系统问题时能够快速恢复正常状态,减少因系统故障带来的困扰。原创 2024-06-07 09:49:46 · 34 阅读 · 0 评论 -
揭秘Android Framework:探索AOSP开发的奥秘
Android Framework是构建在Android操作系统之上的一层软件框架,为开发者提供了丰富的API和工具,用于构建高质量的Android应用程序。它包括了各种系统服务、管理器和类库,涵盖了从UI设计到网络通信等各个方面。如果你渴望成为一名优秀的Android开发者,那么深入了解Android Framework和AOSP开发技术将是你必不可少的一部分。免费领取Android Framework开发资料,探索Android Framework的奥秘,开启你的Android开发之旅吧!原创 2024-04-29 16:16:48 · 469 阅读 · 0 评论 -
更好,更快,更健壮的Android时区更新方式
又到了一年一度我们要调整时钟的时候了!哦,等等,你的安卓设备是不是已经自动调整了?对于许多生活在各国的安卓用户来说,这可能并不奇怪。例如,在美国、欧盟和英国,政府已经有一段时间没有改变他们的时间立法,因此用户每天早上醒来都能看到准确的时间。但是,当时间法律发生变化会发生什么呢?如果全球范围内看,政府可以并且确实经常改变他们的时间立法,有时甚至每年都会变化,而安卓设备必须跟上以支持我们的全球用户群。为了执行某一地区的时间立法,安卓设备必须遵循一套编码规则。那么,这些规则是什么呢?原创 2024-04-29 16:01:54 · 70 阅读 · 0 评论 -
一文带你全面深入了解Android ANR
ANR代表应用程序无响应!这意味着用户正在操作Android设备,但没有触摸或点击的反应,看起来像是卡住或卡死,最终会以ANR对话框或应用程序崩溃结束。ANR对话框根据用户体验,ANR是一个应用程序可能向用户提供的最糟糕的问题之一,让用户在做重要事情时感到沮丧。总的来说,在编写应用程序时非常重要的一点是,我们实现的一切都不应该阻塞UI或造成糟糕的用户体验是首要关注点。原创 2024-03-25 16:20:11 · 224 阅读 · 0 评论 -
更好,更快,更健壮的Android时区更新方式
又到了一年一度我们要调整时钟的时候了!哦,等等,你的安卓设备是不是已经自动调整了?对于许多生活在各国的安卓用户来说,这可能并不奇怪。例如,在美国、欧盟和英国,政府已经有一段时间没有改变他们的时间立法,因此用户每天早上醒来都能看到准确的时间。但是,当时间法律发生变化会发生什么呢?如果全球范围内看,政府可以并且确实经常改变他们的时间立法,有时甚至每年都会变化,而安卓设备必须跟上以支持我们的全球用户群。为了执行某一地区的时间立法,安卓设备必须遵循一套编码规则。那么,这些规则是什么呢?原创 2024-03-25 16:19:44 · 412 阅读 · 0 评论 -
如何赋予第三方App以AOSP系统签名权限?
OEM应用程序是指由制造商预装在Android设备上的特定应用程序。一些应用程序属于系统应用程序,需要使用系统级权限的API。这些权限和API允许应用程序与Android操作系统深度交互,并访问高级功能。系统级权限授予应用程序特权访问以执行特定操作或访问敏感资源,比如修改系统设置、访问受保护的存储、管理网络连接、控制硬件功能等。通常,厂商使用Android.bp AOSP构建配置文件和Soong构建系统来构建OEM应用程序。这样可以让厂商在Android设备上预装他们的应用程序。原创 2024-03-18 12:10:58 · 338 阅读 · 0 评论 -
如何在AOSP中添加系统Binder服务?
Android 系统服务在向高级应用程序暴露硬件和 Linux 内核的低级功能方面起着关键作用。相较于普通的 Android 服务,系统服务是由 SystemServer 启动的,因此它们作为系统进程运行,拥有普通 Android 服务无法获得的额外特权。下面是我们都熟悉的下图将帮助你了解系统服务的基本工作原理。从应用程序的中调用调用 SystemServer。原创 2024-03-08 16:26:59 · 226 阅读 · 0 评论 -
重塑Android通信新格局:探秘Android 8.0之后的Binder架构革新
在Android系统中,进程间通信(IPC)是至关重要的,不同组件之间需要相互通信以完成各自的任务。作为Android系统中最核心的进程间通信机制之一,Binder扮演着至关重要的角色。Binder通过轻量级的线程间通信方式,实现了跨进程通信,包括进程间对象传递、远程方法调用等功能。相比于传统的Socket通信或文件操作,Binder具有更高效、更快速的通信方式,使得Android系统在处理复杂的多进程场景时更加高效。原创 2024-03-06 11:33:22 · 324 阅读 · 0 评论 -
Preferences为何优先选择Datastore,尽管它速度慢一些...
Preferences Datastore 在性能上虽然较慢,但相对于 Shared Preferences,仍应该优先选择它。以下是原因分析:几年前,Android 引入了一个名为 Preferences Datastore 的新存储库,旨在取代 Shared Preferences 成为默认的键-值存储,以更有效地存储可以以键值方式访问的项目。原创 2024-03-05 15:59:35 · 279 阅读 · 0 评论 -
Android系统启动流程
1. 启动linux,加载linux kernel并启动初始化进程init2. init进程,解析rc文件,启动进程,其中init.rc文件中有很多service,包括 zygote 等3. zygote中启动Android运行环境4. 启动Android虚拟机5. JNI调用启动com.android.internal.os.ZygoteInit6. 在zygote进程中启动sy...原创 2018-03-04 13:18:23 · 187 阅读 · 0 评论 -
2024阅读AOSP源码的正确打开姿势
在Android系统开发中,阅读AOSP(Android Open Source Project)源码是非常重要的环节。然而,如何构建一个优雅的阅读环境却是一个不容忽视的问题。本文将介绍不同工具和方法下阅读AOSP源码的正确姿势,并对比其优缺点。原创 2024-02-19 12:00:43 · 1450 阅读 · 0 评论 -
深入解析Android AIDL:实现跨进程通信的利器
AIDL支持多种数据类型,包括基本数据类型、自定义数据类型和其他AIDL接口类型。在AIDL中,自定义数据类型需要使用parcelable关键字进行声明。原创 2024-02-18 15:40:46 · 1370 阅读 · 0 评论 -
探索Xposed框架:个性定制你的Android体验
Xposed框架是一种强大的工具,它允许用户在不修改APK文件的情况下修改Android系统的功能和行为。通过Xposed框架,用户可以实现对系统的个性化定制,而无需深入编程或刷写定制ROM。在本文中,我们深入探讨了Xposed框架在Android系统中的作用和应用。通过分析其原理、功能和发展前景,我们可以看到Xposed框架在个性化定制领域的重要性和潜力。Xposed框架以其灵活的模块化设计和强大的定制能力,为用户带来了个性化定制的乐趣和便利性。原创 2024-02-09 11:11:07 · 1630 阅读 · 0 评论 -
Android13多媒体框架概览
Android 多媒体框架旨在为 Java 服务提供可靠的接口。它是一个系统,包括多媒体应用程序、框架、OpenCore 引擎、音频/视频/输入的硬件设备,输出设备以及一些核心动态库,比如 libmedia、libmediaplayservices 等。媒体服务器创建相应的媒体服务以供多媒体应用程序使用。媒体服务器与 Libmedia 之间的通信构成了客户端-服务器(CS)模型。PV 播放器通过解复用媒体数据流、解码视频/音频数据、同步视频和音频时间,并发送解码后的数据来处理媒体数据流。原创 2024-02-06 17:39:04 · 2311 阅读 · 0 评论 -
2024是时候进军Android Framework开发,解锁黑科技了
Android Framework核心源码笔记》是一份由资深Android开发者所编写的资料,其中包含了很多他在多年Android Framework开发中积累的经验与技巧。这份资料不仅涵盖了Init、Zygote、SystemServer、Binder、Handler、AMS、PMS、Launcher等关键知识点的记录,还提供了丰富的案例和代码示例,方便读者更好地理解并运用所学知识。该资料的作者是一位前三星项目经理,拥有十年以上的Android底层框架经验。原创 2024-02-06 15:46:37 · 1145 阅读 · 0 评论 -
2024是时候转Framework开发了
随着科技的不断发展,移动设备已经成为了现代人生活中必不可少的一部分。作为移动设备操作系统之一,Android系统在市场中占有很大的份额。因此,Android应用程序开发和Framework开发变得越来越受欢迎。原创 2024-02-06 12:01:54 · 1124 阅读 · 0 评论 -
Android SELinux:保护您的移动设备安全的关键
移动设备在我们的生活中扮演着越来越重要的角色,我们几乎把所有重要的信息都存储在这些设备上。然而,随着移动应用程序的数量不断增加,安全性也变得越来越关键。这就是为什么安卓系统引入了SELinux(Security-Enhanced Linux)的原因。原创 2024-02-01 10:32:35 · 1257 阅读 · 0 评论 -
AOSP开机动画定制指南(基于Android13)
有一些工具可以将视频转换为所需的“JPG”和“PNG”文件,从而创建Android的自定义开机动画。此外,您还可以将GIF文件转换为Android中的个性化开机动画。如果您没有特定的视频可以转换,您可以使用静态图像或浏览预先制作的开机动画。许多Android开机动画下载可供选择。各种论坛都提供了他们对于Android上顶级自定义开机动画的推荐。然而,在下载文件时要小心,以避免在设备上安装任何恶意内容。原创 2024-01-27 16:13:50 · 1356 阅读 · 0 评论 -
Android Framework | AOSP源码下载及编译指南(基于Android13)
AOSP(Android Open Source Project)是Android操作系统的开源项目,通过下载和编译AOSP源码,您可以获得原始的Android系统,并进行定制和开发。本教程将向您介绍如何下载AOSP源码并进行编译的步骤。如何只是浏览查看AOSP源码,则没必要下载源码,可以使用google提供的Code Search工具进行浏览查阅,这个工具用起来堪比IDE,并且非常流畅,但是访问这个站点需要翻墙操作。原创 2024-01-15 17:30:11 · 1817 阅读 · 0 评论 -
Google推出Telecom Jetpack库,让Android通话应用创建更简单
Telecom Jetpack库的最新Alpha版本已经推出。该库提供了多个API,以简化Android开发者创建语音和/或视频通话应用程序的过程,支持常见功能,例如接听/拒绝、音频路由等等。原创 2024-01-12 16:47:32 · 651 阅读 · 0 评论 -
如何将MIUI系统转换为AOSP Material You系统?
许多安卓用户都喜欢使用原始设备制造商(OEM)ROM,也有一部分用户喜欢更接近原版安卓系统(AOSP)的体验。然而,MIUI系统往往难以达到用户希望的AOSP外观和灵活性。在本文中,我们将介绍如何将MIUI系统转换为AOSP Material You系统。原创 2024-01-11 14:52:30 · 1229 阅读 · 0 评论 -
数10亿设备正在运行的开源项目AOSP
AOSP(Android 开源项目)是与流行的智能手机系统 Android 一同运行的各种应用程序的基础。不同的手机制造商如三星、华为、索尼和谷歌,在基本的 Android 操作系统上添加了自己的定制功能和想法。AOSP 是一个开源的操作系统开发项目,由谷歌拥有和监督。任何人都可以自由地为 AOSP 贡献代码和修复程序,但谷歌负责整体方向和部分开发过程的管理。AOSP 定期获取适用于 Android 的最新错误修复和安全补丁。谷歌还在每年的 I/O 开发者大会上公布操作系统的关键新功能。原创 2024-01-11 14:21:13 · 1070 阅读 · 0 评论 -
Rockchip平台双屏异显功能实现(基于Android13)
Rockchip SDK平台支持两种不同的异显方案:Android Presentation和Android Activity指定屏幕启动。使用Android Presentation方案,需要在APP开发中调用相应接口以使指定视图(Presentation视图是一种特殊的对话框类型视图)在副屏上显示。原创 2024-01-05 10:11:55 · 1534 阅读 · 0 评论 -
Rockchip平台Android应用预安装功能(基于Android13)
Android上的应用预安装功能,主要是指配置产品时,根据厂商要求,将事先准备好的第三方应用预置进Android系统。原创 2024-01-02 17:40:10 · 921 阅读 · 2 评论 -
探究Android DreamService的梦幻世界
在Android开发中,DreamService是一种特殊类型的服务,它可以用于创建梦幻世界的屏保应用。梦幻世界是一种用户界面显示模式,当设备进入空闲状态时,系统会自动启动DreamService并显示相应的屏保内容。DreamService不仅可以展示各种动画效果和图像,还可以响应用户的交互操作。原创 2023-12-27 16:22:42 · 1542 阅读 · 0 评论 -
在Jetpack Compose中使用ExoPlayer实现直播流和音频均衡器
ExoPlayer与Media3的能力结合,为Android应用程序播放多媒体内容提供了强大的解决方案。在本教程中,我们将介绍如何设置带有Media3的ExoPlayer来支持使用M3U8 URL进行直播流。此外,我们还将探讨如何集成音频均衡器,为用户提供个性化的音频体验。使用ExoPlayer进行直播流涉及到利用ExoPlayer库的强大能力,在互联网上实时播放多媒体内容。在这个探索中,我们将深入了解ExoPlayer如何实现无缝播放直播流URL的复杂性,为用户提供沉浸式体验。原创 2023-12-23 12:21:04 · 2338 阅读 · 0 评论 -
在AOSP源代码树中添加新Product
为了区分二者,可以将“device”看作是与硬件相关的芯片平台级配置的领域,将“product”视为与软件相关的配置的领域。这四个元素分别放置在两个不同的目录中:制造商的产品配置放置在“device”目录中,Google官方内置的AOSP产品放置在“build/target”目录中。在之前关于编译Android内置产品进行验证的基础上,我们现在将注意力转向添加自己的产品的过程。这种简单直接的方法简化了硬件配置方面的工作,并确保与aosp_x86_64产品兼容,使其易于理解和使用。原创 2023-12-21 09:38:24 · 1073 阅读 · 0 评论 -
Android Telephony概览
Android架构的顶层,包括用户互动的所有应用程序,如设备上安装的应用程序。供应商RIL实际上是Modem的软件代码,Modem硬件供应商提供与该Modem相对应的软件,以便硬件和供应商之间的通信能够顺利进行,数据可以轻松地从硬件传输到供应商RIL到较高层。我们知道我们的Android操作系统设备配置有多个网络功能,我们在日常生活中经常使用,如电话呼叫、短信、彩信、数据、SIM卡和其他网络功能。所有这些与网络相关的支持都属于电话。一个软件模块或软件包,包含与电话相关的类和库,被称为电话框架。原创 2023-12-19 20:23:26 · 542 阅读 · 0 评论 -
Android系统IPC机制
在安卓系统上,我们知道每个应用都在自己的进程中运行。当应用加载时,应用程序管理器通知Zygote。Zygote分叉自身并复制虚拟机(VM)。因此,应用程序获得一个具有加载库的“热”VM。每个安卓应用都是沙盒化的,因此每个进程相互独立。沙盒概念用于管理或包含不同级别的权限,限制在每个个体应用中。因此,它需要IPC来在应用/服务/系统服务之间进行通信。在一个进程下,可能有多个线程,它们共享进程内存,但有自己的堆栈。IPC是任何软件系统/操作系统的基础。安卓提供了两种实现IPC的方式。原创 2023-12-19 19:24:08 · 745 阅读 · 0 评论 -
Android系统组件
当我开始研究安卓系统组件时,我想知道从哪里开始。我能够确定几个实际构成安卓栈的组件。我经常不清楚哪个组件负责什么。经过一些研究和实验,我得到了答案,所以我想在这里分享一下,供其他寻找信息的人参考。原创 2023-12-19 18:21:13 · 1003 阅读 · 0 评论 -
Android定制ROM简介
维基百科对此的定义简洁而准确。操作系统(OS)是管理计算机硬件、软件资源并为计算机程序提供通用服务的系统软件。操作系统管理数字设备,包括所有移动手机。移动操作系统管理其硬件(例如处理器、内存、摄像头、电池、WiFi)、软件资源(例如剪贴板、屏幕键盘)并为程序(在移动世界中通常称为应用)提供通用服务(例如访问摄像头、互联网、库)。Android和iOS是两个众所周知的移动操作系统。原创 2023-12-19 17:53:01 · 1199 阅读 · 0 评论 -
AOSP开机动画调测技术点(基于Android13)
开启动画启动规则定义在中disabledoneshotservice: 指明服务的名称为"bootanim",即开机动画服务。: 指定了开机动画的执行文件路径为"/system/bin/bootanimation"。: 表示此服务属于核心服务,并且是与动画相关的服务。: 指定服务运行的用户为"graphics"。: 指定服务运行的组为"graphics audio",表示具有这两个组的权限。disabled: 表示此服务当前处于禁用状态,不会自动启动。oneshot。原创 2023-12-07 09:21:25 · 537 阅读 · 4 评论 -
高通R、S、T高版本AOSP源码编译指南
做过AOSP源码开发的都知道,只需要经过下面简单的2步即可完成编译环境的引导和初始化。如果不清楚自己想要lunch的项目,可以直接执行lunch命令,然后从lunch出来的项目列表中选择需要项目的索引或者项目名称。原创 2023-12-04 15:47:03 · 669 阅读 · 1 评论 -
Android Init系统:引领设备启动的先锋
Init系统是一个操作系统启动的必要组件,负责在启动时初始化所有系统资源、服务和应用程序。在Android设备中,Init系统起到了至关重要的作用,它是启动过程中的第一个进程,负责启动和管理其他所有进程和服务。此外,Init系统还具有系统资源配置、故障恢复和定制化等重要功能。Init系统最初是由Unix系统引入的,在Linux操作系统中得到广泛应用。随着移动设备的普及,Android系统的出现使得Init系统得到了更广泛的应用。原创 2023-12-03 23:55:34 · 396 阅读 · 1 评论 -
解密Android动态权限:保护用户隐私与应用安全的关键一步
在Android系统中,权限机制是保护用户隐私和应用安全的重要组成部分。Android应用需要获取一些敏感信息或执行某些敏感操作时,必须先获取相应的权限。例如,应用需要访问用户通讯录、拨打电话或发送短信等功能,都需要事先向用户请求相应的权限。这种权限机制能够有效避免恶意应用对用户数据和设备进行攻击或滥用。然而,在Android 6.0之前,应用在安装后就会默认获取所有所需的权限,这种权限管理方式很容易导致应用滥用权限和侵犯用户隐私。原创 2023-12-03 23:26:49 · 229 阅读 · 0 评论 -
Rockchip平台rk3588源码下载编译(基于Android13)
需要向RK申请SDK使用权限。由于AOSP使用的repo管理源码仓库,所以为了方便开发者获取repo工具,RK也提供了repo工具的下载。原创 2023-11-20 18:46:53 · 2482 阅读 · 3 评论 -
AOSP编译系统演进:从Make到Ninja的技术升级(Android13)
在Android 7.0之前,Android的编译系统主要使用GNU Make和Android.mk进行构建规则的描述和执行。然而,随着项目规模的扩大,Makefile组织方式导致了编译时间的增长等问题。为了解决这些问题,从Android 7.0开始,Google引入了Soong构建系统,Soong 构建系统正好提供了 Android build 所需的灵活性。Soong 构建系统是在 Android 7.0 (Nougat) 中引入的,旨在取代 Make。原创 2023-11-17 17:47:09 · 666 阅读 · 0 评论