當前位置:
首頁 > 最新 > 谷歌確認將限制Android非SDK介面使用了

谷歌確認將限制Android非SDK介面使用了

譯者|核子可樂

編輯|覃雲

上個月,我們曾報道過Android 9.0 將禁止使用非官方 API,引起了開發者的熱烈的討論,時隔一個多月,Android 團隊終於發聲證實了這個說法,聲稱從 Android 9.0 開始,對非 SDK 的 API 的限制從 NDK 擴展到 Java,並表明這樣做的目的是為了提高系統的穩定性,接下來,我們來看看他們是怎麼說的。

谷歌聲明全文

在 Android 系統當中,我們一直在尋找各種方法以儘可能保證理想的穩定性,從而改善用戶與開發人員體驗。本著這一思路,我們努力確保應用程序不使用非 SDK 介面,因為此類作法往往會導致用戶遭遇崩潰,並給開發人員的緊急發布造成困擾。

在 Android N 當中,我們限制了 C/C++ 代碼所能使用的符號組合。此項變更確保使用 C++ 代碼的應用程序能夠始終對接穩定的 NDK 介面,而不會因依賴於不穩定的非 NDK 介面而引發崩潰機率提升。從 Android 的下一個版本開始,我們將進一步擴展此類限制,從而涵蓋 SDK 的 Java 語言介面以進一步鞏固穩定性水平。

將帶來哪些影響?

自 Android 的下一個版本開始,非 SDK 方法與欄位的使用將受到限制,您將無法對其進行訪問——無論通過直接、反射或者 JNI 等方式。如果加以嘗試,您會看到 NoSuchFieldException 或者 NoSuchMethodException 等錯誤提示。

最初,此項限制主要涵蓋使用率較低或並未得到實際使用的介面。我們在規劃與設計工作當中,充分重新我們的開發者社區,並希望在解決用戶及設備製造商所反饋的應用程序穩定性問題的同時,儘可能避免引入大幅度變更。如果您在實際開發當中存在一些能夠遷移至 SDK 進行解決,但在技術層面存在挑戰性的需求,我們將允許您繼續使用原有方法,直到您逐步將應用程序更新至最新 API。

我們計劃在未來的 Android 版本當中進一步擴大這些限制,為開發人員提供充分的遷移時間,同時長期發布警報通告,並在此期間收集與所需 SDK 介面相關的反饋意見。我們一直在強調使用非 SDK 介面的風險性影響——當我們重構代碼以添加功能或修復 bug 時,使用非 SDK 介面可能在各類 Android 版本當中引發不可知的變化。因此,如果您的應用程序目前仍依賴於非 SDK 介面,則應儘快著手向 SDK 備選方案進行遷移。

由於 Java 語言與 C++ 在特性方面存在巨大差異,因此對 Java 語言的具體限制方式將與立足符號的 C++ 限制略有區別。您不應訪問不屬於我們 SDK 的類,同時亦需要確保僅使用各個類當中被納入官方文檔的部分。具體來講,這意味著當您通過反射等語義與某個類進行交互時,所訪問的方法或欄位皆在 SDK 當中得以明確列出。

如果缺少 SDK 替代選項,該如何處理?

我們知道,某些應用程序所使用的非 SDK 介面可能還找不到可行的 SDK 替代選項。我們非常重視您對於公共 API 擴展及改進方面提出的反饋意見。如果您確信在 SDK API 得到對應擴展之前無法停止使用非 SDK 介面,請通過我們的 bug 追蹤器提供相關信息。及時獲取這些反饋意見對我們來說非常重要,我們需要利用這部分資訊繼續調整限制黑名單,從而最大限度降低此次遷移對開發人員的影響,同時著手為未來將陸續推出的各 Android 系統平台開發一切必要的替代方案。

接下來將發生哪些變化?

在下一個 Android 開發者預覽版當中,您將能夠運行現有應用程序,並在使用非 SDK 介面時收到警告提示——該介面將在最終版本中受到黑名單或灰名單機制的限制。請確保您的應用在開發者預覽版中始終遵循最佳實踐 ; 另外,如果您擔心自己的應用可能受到影響,請特別關注介面兼容性警告信息。

利用即將推出的開發者預覽版與新的 bug 追蹤器目錄,我們將專註於監控非 SDK 介面的使用情況。如果相關介面已經擁有官方支持的 SDK 替代選項,我們將發布官方指南以幫助您了解如何從非 SDK 介面遷移至官方支持方案。

移動開發前線

活動推薦

視頻、3D、機器學習、演算法工程化、IOT、智能硬體等新的命題正在被提出,豐富的內容生態以及內容形式在給傳統開發的模式和線上的穩定性帶來了新的挑戰,而怪物級 APP 的移動開放生態也使得越來越多的移動開發者開始圍繞著生態進行開發。QCon 北京 2018 會挑選部分話題來給大家分享,希望大家能夠看到新移動技術的發展方向。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 移動開發前線 的精彩文章:

2018年不可錯過的12個移動UX設計趨勢
iOS 11.3將迎來PWA,你做好準備了嗎?

TAG:移動開發前線 |