0%

个人简历

Read more »

Android-权限申请的变更

1
Android 13 代号「提拉米苏(Tiramisu)」

Android-13 对比 Android-12的变化,

更严格的通知权限

为什么要限制前台服务?

App通过通知系统来告知用户,让应用得以获取用户的注意焦点来提升运行优先级,并最终得以完成任务。在我看来这是很聪明的做法,如今这样的机制也已经成为应用确保任务完成的重要手段。

所以将二者结合起来可以得出的另一种事实却是,只要应用保证通知正常显示,它的前台服务就能持续保持运行。只要规律存在漏洞,就会被有心人利用,对用户的隐私会造成隐患。

针对这类情况,必要的检测和停用手段是必须的。Android 13 这次引入的前台服务管理器终于补上了这一环。

1
应用会在首次运行时向弹出请求窗口向用户请求许可,然后由用户决定是拒绝还是许可。但在 Android 12 或更早的系统版本中,通知权限则是一个安装时默认授予权限,具体的行为也是可以由应用开发者自己来定义的

不过从上面的介绍中也不难看出,前台服务主要有两大特点:
1.即使用户停止与应用的交互,仍能继续运行
2.执行过程中必须显示通知

如何检测和停用

Android-13 前台管理器

Android 13 这次引入的 FGS前台任务管理器

防范管控的第一步,自然是先将所有前台服务的应用罗列出来。Android 13 的快速开关面板在重新布局的同时,底部也多出了一栏「前台服务管理器」,点击展开后即可看到当前正在活跃的应用,点击对应的「停止」按钮就能一键让应用停止运行,可谓是相当「快准狠」的管理方式。

Android 13 为 App 的通知新增了运行时权限「POST_NOTIFICATIONS」,用户能够自由的选择通知的时间、位置,甚至是设置为「不用时移除权限」。这种限制类似于对于位置、话筒、相机、应用列表的权限设置。

其次 Android 系统也会帮助用户对前台服务进行监督,具体的机制是,在以 24 小时为单位的时间长度内,如果某应用的前台服务运行超过 20 小时,系统就会发送通知告诉「XX 已经长时间后台运行,点击查看详情」。这时点击通知也会跳转到上述前台服务任务管理器当中。

根据 Android 13 现阶段的设计,针对同一应用这样的警告通知不会在 30 天内重复出现。另外也不是所有应用都会出现在前台服务管理器中,系统级应用、紧急安全相关应用不会出现在这个列表中;部分应用会出现在这个列表中但没有「停止」按钮,比如激活设备所有方的应用、拨号应用等。

与「划卡强杀」的区别

划卡强杀

在关于前台服务管理器的相关文档中,我们也得以第一次看到现代 Android 对「多任务界面上划应用卡片」这个行为的定义,以及它和前台服务管理器的实际区别

绿色守护和部分厂商的「划卡强杀」其实更接近最右侧的 Force stop,也就是强行停止。现在进入到应用管理的详情页也依旧能够看到这个按钮,被强行停止的应用会停止一切活动,一般来说不能再自行启动,只能用户手动或其余应用拉起才能恢复运行。

前台服务管理器的停止按钮除了会暂停前台服务,也会将应用从 RAM 中驱离。需要注意的是,此时应用只是停止了运行,并不会从多任务窗口中移除,这一考虑或许是为了方便用户快速恢复任务,同时减少系统资源消耗。

严格控电-续航

Android 13的目标之一是通过全新的、更严格的电池控制方案,来优化熄屏后App的电源消耗,从而最大化设备体验

Android-13对文件权限的改进

统一适配参考建议

尽管 Android 11 引入了很多人心心念念的分区存储机制来改善私有目录滥用的乱象,但部分国产应用很快又学会了将用户和设备标识文件伪装成图片,然后将 /Pictures 这类公有目录变成新的用户隐私数据交换中心的新方案。

针对需要访问文件权限的做法,Android 13 这次将媒体文件权限进一步细分。已经适配 Android 11的应用(目标 API 等级 33)在 Android 13 中能够获取到的文件读写权限被分成了音频2、视频3和图片4,在实际使用过程中,应用可以根据实际情况将这三种权限灵活组合起来。

旧版本

Android 操作系统版本的更新通常伴随着对应用程序权限系统的调整和改变。这些变更旨在增强用户的隐私保护和提供更细粒度的权限控制。以下是一些 Android 权限系统的变更和改进的常见示例:

运行时权限控制:从 Android 6.0(Marshmallow)开始,Android 引入了运行时权限控制,允许用户在应用程序安装后,根据需要授予或拒绝应用程序特定权限的访问权,如访问相机、位置、联系人等。

危险权限:Android 权限被分为普通权限和危险权限。危险权限需要用户明确同意,而普通权限在应用安装时自动授予。在较新的 Android 版本中,某些危险权限的使用受到更严格的控制。

存储权限:在 Android 10 及更高版本中,存储权限发生了重大变化。应用程序需要逐个请求访问外部存储的权限,并在其清单文件中声明 MANAGE_EXTERNAL_STORAGE权限以访问全部存储。这是为了增强隐私保护和减少对外部存储的滥用。

一次性权限:在 Android 11 及更高版本中,用户可以授予应用程序一次性访问位置、麦克风和相机等权限,而不是永久性地授予权限。

位置权限:在较新的 Android 版本中,位置权限的访问变得更加严格,用户可以选择只允许应用程序在使用时访问位置数据,而不是一直允许。

通知权限:在 Android 版本中,通知权限系统也有所改进,用户可以更好地控制和管理应用程序的通知。

访问后台位置:在 Android 11 及更高版本中,访问后台位置数据的权限更加受到限制,应用程序需要满足更高的要求才能访问后台位置数据。

请注意,每个 Android 版本的权限系统可能有所不同,具体的变化和改进可能会因版本而异。要了解特定 Android 版本的权限变更,请查阅相关的 Android 开发者文档或官方发布说明。

code ==> compiler ==> produces mechine code for your target platform(为目标平台生成机器代码)

mechine code then contains the actual instructions that the target CPU can execute。(机器代码包含目标CPU可以执行的指令)

所以使用C++是可以单独控制目标CPU每条指令。

How C++ Works

1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;

int main() {
int num = 42;
cout << "Hello, World!" << endl;
cout << "The value of num is: " << num << endl;
return 0;
}

1
#include <iostream>

C++中的#符号通常被用于预处理器指令,这些指令在编译实际的C++代码之前被执行
#include <该文件的所有内容> ==
include will look for a file and will simply take the entire contents of the iostream file and paste it into our main.cpp.

Once preprocessing is finished,our file will be complied,

笔记

要写好一份提示词,遵循原则为尽可能详细并且具体,从不同角度进行详细描述。下面从9个角度来介绍输入关键词。常用的关键词类别包括如下:
(1) 主体subject
(2) 媒介 medium
(3) 风格 style
(4) 画家 artist
(5) website
(6) 分辨率 resolution
(7) 额外细节 additional details
(8) 色调 color
(9) 光影 lighting

Java- 泛型

Read more »

1
2
3
4
5
6
7
8
9
10
11
12
13
[
GNU/gcc、
通用汇编、
CPU Architecture、
ARM/X86 汇编、
C/C++、
OS、
Linux、
图形学原理、
JVM、
多线程、
Android OS
]

在正式启动之前,一定要想清楚为什么做和怎么做的问题,且这些问题的答案一定要结合自身的实际情况获得,而不是模仿他人。