targetSdkVersion 是設置但願的SDK版本,若是設置了此屬性,那麼在程序執行時,若是目標設備的API版本正好等於此數值,他會告訴Android平臺:此程序在此版本已經通過充分測,沒有問題。沒必要爲此程序開啓兼容性檢查判斷的工做了。
也就是說,若是targetSdkVersion與目標設備的API版本相同時,運行效率可能會高一些。
可是,這個設置僅僅是一個聲明、一個通知,不會有太實質的做用,
好比說,使用了targetSdkVersion這個SDK版本中的一個特性,可是這個特性在低版本中是不支持的,那麼在低版本的API設備上運行程序時,可能會報錯:java.lang.VerifyError。也就是說,此屬性不會幫你解決兼容性的測試問題。java
js調用java的時候,若是設置了targetSdkVersion,當targetSdkVersion<17時沒問題,targetSdkVersion>=17時不成功
若是您在編寫HTML5應用,須要在JS代碼中訪問Java中的函數,則您會用到WebView的addJavascriptInterface()函數。由於安全問題,在Android4.2中(若是應用的android:targetSdkVersion數值爲17+)JS只能訪問帶有 @JavascriptInterface註解的Java函數。
以前,任何Public的函數均可以在JS代碼中訪問,而Java對象繼承關係會致使不少Public的函數均可以在JS中訪問,其中一個重要的函數就是 getClass()。而後JS能夠經過反射來訪問其餘一些內容。經過引入 @JavascriptInterface註解,則在JS中只能訪問 @JavascriptInterface註解的函數。這樣就能夠加強安全性。
若是您的應用android:targetSdkVersion數值爲17或者大於17記得添加 @JavascriptInterface 註解。