自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android 系统开发指北(三) - 进程管理之进程的创建

Android系统以Linux内核为基础,所以对于进程的管理自然离不开Linux本身提供的机制。例如:通过fork来创建进行通过信号量来管理进程通过proc文件系统来查询和调整进程状态 等对于Android来说,进程管理的主要内容包括以下几个部分内容:进程的创建进程的优先级管理进程的内存管理进程的回收和死亡处理本文会专门讲解进程的创建,其余部分将在后面的文章中讲解。

2024-04-08 00:04:30 878

原创 Android 系统开发指北(五) - 进程管理之内存的回收

对于内存回收,主要可以分为两个层次:进程内的内存回收:通过释放进程中的资源进行内存回收进程级的内存回收:通过杀死进程来进行内存回收这其中,进程内的内存回收主要分为两个方面:虚拟机自身的垃圾回收机制在系统内存状态发生变化时,通知应用程序,让开发者进行内存回收而进程级的内存回收主要是依靠系统中的两个模块,它们是:Linux OOM KillerLowMemoryKiller在特定场景下,他们都会通过杀死进程来进行内存回收。

2024-04-07 21:52:03 982

原创 Android 系统开发指北(四) - 进程管理之进程的优先级

进程的优先级反应了系统对于进程重要性的判定。在Android系统中,进程的优先级影响着以下三个因素:当内存紧张时,系统对于进程的回收策略系统对于进程的CPU调度策略虚拟机对于进程的内存分配和垃圾回收策略本文会主要讲解系统对于进程优先级的判断依据和计算方法。

2024-04-06 08:44:02 631

原创 Android 车载应用开发指南(4) - CarService 详解

CarService 是车载 Android 操作系统 Android Automotive OS(下文简介 AAOS)的核心服务之一,所有车载相关的应用都需要通过 CarService 来查询、控制整车的状态,不仅仅是车辆控制,实际上 CarService 几乎就是整个车载 Framework 最核心的组件。

2024-04-05 16:07:24 1569 1

原创 实现自定义 Java 垃圾收集器

实现自定义 Java 垃圾收集器需要深入了解 JVM 知识、对 OpenJDK 及内存管理原理都有一定的理解。 Java 的自动内存管理是其最显著的功能之一,它为开发者提供了无需手动管理内存分配和释放的便利。但是,在某些情况下,开发者希望创建一个自定义的 Java 自动内存管理系统,以满足特定的需求。在本指南将提供设计和实现自定义 Java 自动内存管理系统的详细步骤。

2024-02-27 14:48:32 795

原创 Android 系统开发指北(二) - 系统启动流程

作为一个 Android 应用开发者,是否想过当你按下 Android 电源键打开设备,从硬件到软件会发生什么?

2024-02-22 22:48:37 1108

原创 Android 系统开发指北(一) - 系统概览

本文作为系列文章的第一篇,将对 Android 系统做一些介绍。同时,我们将了解到 Android 系统的架构分层以及一些基础知识,这些内容是为了后面的文章做一个概览和铺垫。

2024-02-22 11:28:22 1014

原创 设计模式概述

设计模式,即 Design Patterns,是指在软件设计中常见问题的典型解决方案。

2024-02-19 00:09:01 870

原创 设计模式--简单工厂模式

简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

2024-02-19 00:08:44 350

原创 设计模式--工厂方法模式

工厂方法模式(Factory Method):又称为虚拟构造器(Virtual Constructor)模式,或者多态性工厂模式,它属于类创建型模式。

2024-02-19 00:08:26 353

原创 设计模式--抽象工厂模式

抽象工厂模式(Abstract Factory):和工厂方法模式不同,抽象工厂模式创建的是对象家族,也就是很多对象而不是一个对象,并且这些对象是相关的,也就是说必须一起创建出来。

2024-02-19 00:08:08 778

原创 Android 应用架构指南 -- 三种架构模式简介(MVC、MVP、MVVM)

随着应用规模增大,功能扩展困难、测试规模大及并行开发难等问题愈发突出。为了从根本上解决这些问题,就需要对应用进行重构,此时应用架构设计就显得尤为重要。

2024-02-19 00:07:46 1023

原创 设计模式--代理模式

代理模式(Proxy pattern):属于结构型设计模式,为另一个对象提供一个替身或占位符以控制对这个对象的访问。

2024-02-19 00:07:26 319

原创 Android Jetpack 系列全解析 -- 简介

Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳实践、减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者可将精力集中于真正重要的编码工作。

2024-02-19 00:07:02 1178

原创 设计模式--装饰者模式

装饰者模式(decorator pattern): 属于结构型设计模式。动态地将责任附加到对象上, 若要扩展功能, 装饰者提供了比继承更有弹性的替代方案。

2024-02-19 00:06:17 914

原创 设计模式--观察者模式

观察者模式(observer pattern): 属于行为型设计模式。在对象之间定义一对多的依赖, 这样一来, 当一个对象改变状态, 依赖它的对象都会收到通知, 并自动更新。

2024-02-19 00:05:40 317 1

原创 Java 异常机制详解

定义:Java 异常是 Java 提供的一种识别及响应错误的一致性机制。作用:Java 异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下,异常能清晰的回答 what, where, why 这3个问题:异常类型回答了“什么”被抛出,异常堆栈跟踪回答了“在哪“抛出,异常信息回答了“为什么“会抛出。

2024-02-18 23:16:01 812

原创 Kotlin 中的 JSON 序列化与反序列化

JSON(JavaScript Object Notation, JS 对象简谱),是一种轻量级的数据交换格式。

2024-02-18 23:13:26 1127

原创 使用 Kotlin 对 XML 文件解析、修改及创建

XML 全称 ExtensibleMarkupLanguage,中文称可扩展标记语言。它是一种通用的数据交换格式,具有平台无关性、语言无关性、系统无关性的优点,给数据集成与交互带来了极大的方便。XML 在不同的语言环境中解析方式都是一样的,只不过实现的语法不同而已。

2024-02-18 23:10:32 920

原创 Kotlin VS Java:谁更适合 Android 开发?

在 Kotlin 出现之前,绝大部份 Android 开发者都是使用的 Java 语言,Java 有着许多明显的优点,如简单易学、面向对象、跨平台可移植性好等,在他们心中 Java 就是最好的编程语言。然而在 Kotlin 出现之后,这种对 Java 的信念有些动摇。

2024-02-18 23:07:08 1471

原创 Android ANR 实现机制详解

ANR(Application Not Responding),即应用程序无响应,Android 系统指定某些事件需要在规定时间内完成,如果超过预定时间还能未能得到有效响应,就会造成 ANR。具体表现为,应用位于前台时,系统会向用户显示一个对话框,如下图所示。用户可以选择“wait”让程序继续运行,也可以选择“Close app”强制关闭。

2024-02-18 23:03:25 928

原创 线程池 ThreadPoolExecutor 详解

对于操作系统而言,创建一个线程的代价是十分昂贵的, 需要给它分配内存、列入调度,同时在线程切换时要执行内存换页,清空 CPU 缓存,切换回来时还要重新从内存中读取信息,破坏了数据的局部性。因此在并发编程中,当线程创建过多时,会影响程序性能,甚至引起程序崩溃。

2024-02-18 22:57:00 927

原创 Android 平台 Native Crash (一)捕获原理详解

从 Android 系统全局来说,Crash 通常分为 App/Framework Crash,Native Crash,以及 Kernel Crash。

2024-02-10 21:22:51 164

原创 Android 平台 Native Crash (二)问题分析与定位

Native Crash 是发生在 Android 系统中 C/C++ 层面的 Crash,具体可参考: # Android 平台 Native Crash 捕获原理详解。

2024-02-10 21:20:35 161

原创 LeakCanary 2.0(二)源码分析及总结

LeakCanary 是一款 Android 平台上进行内存泄漏检测的工具,其简介及使用方法可参考 LeakCanary 2.0 工作原理及使用详解 。本文主要从源码角度来分析其工作流程。

2024-02-10 21:11:09 149

原创 LeakCanary 2.0(一)工作原理及使用详解

LeakCanary 是一款 Android 平台上进行内存泄漏检测的工具,由大名鼎鼎的 square 公司制作并开源( square / leakcanary ),能够帮助开发人员显著减少 App 中 Application Not Responding问题和 OutOfMemoryError 崩溃问题。目前通常应用在 App 开发测试阶段,提前检测提前修复。

2024-02-10 21:08:30 269

原创 Unity 3D 设计 -- C# 脚本实现相机跟随

Unity 相机跟随是一个很常见的需求,这里的原理就是相机的位置和主角的位置有个差 值,一旦主角移动相机根据这个插值进行更新相机的位置就好了,另外需要平滑变化相机的角度。

2024-02-10 20:46:02 443 2

原创 Unity 核心系统详解 -- 动画系统

Mecanim 动画系统是 Unity 公司从 Unity4.0 之后开始引入的新版动画系统,它提供了如下四种功能。

2024-02-10 20:44:52 299

原创 Unity 核心系统详解 -- UI 系统

Unity 提供了三个 UI 系统,可以使用它们在 Unity 编辑器中创建的应用程序创建用户界面 (UI):* UI Toolkit* Unity UI 软件包 (uGUI)* IMGUI

2024-02-10 20:42:55 481

原创 Unity 核心系统详解 -- 光照系统

Unity 引擎中提供的光照系统叫 EnLighten,作为引擎渲染的一部分,负责构建场景中的灯光。Unity 的灯光组件大致分为:光源组件和烘焙组件。

2024-02-10 20:40:15 330

原创 Android App Bundle 技术介绍及详细使用教程

Android App Bundle 是一种发布格式 —— 准确地说,是一个带有`.aab`扩展名的 zip 文件。它包含应用支持的所有设备的代码和资源,例如 DEX 文件、本地代码库、清单文件、各种资源文件等。

2024-02-10 20:32:52 743

原创 Android 内存泄漏总结

​内存泄漏不会必然造成内存溢出,但是大对象或多对象的内存泄漏会显著增加内存溢出的风险。

2024-02-10 20:22:59 303

原创 Android 车载应用开发指南(3) - SystemUI 详解

SystemUI 全称 System User Interface,直译过来就是“系统级用户交互界面”,在 Android 系统中由 SystemUI 负责统一管理整个系统层的 UI,它是一个系统级应用程序(APK),源码在`/frameworks/base/packages/`目录下。

2024-02-07 17:35:37 1099

原创 Android 车载应用开发指南(2)- 应用开发入门

车载 Android 系统也被称为 Android Automotive OS,是对原始 Android 系统的一个功能扩充版本。

2024-02-07 17:28:53 1045

原创 Android 车载应用开发指南(1)- 车载操作系统全解析

到 2030 年,全球电动汽车的销量将超过 7000 万辆,保有量将达到 3.8 亿辆,全球年度新车渗透率有望触及 60% 。

2024-02-07 17:25:37 1298 2

空空如也

空空如也

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

TA关注的人

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