自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 在 Android 框架中,接口的可见性规则

在 Android 系统开发中,不同包名下的接口默认访问权限是不一样的。可以被任意普通 App 调用。

2025-06-04 19:53:28 487

原创 android编译过程中的mk文件的扫描机制

扫描系统中所有的Android.mk,最终会被存放到,然后编译过程中加载系统中所有的Android.mk,

2025-05-30 11:22:49 133

原创 预装apk遇见Verifying uses-libraries:报错解决办法

用RELAX_USES_LIBRARY_CHECK=true重新构建(这将设置编译器过滤器“verify”并禁用dexpreopt中的aot编译)在产品makefiles中设置PRODUCT_BROKEN_VERIFY_USES_LIBRARIES:= true。

2025-05-29 22:10:26 190

原创 System Properties 和 Settings.Global 的区别

对比维度层级Native 层 / Init 层Framework 层修改难度复杂(需刷机)简单(API 或命令)生效时间启动初期Framework 启动后适用对象系统级、底层模块是否适合 App 使用❌ 否✅ 是。

2025-05-28 11:14:07 568

原创 Android 构建系统中常见的 .mk 文件及其作用

文件名所属层级主要作用产品级定义 lunch 目标、产品配置文件device.mk产品级定义模块依赖、系统特性板级定义硬件参数、分区大小、内核选项Android.mk模块级定义单个模块的构建规则产品级添加 lunch 目标产品级定义预编译模块init.*.rc系统级控制系统启动行为fstab.*系统级定义文件系统挂载表系统级控制设备节点权限系统级定义多媒体编码能力Treble定义 HAL 接口和服务。

2025-05-28 11:03:24 555

原创 系统属性 System Properties 的详解

类型推荐程度使用场景✅ 强烈推荐系统通用属性、客户定制属性✅ 推荐SoC 厂商、驱动相关属性✅ 推荐ODM 定制设备相关属性❌ 不推荐已被 system_ext 替代⚠️ 慎用控制启动流程、init 行为⚠️ 慎用覆盖所有 build.prop 中的属性⚠️ 慎用默认属性,早于 init 加载如果你正在开发基于 AOSP 的系统,建议统一使用来添加自定义属性,并避免使用,除非你明确知道它的作用。特性build.prop 中的属性数据库中的数据存储方式文本文件。

2025-05-28 10:53:41 955

原创 Android构建系统中的mk文件中内置的Makefile函数

函数名描述清空所有 LOCAL_* 变量,准备定义新模块构建静态库(.a)构建动态库(.so)构建可执行程序构建 APK 安装包构建预编译模块(如第三方 .apk 或 .so)

2025-05-28 00:23:28 600

原创 为什么Android 添加系统服务中要引进SoundManager这种中间层去调用系统服务的接口

代理模式的实质确实是 “隔离变化,稳定接口”。在 Android 系统服务中:客户端:只看到 SoundManager.playSound() 这样的稳定方法。代理层:默默处理了 Binder 通信、权限、缓存等脏活累活。服务端:可自由升级实现,甚至替换 IPC 机制(如从 Binder 改为共享内存),只要代理层适配好,应用代码毫发无损。这种设计是大型系统(如 Android)保持长期兼容性的关键架构决策之一。

2025-05-22 13:51:14 322

原创 App开发中为什么import android.app.Activity;

frameworks/base/core/java/android/app/ 是源码中的路径,而 android.app.* 是这些类在 SDK 中的公开接口形式。总结: android.app.* 是被编译进 Android SDK 的标准 API 部分,以 android.jar 等形式存在。不同版本的 Android SDK(如 Android 10、11、12)会包含不同版本的 android.app.* 类。android.app.* 是 Android 官方 SDK 中定义的标准包名。

2025-05-22 11:50:36 474

原创 Android 添加系统服务的完整流程

在。

2025-05-22 11:30:27 299

原创 java中为什么那么多连续继承的抽象类?

单一职责原则(Single Responsibility Principle)接口隔离原则(Interface Segregation Principle)里氏替换原则(Liskov Substitution Principle)对扩展开放,对修改关闭。开闭原则(Open-Closed Principle)新增功能只需继承已有抽象类,无需重复实现。所有子类必须实现某些抽象方法,保证一致性。每个抽象类定义明确接口,避免冗余依赖。子类可以替换父类使用,行为一致。每一层只做一件事,不混杂逻辑。

2025-05-21 20:17:26 271

原创 在Settings的一级菜单中增加一个选项

TopLevelAdvancedPreferenceController:控制是否显示。NetworkSettingsFragment:点进去的fragment页面。Helper:一般是获取数据类。

2025-05-21 18:39:14 221

原创 Settings中增加PreferenceController遇到的继承类TogglePreferenceController 和 AbstractPreferenceController

作用:它是所有 Preference 控制器的基类。提供了与 Preference 生命周期相关的基本方法实现,例如:getAvailabilityStatus():控制 Preference 是否可用或是否显示。displayInSystem():决定该 Preference 是否应该显示在系统设置中。handlePreferenceTreeClick():处理 Preference 被点击的事件。适用于各种类型的 Preference(不局限于开关控件)。

2025-05-21 18:14:09 245

原创 Android 中拖拽从一个组件到另外一个组件的写法(跨容器拖拽)

【代码】Android 中拖拽从一个组件到另外一个组件的写法。

2025-05-20 16:50:44 341

原创 安卓settings单双屏显示

方法中,创建布局之前会通过ActivityEmbeddingUtils.isEmbeddingActivityEnabled(this);去获取是否使用嵌入式显示。以上三个条件都满足时返回 true,表示启用 Activity 嵌入功能,否则返回 false。检查特性标志 SETTINGS_SUPPORT_LARGE_SCREEN 是否启用;检查是否启用了设置中的分屏功能(isSettingsSplitEnabled);检查用户设置是否已完成(非设置向导阶段);

2025-05-20 10:51:00 306

原创 对于指针的理解

2025-05-16 13:29:47 117

原创 CopyOnWriteArrayList :防止多线程并发数据错误异常

是 Java 中 java.util.concurrent 包下的一个线程安全的 List 实现类,适用于读多写少的并发场景。线程安全机制:每次修改操作(如 add, set, remove)都会创建一个新的数组副本,而读取操作不需要加锁。所属包:java.util.concurrent.CopyOnWriteArrayList。全称:Copy-On-Write(写时复制)底层结构:使用数组实现。

2025-05-16 12:31:47 123

原创 将一个list进行分20个每组进行重新保存的算法

【代码】将一个list进行分20个每组进行重新保存的算法。

2025-05-13 15:20:02 98

原创 Java 中的数据类型误导点!!!

在 Java 中,数据类型分为两大类:基本类型(Primitive Types) 和 引用类型(Reference Types)。它们的存储方式和行为完全不同。

2025-05-10 15:00:39 258

原创 java的引用理解

原因:强引用提供了最可靠、最可预测的对象生命周期控制。

2025-04-01 19:28:23 175

原创 C语言学习关键笔记

例如,当你在代码中使用 printf 函数时,实际上是在调用 stdio.h 头文件中定义的函数。如果没有包含相应的头文件,编译器将不知道 printf 是什么,从而无法编译代码。因此,头文件可以看作是一个预先准备好的代码库,你可以从中选择需要的功能来提高代码效率。stdio.h解释:是C语言标准库中的一个头文件,它定义了处理文件和标准输入/输出流的各种函数和类型。在C语言编程中,头文件扮演着至关重要的角色。它们是扩展名为 .h 的文件,头文件允许程序员在不同的源文件中重用相同的代码,而无需重复编写代码。

2025-03-27 20:32:54 255

原创 switch默认系统颜色

【代码】switch默认系统颜色。

2025-03-25 15:34:08 113

原创 记:app启动更换系统语言,app会重走生命周期

当更改系统语言后,会在这个activity中的onConfigurationChanged去响应。当系统应用设置当前系统语言,会导致当前系统应用app重启,重走生命周期,在。中添加configChanges,不随着系统语言重走生命周期。

2025-03-19 20:01:59 252

原创 Linux 常用命令

10.13 显示文件系统的磁盘空间使用情况。10.17 (需要下载meld软件)自带的文件比较命令。10.15 结束进程。10.16 查看网络。

2025-03-13 14:06:02 253

原创 Linux之系统文件目录理解

字符设备(Character Devices):以字节流的形式进行数据传输,通常不支持随机访问。例如,串口、键盘等。块设备(Block Devices):以固定大小的数据块进行传输,支持随机访问。例如,/dev/sda 表示第一个 SATA 或 SCSI 硬盘,/dev/sdb 表示第二个硬盘。表示伪终端(pseudo-terminal),常用于远程会话或图形界面中的终端模拟器。用于循环设备(loop device),可以将文件挂载为块设备。特殊设备文件,丢弃所有写入它的数据,读取时返回 EOF。

2025-03-12 18:26:07 259

原创 1.驱动学习路线

1.C语言复习(2025/3/7-2025/3/31)

2025-03-07 15:50:06 153

原创 设置中静态壁纸(WallpaperPicker)添加定制壁纸图片

1.WallpaperPicker下的res的wallpapers.xml 中增加壁纸配置在android/packages/apps/WallpaperPicker/res/values-nodpi/wallpapers.xml 中增加壁纸配置:2.在android/packages/apps/WallpaperPicker/res/drawable-nodpi/添加图片,命名为wallpaper1.png 和对应的 wallpaper1_small.pngwallpaper2.png 和对应

2025-03-07 15:09:36 243

原创 textview文本框实现跑马灯跑一次

【代码】textview文本框实现跑马灯跑一次。

2025-02-14 19:57:07 99

原创 Android系统分区概述和编译镜像包理解

【boot.img(Linux内核镜像): Android系统中,通常会把zImage ( 内核镜像uImage文件) 和ramdisk.img打包到一起,生成一个boot.img镜像文件,放到boot分区,由bootloader来引导启动,其启动过程本质也是和分开的uImage&ramdisk.img类似,只不过把两个镜像按照一定的格式合并为一个镜像而已。(相当于你电脑的C盘,用来放系统。引导分区:顾名思义,一个引导进入系统的分区,包含Android的kernel(内核)和ramdisk(内存盘)。

2025-02-11 17:25:48 463

原创 jadx反编译使用

可修改jadx-gui.bat的将4g改变8g,反编译使用不会那么卡。点击bin文件夹种的jadx-gui.bat,点击启动。例子:apk字符串找寻。

2025-02-11 10:56:27 262

原创 FragmentActivity理解

兼容性:FragmentActivity 提供了对 FragmentManager 和 FragmentTransaction 的支持。定义:FragmentActivity 是 AppCompatActivity 的基类,继承自 Activity。用途:FragmentActivity 主要用于内嵌 Fragment,并提供对 Fragment 的支持和管理。

2024-10-30 11:06:57 300

原创 [AOSPXRef]看安卓源码搜索使用解释

AOSPXRef

2024-10-22 11:47:49 428

原创 安卓14[AudioService]安全音量设置逻辑

安全音量设置逻辑

2024-10-22 11:16:50 563

原创 Android14 SystemUI 启动流程(1)

【代码】Android14 SystemUI 启动流程(1)

2024-10-15 16:17:51 761

原创 Choreographer

Choreographer

2024-09-11 21:00:38 123

原创 3.记:Android EditText接收扫码枪输入数据丢失问题

【代码】3.记:Android EditText接收扫码枪输入数据丢失问题。

2024-09-10 20:34:44 430

原创 用户id获取

2.获取当前系统的真实用户id。1.获取当前应用的用户id。

2024-09-04 10:47:30 250

原创 app的安装路径解析和应用存储数据路径解析

特权系统应用:/system/priv-app/普通系统应用:/system/app/普通三方app:/data/app/

2024-09-02 09:18:03 2179

原创 Android窗口类型的优先级

其中,最高级别的窗口类型是 TYPE_SYSTEM_ERROR 和 TYPE_KEYGUARD。这两种类型的窗口可以覆盖所有其他类型的窗口,通常用于显示系统级的重要信息或错误提示。TYPE_BASE_APPLICATION(应用基础级别)TYPE_KEYGUARD_DIALOG(锁屏对话框级别)TYPE_SYSTEM_OVERLAY(系统覆盖级别)TYPE_SYSTEM_DIALOG(系统对话框级别)TYPE_SYSTEM_ALERT(系统警告级别)TYPE_SYSTEM_ERROR(系统错误级别)

2024-08-29 10:56:30 428

原创 [Launcher3] device_profiles.xml调整桌面和各个图标的距离

【代码】[Launcher3] device_profiles.xml调整桌面和各个图标的距离。

2024-08-02 10:21:26 329

空空如也

空空如也

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

TA关注的人

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