进程理解
Android系统最小的控制单元是:进程 process
应用/CPU最小的控制单元是:线程 thread
一个应用一个 process 进程
一个应用一个 package(包是唯一的)
一个应用一个 dalvik vm(一个应用一个dalvik vm,这样才能保证数据的安全性)
一个应用一个 user(一个应用一个用户,因为Linux把每一个进程看作一个用户,进程与进程之间 权限验证很严格)
在Android4.4之前,每一个进程是 dalvik vm 模式,这种方式长时间运行会导致性能低
ART 模式:Android 5.0后,这种模式之后,以后的安卓就是苹果的性能
进程的优先级别
当Android系统内存空间不足的时候,系统会自动杀进程,怎么杀进程呢,就是按照进程的优先级别来杀的,优先级别 最低的 最先杀
1.前台进程:
1.1 可以看到的/可以操作的/属于前台进程
1.2 A应用 去绑定 B应用的服务,然后B应用是回到桌面状态的,B应用也属性前台进程
1.3 只要是Service在执行生命周期方法的时候,也属于前台进程
1.4 只要是BroadcastReceiver-->onReceiver()生命周期方法的时候,也属于前台进程
2.可视进程:
2.1 当A应用 被 B应用挡住来一部分, A应用可以看到,却不能操作,A应用属于可视进程
2.2 当A应用 被 B应用挡住来一部分, A应用可以看到,却不能操作,同时A应用绑定了S应用的Service,那么S应用和A应用都属于可视进程
3.服务进程:
3.1 当C应用启动了一个Service,C应用回到桌面,C应用属于服务进程
4.后台进程:
4.1 当D应用的任务栈还有Activity应用,D应用回到桌面,D应用属于后台进程(直接按了Home键盘)
5.空进程:
5.1 当F应用的任务栈被弹栈弹完了,没有一个任务栈了,F应用属于空进程(不停的按Back键)
后台进程演示:
空进程演示:
进程的提升
进程的提升:例如:在之前的的博客,Android-bindService本地服务-音乐播放(后台播放)-下,介绍了,如何把服务进程提升为前台进程
为什么要把服务进程提升为前台进程?
答:因为把服务进程提升为前台进程,是最稳定的(例如:一些山寨应用播放器,播放过程中,系统内存不足,应用突然被系统回收了,如果提升为前台进程,就不会被回收了)
Service:
// id=通知到唯一标示 notification=通知 startForeground(1, builder1.getNotification());
Activity:
// 既然是后台播放,就是要把当前Activity切换到后台 moveTaskToBack(true);
假设 当系统内存不足的时候,都是后台进程,系统会怎么杀
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· MQ 如何保证数据一致性?