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 注解。