限制最小targetSdkVersion 在我们开发

查看 49|回复 3
作者:绀湛的云痕   
限制最小targetSdkVersion
在我们开发Android项目的时候通常必须要指定两个sdk版本号,一个是compileSdkVersion,一个是targetSdkVersion。
compileSdkVersion比较好理解,就是用于编译当前项目的Android系统版本。你指定到了哪个版本,就可以使用哪个版本的API,指定版本过低的话,一些新版系统中推出的API就使用不了了。
targetSdkVersion则是另外一回事,它指的是,你的App已经为哪个Android系统版本做好了适配,系统会根据你指定的版本号来决定是否启动某项功能。
设置targetSdkVersion的目的是,Google每发布一个新的Android系统版本,都会推出一些新的功能,以及对一些老功能进行修改。但是这些变动可能会导致原有的App出现不兼容的情况。为了避免这种问题,Google可以选择只对那些targetSdkVersion指定到最新版本的App才启动这些变动,这样那些还未升级适配的App暂时就不会受到影响了。
举一个具体点的例子,Android在6.0系统之前,权限的管理是相当宽松的,App想要使用什么权限,只需要在AndroidManifest.xml里声明一下就行了,用户只要安装了你的App就代表接受了你申请的所有权限。
而从6.0系统开始,Android引入了运行时权限机制。App想要使用一些敏感权限时,必须先弹窗询问用户,用户点击允许之后才能使用相应的权限。
不过这项变动可能会导致许多老App出现不兼容的情况,因此Android只会对targetSdkVersion指定到23(6.0)及以上的App才会启用运行时权限这项特性。
然而,现在都已经2023年了,Android都出到14了,竟然还有一些App的targetSdkVersion是低于23的。
只要一直低于23,运行时权限就会一直不启用,这对于一些恶意软件来说是一个非常低成本的绕过方式。
因此,这次Android 14系统对最小targetSdkVersion做出了限制,低于23版本的App将被禁止安装,以此进一步提升Android设备的安全性。
但如果是之前就已经安装上的App,然后升级到了Android 14系统,即使它的targetSdkVersion小于23,也仍然会被保留。毕竟系统不能代表你去自动删除某个已安装的App。

系统, 权限, 版本

m4j557   
请教,手机上可以修改Targetsdkversion的值吗?
bestionpo   
雷电茄子可爱捏[受虐滑稽]
海_星   
应该直接强制不兼容,不留任何例外,对付流氓就是比他更流氓[受虐滑稽]
您需要登录后才可以回帖 登录 | 立即注册

返回顶部