app安装路径和权限规范以及androd 如何使得升级更加容易

安卓

安卓11是有史以来最容易升级的安卓?

我们知道,Google一直为解决系统碎片化问题做努力,力求设备能够升级最新版本的安卓。

安卓8

为此,Google作了很多努力,例如在安卓8.0中推行了Project Treble机制,将系统(Android OS framework)单独分区,和硬件驱动(Vendor implementation)分离,此后厂商可以为设备单独推送新版安卓,而不需要重新适配驱动。

在这里插入图片描述

Project Treble将Google的安卓系统框架和硬件供应商提供的驱动作了分离

Project Treble大大简化了安卓系统的升级流程,但这还不够。在安卓10当中,Google推行了Project Mainline,将系统进一步细分模块化。

安卓10

在安卓10中,14个系统组件被Mainline化,媒体解码器、权限控制器、网络组件等系统组件,都可以像普通App一样,通过应用商店来更新——很多朋友发现,今年安卓机的GPU驱动竟然能够独立更新,就得益于此。

安卓11

在安卓11中,Google又进一步对安卓组件进行细分,安卓的组件模块达到了20个之多,安卓的系统维护将会变得前所未有地灵活。

新的系统升级方案

不仅如此,Google还将改制推行到了系统内核当中,安卓的Linux系统内核升级将会变得更加灵活。

在当前的安卓系统中,Linux系统内核升级大体需要经历三个步骤。首先,Google选定一个Linux LTS版本作为安卓内核,打上安卓运行所需要的Patch;

接着,Google将这个内核提交给高通等SoC供应商,供应商再次将其打造成为适配SoC的内核;

最后,三星等设备商再让内核适配不同的元器件,再次为内核打上各种Patch,让内核成为真正可以在安卓机上运行的版本。

Android 11变化:刷机不再变砖?Recovery分区成为历史!

传统的Android系统Linux内核升级流程,需要经由重重环节,非常麻烦

由于步骤繁琐,因此当前的安卓机一旦出厂,Linux内核就很少变动,即使是Google旗下的Pixel设备,内核也依然只是较为老旧的Linux 4.14。

而在安卓11中,情况有所变化,Google将系统内核进行了模块化修改,内核被分成了Generic Kernel Image(GKI)和其他GKI模块。

如果想要升级Linux版本,Google可以直接面向安卓机推送GKI,手机直接升级GKI即可,再也不需要经历从SoC厂商到手机设备厂商的繁琐步骤。

Android 11开始,内核进行了模块化,一个GKI内核可以通用于市面上的大量安卓机

据了解,安卓11的这一特性,在内核版本高于Linux 5.4以上的设备上,是要求强制执行的。

可以说,如果安卓11的设备出厂内核版本就是Linux 5.4以上,那它有可能会是史上最容易升级的安卓。

安卓存储目录文件夹乱象彻底解决?

相信不少人发现,安卓机用久了以后,存储目录下就会多出很多奇奇怪怪的文件夹,这些文件夹是由各种App生成的,这其实是一个历史遗留问题。

安卓机的内部存储目录一度非常小,例如经典的Milestone的ROM只有512M,需要用SD卡扩展存储空间,因此安卓App往往会将文件保存在外部存储目录下(也就是sdcard目录)。

而安卓在4.3版本前并没有提供外部存储目录的规范,App习惯在sdcard目录中随意建立自己的文件夹,这个习惯一直保留到如今。

现在,尽管安卓建立了sdcard目录的存储规范,例如安卓系统规定App如果要在内部存储空间建立文件夹,需要建立到/data/data/目录下,在外部存储空间则需要建立在/sdcard/Android/data/目录下。

然而这一规范并非是强制性的,很多App由于使用第三方SDK等各种各样的原因,视安卓的存储目录规范不见,依然在sdcard目录下自建文件夹,安卓存储目录的混乱由此而来。

在安卓11中,文件夹乱象终于有望得到彻底解决。安卓11将不再允许App在sdcard建目录和文件,APP只能够往特定目录的私人文件夹写入数据。

目前某些APP已经开始为此做准备,例如新版QQ将存储目录从/sdcard/tencent/变更到了/sdcard/Android/data/com.tencent.mobileqq/Tencent/,就是为了适应安卓的存储新机制。

总结

除了上文所提到的,安卓11还有很多非常有意义的更新,例如更强大的隐私保护、改进的通知系统等等,这里就不一一列举了。

总的来说,安卓11是一个从里到外都进行了重大改革的版本,它解决了安卓的很多历史问题,大家共同期待吧。

windows

windows的软件安装

常见安装目录

  • Program Files 通常的软件主体安装目录(一般不包含独特的用户数据)。所有用户都能使用的软件安装在此。
    • Program Files x86后缀代表32位软件
  • ‘$user’/AppData 用户特定的数据。或者只有某个特定用户能使用的软件放这里
    • local 特定于pc 一般无需移动的数据,比如微信的缓存文件
    • local low LocalLow专门存储优先级比较低的程序的文件。因为优先级低的程序没有足够的权限写入到更敏感的位置
    • roaming 漫游的意思 那些当你换电脑的时候 需要和能方便的转移的数据。比如某ide的配置文件

为什么越来越多软件默认安装到appdata

你发现了什么?开始安装界面有什么不同?最大的不同就是安装路径的变化。很多朋友也开始发觉注意到软件安装默认路径变成了AppData下的路径了,而且还不只是一个软件,大批的新软件都这么做了。这不禁让人产生疑问。到底为什么这些新软件要改变默认的安装路径呢?

这一改变首先给用户带来了什么影响。我们习惯了标准化的安装路径即Program Files。所有规范的程序都会选择安装在这个目录之下,用户也方便管理软件的安装文件。而且Program Files目录直接在根目录下,方便找,如果软件出现什么问题,要手动替换文件,或者卸载时没有删除干净,我们都可以手动到Program Files目录下处理。然而新软件的安装目录悄悄的改变为了AppData,AppData是用户目录下的,路径比较深,不好找。这给用户带来一定的困扰。可见,这一改变,对于用户来说,没有什么好处。当然,对于一般的用户来说,安装到哪似乎影响不大。反正都是点击快捷方式启动软件。

但是,改变默认安装路径这一行为,并不是这么简单。有人说,这一改变,是权限问题。

那么我们就从权限问题说起。这里说的权限问题就是用户账户控制UAC,这是Windows对于系统设置修改、软件安装设置的一道安全权限,而且这些修改会通知用户,以免程序默默执行。这一招防止了恶意软件的安装,当然也防止了病毒的传播。而默认的Program Files目录则会有很好的安全控制,可以很好的规范软件的行为。然而现在的新软件,很多为什么不遵守这样的规则了呢?而是将安装路径安装到AppData下了呢?
从技术上来讲,我们会说是微软对Program Files目录有权限限制,在安装的时候需要提权。那么请问,在之前,各种软件不是好好的安装,好好的运行的吗?为什么现在就有权限问题了呢?仅仅一个权限问题不足以解释这个问题了。对于技术,这个权限问题,不应该是问题,以前的版本都可以安装在Program Files里,自然技术是没有问题的。那必然有其他秘密。

我们就从微软的系统的升级说起。自从Win8出现,系统的安全性更高了,也就是对程序的操作权限做了很多限制,这些限制都需要有用户的同意才能执行,这样可以让系统更加安全。到了Win10系统,安全更是加固了不少,所以,一些程序想做一些小动作,也就难上加难了。虽然这些软件都是正规的,谁说正规软件不会做手脚,不会搞小动作呢?
所以,使用不要求权限的AppData目录,可以更方便的实现静默安装、静默升级、静默下载、广告推送、广告展示等,而不需要得到用户的通知。当然不排除一些小软件为了省去提权的麻烦,而直接将默认目录改为AppData。或者说,因为Win8、Win10的严格权限,为了在win7\8\10用同一个安装包,就不用Program Files目录了,这样不管在哪个系统都可以顺利安装。

linux

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值