Android API在不同版本系統上的相容性

2021-09-22 13:36:41 字數 638 閱讀 2120

隨著安卓版本的不斷更新,新的api不斷湧出,有時候高版本的api會在低版本crash的。

如果minsdkversion設定過低,在build的時候,就會報錯(call requires api level 17 (current min is 9));

這時候為了編譯可以通過,可以新增@suppresslint("newapi")或者@targeapi(9)註解。

這樣只是編譯通過,執行時依然會crash的。

正確的做法

為了執行時不報錯, 需要:

判斷執行時版本,在低版本系統不呼叫此方法

同時為了保證功能的完整性,需要提供低版本功能實現

小結:在使用高於minsdkversionapi level的方法需要:

如果用@targeapi($api_level)可以編譯通過, 那就不使用@suppresslint("newapi");

執行時判斷api level; 僅在足夠高,有此方法的api level系統中,才呼叫此方法;

保證功能完整性,保證低api版本通過其他方法提供功能實現。

容易忽略的api小細節,好在,ide開發工具,會自動提醒你的。

在不同版本python下安裝tensorflow

note 這樣在不同的環境下切換安裝看起來很煩,的確煩,但是在conda環境下安裝,省去了安裝scipy,numpy 有些不太好安裝的科學計算庫,剛才我們的tensorflow就是裝在conda3下的python3.5下,那樣我們可以很方便地使用conda的庫 官網上的安裝tensorflow是pi...

truncate在不同版本中的區別

中午和同事討論truncate到底會不會釋放資源,大部分都認為會,但是其實具體情況是和mysql的版本有關。before 5.0.3 truncate是delete rows one by one。between 5.0.3 and 5.0.8 當有外來鍵的時候還是delete rows one b...

怎麼在linux切換不同版本的python

最近因為裝pwndbg遇到了點問題,發現有些python庫匯入不了 查了下才發現pwndbg需要python版本為3.5 可是我做pwn題要用的pwntools是用python2的 所以我就查了一下怎麼在linux下共存不同的python版本 發現了乙個神器pyenv github 用這個工具可以很...