自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (7)
  • 收藏
  • 关注

原创 HDF 和 HIDL

HDF和HIDL是分属与生态的两种技术,核心区别在于所属系统、设计目标与架构定位,前者是HarmonyOS的驱动开发框架,后者是Android的硬件抽象层接口定义语言。

2025-11-02 19:38:32 563

原创 命名导出和默认导出

定义:每个模块仅允许通过导出一个主要成员(如类、函数、对象)。特点导入时可自定义名称,无需与原名称一致。无需使用{ }包裹导入内容。通常用于模块的“主功能”导出。

2025-11-02 17:22:49 301

原创 import语法

hilog是工具对象,用于主动输出日志信息。是错误类型,用于结构化处理异步操作中的异常。开发者需要根据具体场景正确使用这两种类型。一、区分对象与类型的核心方法在鸿蒙(HarmonyOS)开发中,通过以下方式区分import语法特征对象:直接通过模块名或默认导出引入,例如,此时rpc是模块提供的功能性对象。类型:通过或大括号中显式引入的类型名称,例如,此时是错误类型的定义。使用场景对象在代码中直接调用方法或访问属性(如类型一般用于定义变量、参数或进行类型断言(如。

2025-11-02 17:17:47 438

原创 HiLog模块

是一个包含所有日志级别接口(如debug、info、warn等)和辅助方法(如isLoggable)的命名空间对象,开发者可直接调用其方法。注意:HarmonyOS 5.0+版本中,HiLog模块已归属到性能分析套件,推荐使用新的导入路径。语句导入的是一个完整的日志模块对象,可以直接使用其接口进行日志操作。该模块设计为开箱即用模式,开发者只需关注日志内容和级别选择,无需手动管理对象生命周期。HiLog模块通过ES6模块化方式导出,在HarmonyOS开发中,

2025-11-02 17:07:49 368

原创 RxJava

RxJava 的核心优势:异步操作简洁化: 通过链式调用和操作符,将复杂的异步回调变得清晰、线性。强大的数据流转换: 操作符库极其丰富,可以轻松地对数据流进行任何你想要的处理。灵活的线程控制: 几行代码就能精确控制不同任务所在的线程。错误处理统一: 在链式调用的最后提供一个统一的错误处理入口。复杂的异步操作链(例如,一个请求的结果是下一个请求的参数)。需要频繁进行线程切换的任务。处理用户交互事件流(如搜索框输入联想)。多个任务需要并行执行并合并结果。

2025-11-02 09:03:52 657

原创 Retrofit 是什么

根据 API 返回的 JSON 结构,定义对应的数据类。// Kotlin data class data class User(val login : String , val id : Int , val avatar_url : String , val html_url : String) // 或者 Java 类(使用 Lombok 或手动生成 getter/setter) /**/这是 Retrofit 的核心,使用注解来描述 API。

2025-11-02 08:39:30 678

原创 Android 设备支持 A/B 分区

(也称为“无缝系统更新”)时,其启动过程在传统流程的基础上,增加了一个关键的。,在传统启动流程之上构建了一个更健壮、用户体验更好的系统更新与启动架构。这意味着无论从哪个 Slot 启动,用户数据和设置都是一致的。总而言之,带有 A/B 分区的 Android 设备通过。这是 A/B 分区系统稳定性的关键保障。当 Android 设备支持。这是 A/B 分区的精髓所在。:对于应用和数据来说,

2025-10-19 22:44:55 1040

原创 Android 系统的启动过程

Android 系统的启动过程是一个非常复杂且精妙的流程,它涉及到底层硬件、Linux 内核、原生服务、Java 框架以及应用的协同工作。这个过程可以比作一场精密的“多米诺骨牌”接力赛。

2025-10-19 22:41:44 884

原创 View 树体系

简单来说,View 树体系是一个由View和ViewGroup对象组成的、具有层次关系的树形结构。它定义了整个用户界面的结构和组件关系。View:是所有 UI 组件的基类,是叶子节点。例如一个按钮 (Button)、一段文本 (TextView)、一张图片 (ImageView它们负责绘制自己并响应点击等事件。ViewGroup:是View的子类,是容器,是分支节点。它可以包含多个View或其他ViewGroup。例如线性布局 ()、相对布局 ()、帧布局 () 等。它们负责测量和定位其子视图。把。

2025-10-19 19:28:18 539

原创 Android显示子系统

总的来说,Android 显示子系统是一个复杂但协作精密的体系。理解其核心模块如Surface及 HAL 层的工作方式,有助于你洞察应用界面从绘制到显示的完整旅程。

2025-10-19 19:21:14 740

原创 Android基础知识

Android系统采用分层架构设计,分为应用层、应用框架层、系统运行库与Android运行时、硬件抽象层和Linux内核五个主要子系统。应用层包含用户使用的应用程序;应用框架层提供开发API;系统运行库包含核心C/C++库和优化性能的ART运行时;硬件抽象层连接框架与硬件驱动;Linux内核负责基础系统功能。这种分层设计实现了稳定性、安全性和可移植性,使开发者只需关注应用框架层,制造商可专注于底层驱动。

2025-10-19 19:05:57 702

原创 TaskView

TaskView是AOSP提供给系统开发者的一个强大工具,用于实现真正的“应用内嵌应用”。它通过系统服务在底层创建一个独立但视觉上融合的任务栈,完美地解决了跨进程窗口管理的复杂性。如果你的角色是系统应用开发者(例如在为设备制造商工作),需要实现分屏、自由窗口或复杂的应用切换界面,那么深入理解并使用TaskView将是关键。对于普通应用开发者而言,了解其存在和原理有助于理解Android系统UI的工作机制,但无法直接在自己的应用中使用它。

2025-10-12 15:50:39 769

原创 TaskView 是一个系统内部使用的视图组件

TaskView是Android系统中负责“最近任务列表”中单个任务展示与交互的内部视图组件,属于系统应用层面的实现,不对外公开。开发者在普通应用中无法直接使用,但在研究系统源码(如定制Launcher、开发系统级应用)时,可能会接触到它的实现逻辑。

2025-10-12 15:45:46 393

原创 Android框架层的原生能力实现插件加载

在AOSP(Android Open Source Project)环境下,系统应用可以利用Android框架层的原生能力实现插件加载,无需依赖第三方框架。核心是通过AOSP提供的及隐藏API(系统应用可访问)实现插件的类、资源和组件加载。

2025-10-12 15:42:47 802

原创 一个系统应用加载另一个应用的插件

若你需要深度控制加载过程,实现高度动态化、或需与系统核心流程紧密集成(如进行系统级的Hook),方案一(修改ActivityThread)提供了这种可能性,但代价是复杂度和风险更高。若你的需求相对简单稳定,主要是将已知的第三方APK作为系统功能集成,并能接受插件更新需重新刷机的环节,方案二(预置为系统应用)无疑是更简单、稳定和安全的选择。希望这些方案和细节能帮助你构建自己的系统。如果你能分享更多关于插件的具体功能和使用场景,我或许能给出更精确的建议。

2025-10-12 15:40:08 625

原创 Android 系统应用中加载另一个应用作为插件

在Android系统应用中加载另一个应用作为插件,主要依赖于Android的动态加载技术,核心是通过类加载器(ClassLoader)加载插件APK中的类和资源。这种方式常用于实现模块化、动态功能扩展等场景。

2025-10-12 15:34:48 444

原创 配置HTTP代理

阿里:https\://mirrors.aliyun.com/gradle/distributions/v8.13.0/gradle-8.13-all.zip。腾讯:https\://mirrors.cloud.tencent.com/gradle/gradle-8.13-all.zip。华为:https://mirrors.huaweicloud.com/gradle/gradle-8.13-all.zip。腾讯:http://mirrors.cloud.tencent.com/AndroidSDK/

2025-10-12 09:21:36 177

原创 Android普通应用切到后台后,多长时间会被系统回收

AMS会通过Binder机制检测到进程死亡,然后清理掉该进程在系统服务中注册的所有信息(例如注销它的BroadcastReceiver,停止它的Service等),避免系统尝试与一个不存在的进程通信。LMK会检查AMS预先设置好的oom_adj分数阈值,然后找到分数高于阈值且分数最高的进程(即优先级最低的进程),将其杀死,释放其占用的内存。AMS根据新的状态,重新计算该进程的 oom_adj_score(例如,从一个较低的值提升到一个较高的值,如900),这个分数表示它被杀死的“容易程度”。

2025-09-21 21:25:34 949

原创 Proxy

【代码】Proxy。

2025-09-21 16:54:21 145

原创 MVVM软件架构

MVVM是一种强大、现代且经得起考验的Android架构模式。它通过数据驱动和生命周期管理的核心优势,极大地提升了应用的可维护性、可测试性和健壮性。对于任何严肃的中大型Android项目,采用MVVM几乎是一个必然的选择。对于初学者,建议从这个核心组合开始,逐步理解和实践,再慢慢引入Data Binding、Hilt等更高级的组件。

2025-09-21 11:15:06 808

原创 Android应用的软件架构

appcore🧩 认识主流架构模式。

2025-09-21 11:10:14 530

原创 System.currentTimeMillis()方法为什么受系统时间设置影响

当你需要测量时间间隔、耗时或进行超时判断(例如:动画、游戏循环、性能监测、定时任务)时,必须使用不受系统时间影响的单调时钟,如 SystemClock.elapsedRealtime() 或 System.nanoTime()。System.currentTimeMillis() 受系统时间设置影响是因为它的设计初衷是返回当前的“挂钟时间”(Wall Clock Time),也就是我们日常生活中使用的日期和时间。· 这个时间应该与墙上的时钟、手机状态栏显示的时间、以及世界上任何地方的标准时间保持一致。

2025-09-21 10:29:46 418

原创 Android 中获取稳定时间的方法

"转换为毫秒: " + (nanoTime / 1_000_000) + "ms");在Android中,获取不会因系统时间设置改变而跳变的时间通常需要使用基于设备启动时间的单调时钟。"格式化为时间: " + formatTime(elapsedTime));注意:如果需要跨设备重启保持时间跟踪,可以将设备启动时间与elapsedRealtime()结合使用,但这需要额外的实现。"格式化为时间: " + formatTime(uptime));android:text="稳定时间获取示例"

2025-09-21 10:23:22 974

原创 Android 中 `onTrimMemory(int level)` 方法最佳实践

是 Android 系统在内存不足时向应用发送的回调,旨在通知应用释放不必要的内存资源,从而帮助系统维持整体稳定性和多任务处理能力。这是一个协作机制,积极响应该回调可以显著降低你的应用被系统强制终止的概率,从而提升用户体验。它与(相当于)类似,但提供了更细粒度的上下文信息,让你能做出更智能的释放决策。处理根据严重程度,分层、逐步地释放资源。使用统一的资源管理类建议使用一个单例或依赖注入来管理你的内存缓存(如图片缓存、网络响应缓存、对象池等)。这样你可以在。

2025-09-20 22:40:35 1047

原创 Android普通应用切到后台后,多长时间会被系统回收

当系统可用内存低于某个 minfree 阈值时,LMK 就会从 adj 阈值列表中找到对应的 adj 值,并杀死 adj 值大于或等于该阈值的优先级最低的进程,直到可用内存恢复到令人满意的水平。· AMS 的角色:AMS 根据进程中运行组件的状态(如是否有前台 Activity、可见 Activity、运行中的 Service 等)动态计算每个进程的 oom_adj 值。需要注意的是,不同品牌的 Android 设备由于其定制系统和省电策略的存在,后台进程的回收机制和宽容度可能会有显著差异。

2025-09-20 22:16:19 685

原创 WMS的代码中哪些是在APP应用进程内运行,哪些是在WMS线程中运行?

你的 APP 进程:负责“做什么”(比如我要添加一个按钮、我要弹个对话框),以及“画什么”(测量、布局、绘制视图树)。它通过 Binder 将请求告知 WMS。WMS(在 system_server 中):负责“能不能做”(权限检查)、“摆在哪”(计算位置和层级)、“谁先谁后”(窗口排序和焦点决定)以及“最终显示”(与 SurfaceFlinger 协作合成界面)。它掌控全局,协调所有应用的窗口。

2025-09-14 10:07:33 691

原创 Activity与窗口的关系是什么?

可以把这一切想象成一个剧院:是剧院经理,负责管理整个舞台,决定哪个演员在哪儿表演、谁在前面谁在后面。Activity:是导演,他构思整场戏的内容和流程(生命周期和逻辑),但他自己不表演。:是舞台,是表演发生的抽象场地。导演(Activity)告诉舞台要演什么。DecorView:是舞台的基本布景和框架(包括幕布、灯光架等)。setContentView() 传入的布局:是舞台上的具体道具和演员。它们被放置在基本布景(DecorView)之中。:是舞台监督,负责协调导演和剧院经理。

2025-09-14 09:56:43 887

原创 Android中按键事件的分发过程

Android按键事件的分发流程分为系统层和应用层两个阶段:系统层通过InputDispatcher确定焦点窗口并跨进程分发事件;应用层从ViewRootImpl开始,经DecorView、Activity,在视图树中递归向下寻找消费事件的View。整个过程遵循自下而上、层层传递的原则,优先由焦点View处理,未被消费则回溯至Activity。相比触摸事件,按键分发更简单直接,完全基于焦点机制而非坐标命中测试。

2025-09-14 09:51:47 1001

原创 Android窗口的层级是如何管理的

Android窗口层级管理就像一个严格的“社会阶层”“阶层”固化窗口类型(Type)就像一个人的出身,决定了你属于哪个社会阶层(应用层、子窗口层、系统层)。系统层的人天生就比应用层的人“高”。“论资排辈”:在同一个阶层内部,添加顺序决定了你的地位。后加入的(后弹出的)会排在更前面(更上层)。最终,WMS作为“统治者”,严格维护着这个阶层的秩序,确保所有窗口都能按照正确的Z-order进行显示和交互。理解这个概念对于分析UI覆盖、触摸事件穿透等问题至关重要。可以将层级想象成一个公司部门部门层级(任务栈)

2025-09-14 09:41:42 1057

原创 【焦点屏幕】

焦点屏幕 → 焦点应用 → 焦点窗口焦点屏幕:系统首先判断用户的输入事件发生在哪个物理屏幕上(例如,用户点击了外接显示器而不是手机主屏)。焦点应用:在该屏幕上,系统找到位于最前台的、正在与用户交互的应用程序进程。焦点窗口:在该焦点应用中,系统找到位于视图层级最顶层的、可获取焦点的窗口(如一个对话框覆盖在Activity之上,则对话框窗口获得焦点)。概念层级关注点例子焦点窗口微观(窗口级)输入事件接收弹出的对话框、输入法窗口焦点应用中观(应用级)资源调度与生命周期。

2025-09-14 09:25:02 745

原创 什么是嵌入式系统

什么是嵌入式系统嵌入式系统(Embedded System) 是一种完全嵌入受控器件内部,为特定应用而设计的专用计算机系统。1、仅有非常有限的硬件资源,成本大幅下降,但对软件的优化提出更高要求。2、一般运行固定的程序或固定的操作系统,再加上可变的应用程序。3、有些为工业系统,仅用于某个特定的控制目的;有些因为有应用程序的加入而更显灵活,如手机,平板电脑。现代的嵌入式系统一般分为简单嵌入式系统和复杂嵌入式系统。1、简单嵌入式系统一般是由单片集成控制器作为硬件核心的嵌入式系统,其核.

2020-10-11 21:02:16 7661

原创 车企关系图谱

2020-01-01 12:57:51 617

转载 约束布局ConstraintLayout看这一篇就够了

https://www.jianshu.com/p/17ec9bd6ca8a《Android Studio开发实战:从零基础到App上线》随书源码(全面添加注释版)https://github.com/aqi00/android2

2019-09-15 16:35:25 335

转载 7-1 线性逻辑回归.py

# -*- coding: utf-8 -*-"""Created on Fri May 19 11:57:46 2017@author: 代码医生 qq群:40016981,公众号:xiangyuejiqiren@blog:http://blog.csdn.net/lijin6249"""import tensorflow as tfimport matplotlib.pypl...

2019-03-17 12:30:49 233

原创 高斯分布(正态分布)

机器学习中对于方差我们通常只除以

2019-03-17 11:57:20 2113

原创 一张图讲解TS媒体文件格式

2019-02-24 21:29:28 1852 1

原创 TensorFlow基础知识

Tensor(张量) 是N维数组。Flow(流)意味基于数据流图的计算。Tensorflow是张量从 图像的一端流动到另一端的计算过程。一、模型构建session将图的OP分发到CPU或GPU之类的设计上,同时提供执行OP的方法。这些方法执行后,将产生的tensor返回。在Python语言中,返回的tensor是numpyndarray对象。session与图的交互过程中,...

2019-02-24 20:22:14 193

转载 代码样例:3-3 无占位符.py

# -*- coding: utf-8 -*-"""Created on Tue Jun  6 18:52:37 2017@author: 代码医生 qq群:40016981,公众号:xiangyuejiqiren@blog:http://blog.csdn.net/lijin6249"""import tensorflow as tfimport numpy as npimp...

2019-02-24 20:10:02 149

转载 样例代码:3-2 字典.py

# -*- coding: utf-8 -*-"""Created on Tue Jun  6 18:52:37 2017@author: 代码医生 qq群:40016981,公众号:xiangyuejiqiren@blog:http://blog.csdn.net/lijin6249"""import tensorflow as tfimport numpy as npimp...

2019-02-24 19:47:28 143

转载 样例代码:3-1 线性回归.py

# -*- coding: utf-8 -*-"""Created on Tue Jun  6 18:52:37 2017@author: 代码医生 qq群:40016981,公众号:xiangyuejiqiren@blog:http://blog.csdn.net/lijin6249"""import tensorflow as tfimport numpy as npimp...

2019-02-24 19:41:29 336

佐思汽研-汽车智能座舱白皮书(2021).pdf

第一章 智能座舱定义与意义. 12 1.1 智能座舱定义..12 1.2 智能座舱意义..18 第二章 智能座舱典型功能与特性分析. 22 2.1 裸眼 3D 仪表22 2.2 大屏与多屏28 2.3 智能交互..47 2.3.1 智能语音交互..48 2.3.2 基于视觉感知的智能交互59 2.3.3 基于视觉+语音的多模交互 ..65 2.4 AR 导航..70 2.5 接收音频流媒体与卫星收音.72 2.6 电子倒车镜75 2.7 OTA92 2.8 后排控制系统..97 2.9 HUD .. 100 2.9.1 HUD 简介. 100 2.9.2 AR-HUD 简介.. 106 2.9.3 AR-HUD 技术:光场型与光波导型 .. 111 2.9.4 DLP AR-HUD 在奔驰上的实例.. 115 2.9.5 激光 AR HUD.. 117 2.9.6 AR-HUD 的设计 120 2.10 车窗透明显示.. 131 2.11 驾驶员状态监控. 137 2.12 音响 147 第三章 智能座舱技术体系 151 3.1 虚拟机. 151 3.2 座舱显示接口技术 . 173 3.3 汽车解串行 SerDer 180 3.4 车载以太网. 191 3.4.1 汽车总线介绍.. 191 3.4.2 车载以太网 194 3.4.3 车载以太网物理层 . 197 3.4.4 车载以太网链路层标准 TSN 200 3.4.5 车载以太网决定汽车 E/E 架构 216 3.5 座舱操作系统.. 220 第四章 智能座舱核心:主 SoC 产业格局 ..230 4.1 NXP 230 4.2 英伟达. 233 4.3 高通.. 238 4.4 瑞萨.. 242 4.5 英特尔. 245 4.6 Telechips.. 247 4.7 联发科. 249 4.8 地平线. 252 4.9 其他.. 255

2021-12-12

Vector Davinci官方帮助配置使用手册最新.rar

Vector Davinci官方帮助配置使用手册

2021-01-24

汽车CAN总线系统原理、设计与应用.rar

汽车CAN总线系统原理、设计与应用

2021-01-24

AutoSAR标准协议.rar

包括下面所有章节 CommunicationStack Diag General Integration Lib Mem Peripherals RTE Safety&Security SystemSERVICE

2021-01-24

机器学习个人笔记完整版v5.33-A4打印版

斯坦福大学2014 机器学习教程 个人笔记(V5.33) 本课程提供了一个广泛的介绍机器学习、数据挖掘、统计模式识别的课程。主题包括: (一)监督学习(参数/非参数算法,支持向量机,核函数,神经网络)。 (二)无监督学习(聚类,降维,推荐系统,深入学习推荐)。 (三)在机器学习的最佳实践(偏差/方差理论;在机器学习和人工智能创新过程)。

2019-03-17

PHP4 中文参考手册

PHP 4完全中文手册 <br>--------------------------------------------------------------------------------<br> <br><br><br>本手册是台湾彭武兴先生所著的 <<PHP BIBLE>> 一书的简体中文版。笔者只是对该书进行了繁简转换,并将原书中的台湾术语改为通俗的术 语,及纠正了由此带来的一些语意错误,仅供个人参考使用<br> <br>

2008-03-09

DOS高手速成全面手册

一 DOS概述及入门<br> ※ DOS简介<br> ※ DOS的特点<br> ※ 文件与目录<br> ※ 文件的分类<br> ※ 目录、子目录与盘符<br> ※ DOS的启动<br> 二 DOS的常用命令<br> 三 DOS命令集锦<br> 四 使用批处理文件<br> 五 如何进行系统配置<br> 六 出错提示与对策<br> 七 其它 <br>

2008-03-09

空空如也

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

TA关注的人

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