分类

Android

深入探讨 Android 系统的核心架构与高级开发,聚焦四大组件(Activity、Service、Broadcast Receiver、Content Provider)的原理、生命周期管理和交互机制。从基础的组件构建与通信,到 Android Framework 层(如 AMS、WMS、PMS)的源码剖析和自定义扩展,提供详尽代码示例、调试技巧和性能优化策略。涵盖 JNI、AIDL、Binde

共 356 篇文章

了解Android ClassLoader
Android

了解Android ClassLoader

了解Android ClassLoaderJava中通过ClassLoader将.jar或class类加载进JVM虚拟机。在Android中也有ClassLoader,因为安卓ART虚拟机执行的是.dex字节码,所以安卓中的ClassLoader和Java中的有所不同。来了解一下Android的类加载器。1、ClassLoaderClassLoader有两种类型:系统加载器和自定义加载器。系统加载

1.8k
Hello MVP:Android MVP架构
Android

Hello MVP:Android MVP架构

Android MVP架构总结一下MVP架构,谈谈自己对MVP的理解。MVP确实可以在一定程度上减少代码耦合,将View和数据业务分离出来,但是为了MVP而MVP反而会让逻辑更加混乱。Demo:GitHub/quibbler01/HelloMVP1、MVP概念MVP是Model-View-Presenter的简称,即模型-视图-表示器。1.1、来源最早在2000年就由IBM旗下的子公司Talige

1.7k
Android

【Jetpack】WorkManager定时任务利器

定时任务利器:WorkManager库查看JetPack内容库的时候发现了WorkManager库更新到最新稳定版本2.4.0(2020年8月9号)。WorkManager是Google推出的调度定时任务新技术,官方文档:Docs>Reference>WorkManager">Android Docs>Reference>WorkManager推荐观看Google技术推广工程师史婧羽小姐姐的Wor

2.3k
了解安卓虚拟机:ART和DVM
Android

了解安卓虚拟机:ART和DVM

了解安卓虚拟机:ART和DVMAndroid每个APP都运行在相互独立的虚拟机中,不会因为一个应用的奔溃引起其它正在运行的应用也奔溃。Android虚拟机和Java虚拟机有千丝万缕的联系,Android发展史上一共出现过两种虚拟机:DVM和ART。虚拟机的实现非常复杂,不亚于一个小型OS。不需要刨根问底了解虚拟机实现的每一个细节,但是应用开发需要对底层的虚拟机有一个基本的了解。Android虚拟机

2.5k
Material Design介绍
Android

Material Design介绍

Material Design介绍Android开发中在交互上比较常用的是对话框,Android框架自带Dialog,一般通过AlertDialog.Builder创建对话框,详见Android对话框:Dialog。一般应用不直接用系统自带的对话框,因为比较“low”。介绍从Android 5.0开始Google力推比较贴近用户体验的Material Design。1、Material Desig

2.6k
深入理解AlarmManagerService
Android

深入理解AlarmManagerService

深入理解AlarmManagerService通过AlarmManager方便的设置定时任务,详见《AlarmManager定时任务》。现在来看看其中更深层次的原理,主AlarmManager要通过AIDL远程调用AlarmManagerService接口方法来在系统Service中设置定时任务。以set方法为例跟随设置流程来看看一个定时任务是如何被添加到系统中的。1、setImpl(...)所有

4.3k
AlarmManager定时任务
Android

AlarmManager定时任务

AlarmManager定时任务定时任务在应用中最常见不过了,Android提供了很多定时的途径,短时间的延迟任务优先使用Handler的postDelay()方法,借助Timer,AlarmManager类设置定时任务。今天来讲一讲AlarmManager设置定时任务的用法。Android官方文档:AlarmManager1、AlarmManagerAlarmManager类提供对系统警报服务的

1.9k
PreferenceFragmentCompat 设置界面
Android

PreferenceFragmentCompat 设置界面

PreferenceFragmentCompat 设置界面很早之就接触过PreferenceScreen设置项的常用用法(见《PreferenceScreen 设置项》),现在抽空再来了解一下它的承载主体PreferenceFragmentCompat及设置项的用法。1、混乱的deprecate先来屡一下Preference相关的包和类,到底哪些被deprecate?推荐用哪个?因为适配这个工作量

5.7k 1
ANR:Application Not Responding
Android

ANR:Application Not Responding

ANR:Application Not Responding使用Android手机有时候会遇到系统弹框“应用程序无响应”,这是因为APP在前台或者后台主线程中执行的时间太长,没有响应用户的操作。1、ANR条件系统ActivityManager和WindowManager会监控应用,如下三种条件下会产生ANR:①Activity:前台在5s内无法响应输入事件(触摸、按键);定义在:ActivityT

2.3k
熟悉Android源码目录结构
Android

熟悉Android源码目录结构

熟悉Android源码目录结构开发者需要了解系统运行的机制,了解一定深度的原理,而不是仅停留在会调用系统提供的API层面。阅读源码需要对源码目录结构有所了解,不然的话可能都找不到方向,因为整个Android项目很庞大复杂。源码按照一定的架构组织起来,详见Android 开源项目简介。1、源码根目录Android源码下载下来,根目录下很多一级子目录,每个目录都对应一层架构或者一块框架。①art:AR

3.0k
深色模式适配
Android

深色模式适配

深色模式适配之前Apple叫板微信不支持深色模式就下架,Google从Android Q也新增了暗黑主题,可见系统对深色模式愈发的重视。其实【深色模式】国内有些厂商两年前就已经实现。还有一些做的比较优秀有创意的应用就自带深色模式,用户可以在APP内的设置手动切换当前应用到【夜间模式】。今天就来看看有哪些手段可以实现应用的深色模式。深色模式Demo:android-DarkTheme1、系统暗黑主题

2.4k
Android

深入 AOSP:深色模式原理与 Framework 源码解析

深入 AOSP:深色模式原理与 Framework 源码解析深色模式(Dark Mode)是 Android 10(API 29)引入的一项系统级功能,允许用户在深色背景下使用设备,减少眼睛疲劳,延长电池续航。从 Framework 层面来看,深色模式涉及多个系统服务的协同工作。1、深色模式概述深色模式的核心组件包括: • UiModeManager:管理 UI 模式切换 • ThemeManag

161
Android

源码理解apply()与commit()的区别

源码理解apply()与commit()的区别为什么SharedPreference保存数据首选apply()?commit()和apply()有什么区别?①commit()是同步的:将数据直接写入存储;apply()是异步的,先将修改提交到内存不会阻塞,之后再写入存储。②commit()有返回值标识是否成功写入;而apply()没有返回值。现在来看看源码到底是如何实现apply()和commit

1.8k
Android

理解WindowManager

理解WindowManagerWindowManager类顾名思义就是用来管理Window类。Window在另外一篇有探究理解Window。1、WindowManagerWindowManager也是接口,继承自ViewManager接口,它的实现类是WindowManagerImpl。都在android.view包中。1.1、ViewManagerViewManager接口中只定义了三个接口方法

2.3k
理解Window
Android

理解Window

理解Window什么是Window?从Activity的组成结构一文中我们了解到:每个Activity都包含一个Window。1、Window什么是Window?简单来说就是窗口,对其中的View进行管理。那么Window和Activity又有什么关系?现在来梳理并了解一下它们之间的关系。1.1、Window是抽象类Android中能看见的(比如:Activity、Dialog、Toast等)都是

1.9k