2017-05-14 121 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中運行,以測試您的 應用程序。