2017-05-14 122 views
-1

我在运行Android 6.0.1的设备上运行开发的应用程序时出现一些错误,该设备在Android 2.3.6设备上运行完美。我为两个设备使用相同的内置应用程序(针对Android API 10编译)。Android中的功能向后兼容性

错误是关于应用程序正在关闭,当一个新的活动启动时,当一个联系人被选中时,我知道我该如何解决这个设备的问题,但问题是,从我读过的我认为,在功能上向后兼容没有问题(也许可能有一些图形问题,但没有任何应用程序崩溃,因为它发生在我身上)。

所以我想知道这是不是一些例外事件发生在我身上,最有可能的是,一旦我在一些更多的Android版本中检查这些错误并修复应用程序的代码在他们身上运行,类似这些错误的事情不会再发生,或者像这样的事件相对常见。如果是这种情况,听起来非常痛苦,必须检查并可能为许多版本进行相应的开发,所以我想知道是否有一些捷径,即使它没有正确提供应用程序的100%安全性功能开发,它提供了很好的安全比例。

+0

由于应用程序在棉花糖之前的目标版本,它不检查运行时权限。也许你的应用程序需要权限,用户必须明确允许在设置 – nandsito

+0

@nandsito感谢您的评论,问题不存在。无论如何,这个问题的目标是在不同版本的Android中运行应用程序时知道这些类型的错误是否普遍,如果它们是,如何正确对待它们,我只是告诉我的应用程序的错误以更清楚地指出我所指的是哪种类型的错误。 – user2638180

+1

向后兼容性是一般理论上理想的软件属性,当然也是在Android中。但是Android的历史表明它并没有那么流畅,特别是当你看到API自从古老的版本如姜饼或冰淇淋三明治到牛轧糖/ O之后是如何改变的。有些API比其他API更稳定,因此发生API版本问题的可能性取决于您使用的API。但是从一般意义上说,Android API的变化相当大,速度也相当可观。我不希望应用程序在没有更新的情况下能够正常运行两三年 – nandsito

回答

1

我认为一般来说一个应用程序是向前兼容的,但前提是您确保不使用私有或无证的 API。

例如,当我第一次开始使用android时,网上有很多关于如何发送和接收文本消息的信息,这些消息在谷歌文档中根本没有提及。使用该信息(未记录的api)会导致我的应用程序在KitKat推出时出现中断,并为此特定用途正式记录api,因为同时他们删除了无证API中可用的功能。请参阅details。上面的例子。

下面是一些信息的链接兼容性: https://developer.android.com/guide/topics/manifest/uses-sdk-element.html

并剪断,它的相关部分的

应用向前兼容Android应用程序通常是随着新版本 向前兼容Android平台。

因为几乎所有的框架API的变化是添加剂,使用API​​的任何版本(正如其API级别指定 )的 Android应用程序开发的是更高版本的Android平台的 和更高的向前兼容API级别。应用程序应 能够在所有更高版本的Android平台上运行,除了在应用程序使用后面由于某种原因删除了 的部分API的个别情况下的 除外。

转发兼容性非常重要,因为许多由Android驱动的 设备接收无线(OTA)系统更新。用户可能会 安装您的应用程序并成功使用它,然后再接收 OTA更新到新版本的Android平台。一旦安装了 更新,您的应用程序将运行在新的运行环境版本 版本的环境中,但具有应用程序所依赖的API和系统功能的版本。

在某些情况下,在API下方进行的更改(如基础 系统本身中的更改)可能会影响您的应用程序在新环境中运行时的应用程序。因此,作为应用程序开发人员,您应该了解应用程序的外观和 在每个系统环境中的行为。为了帮助您在不同版本的Android平台上测试您的应用程序 ,Android SDK包含多个可供下载的平台。每个平台都包含一个兼容的系统映像,您可以在AVD中运行,以测试您的 应用程序。