博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于安卓版本的控制
阅读量:2122 次
发布时间:2019-04-30

本文共 2270 字,大约阅读时间需要 7 分钟。

首先我们在开发一个应用之前,特别是一个android应用,要考虑这个系统是运行在android版本为2.3的系统上,还是4.0的系统上或者说是支持所有android版本的系统。

那我们要做的就是告诉系统你当前应用所能兼容的系统版本是多少,从而系统决定是否能有效并成功安装你的应用。这是由三个元素决定的;
android:minSdkVersion —— 此属性决定你的应用能兼容的最低的系统版本,一盘情况是必须设置此属性。
android:targetSdkVersion —— 此属性说明你当前的应用是针对某一个系统版本开发设计的,也就是说在这个系统版本上运行是没有任何问题的。对于手机或其他终端设备会根据此属性值,决定是否显示一些特性和效果。当然对于开发者最直接的影响就是,你所用到的API都是基于此版本上的,高于此targetSdkVersion的API在使用的时候会有警告或者错误提示。
android:maxSdkVersion ——  此属性是决定你的应用能支持的版本最高是多少,超过此版本的系统将不能使用你的应用。这个一般不做设置;
清楚之后我们就可以定下来我们要使用的版本号了;
举个例子
minSdkVersion 16
targetSdkVersion 30
以上代码中能支持的最低系统的版本号是16,使用的是版本号为30的系统API,
对于大家经常交流的手机是android2.3的系统或者4.0的系统,还是刚出来的5.0的系统;这里的2.3、4.0、5.0都只是版本名称。版本名称4.0对应版本号(API LEVEL)是14。
Android系统版本号和Android API level对应关系可以去这个网站上去查https://developer.android.com/guide/topics/manifest/uses-sdk-element.html;
对于创建项目时可以选择最低兼容的android版本、软件运行的目标版本,一般选择最新的SDK,可以灵活去选择;
关于如何选择targetSdkVersion的问题:
假如说我们要开发的应用程序使用API 10就可以实现的功能,可以不用考虑使用API 24,使用低版本API的其中一个好处,可以让更多的Android系统运行的效果保持一致,即兼容性更好,所谓的不兼容并不是无法正常运行,而是在不同Android系统的手机运行的效果差异比较大,会让用户感觉难以接受;
使用低版本API的其中一个不足,显示的效果比较OUT,提供的可用的接口或类比较少,本来一句代码可以完成的功能(封装的类或接口),需要自己花一天琢磨写很多的代码,也就是有高版本API的其中一个原因,提供更多的或封装好的应用程序接口让开发者使用。
同时,高版本API会针对低版本存在的问题进行改进和完善,摈弃一下不用的类或接口,新增一些方法或属性,如果你使用的方法是在某个API被另一个方法代替的话,你可能就得在代码中区分APP是运行在哪个版本的Android系统;
关于minSdkVersion的问题:
minSdkVersion定义应用程序支持的最低API版本,最低版本设置为API 11,目标版本设置为API 24,那么应用程序调用使用API 14提供的方法时,Android Studio将提醒开发者引用一个未定义的方法,使用该方法需要将minSdkVersion设置为API 14以上,造成的结果如果程序运行在大于或等于Android 4.0的系统可以正常执行,小于Android 4.0的系统将在运行时尝试访问不可用的API 时发生崩溃。
所以对于程序的定义还需要对开发的应用程序的理解来定到底需要用什么版本的API就能实现应用的开发才是最优方案;
但是,这个设置仅仅是一个声明、一个通知,不会有太实质的作用,比如说,使用了targetSdkVersion这个SDK版本中的一个特性,但是这个特性在低版本中是不支持的,那么在低版本的API设备上运行程序时,可能会报错:java.lang.VerifyError。也就是说,此属性不会帮你解决兼容性的测试问题。你至少需要在minSdkVersion这个版本上将程序完整的跑一遍来确定兼容性是没有问题的。(这个问题确实让人头疼).
再来说说android版本号和版本名称:
versionCode和versionName是用来对应用的版本控制,对于发布新版本和开发中的版本维护有着关键性的作用;
用户在安装APP的时候需要知道详细的版本信息,并且在对已有版本进行升级的时候,能否正确安装新版本都和版本控制有关。
比如:当手机中安装APP的versionCode=1,升级更新的版本号是2(versionCode=2),此时APP可以正常安装更新。反之,如果手机中当前APP版本号是2,升级的或者从其他渠道获取的同一APP的版本号为1,此时替换安装就会失败。
这种情况就是说,同一个APP低版本是不能直接覆盖安装手机中已存在的高版本应用(通过版本号(versionCode)来判断)。
这样就给我们在应用升级维护过程中,提高了软件的可维护性和安全性。
每次发布更新版本时可以递增versionCode的值.
versionName是一个版本的描述,给用户看的,也是用户放在各个第3方平台上提供给使用者看的一个版本名,可以说是对VersionCode的解释和描述。一般格式可以为:1.1.2(major.minor.point)的形式。

转载地址:http://esdrf.baihongyu.com/

你可能感兴趣的文章
linux基本命令
查看>>
BlockQueue 生产消费 不需要判断阻塞唤醒条件
查看>>
强引用 软引用 弱引用 虚引用
查看>>
数据类型 java转换
查看>>
"NetworkError: 400 Bad Request - http://172.16.47.117:8088/rhip/**/####t/approval?date=976
查看>>
mybatis 根据 数据库表 自动生成 实体
查看>>
win10将IE11兼容ie10
查看>>
checkbox设置字体颜色
查看>>
第一篇 HelloWorld.java重新学起
查看>>
ORACLE表空间扩张
查看>>
orcal 循环执行sql
查看>>
web.xml配置监听器,加载数据库信息配置文件ServletContextListener
查看>>
结构型模式之桥接模式(Bridge)
查看>>
行为型模式之状态模式(State)
查看>>
行为型模式之策略模式(Strategy)
查看>>
行为型模式之模板方法模式(TemplateMethod)
查看>>
行为型模式之访问者模式(Visitor)
查看>>
大小端详解
查看>>
source insight使用方法简介
查看>>
<stdarg.h>头文件的使用
查看>>