android 中targetSdkVersion和與target屬性的區別


AndroidMenifest.xml中targetSdkVersion和project.properties中的target屬性的區別
      在AndroidMenifest.xml中,常常會有下面的語句:

     <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="10" android:maxSdkVersion="15" />
      在project.properties中,會看到下面的語句: target=android-10 如果是使用Eclipse的話,還可能會看到這樣的警告:
    Attribute minSdkVersion (4) is lower than the project target API level (10) 
      那么,這里面的minSdkVersion、maxSdkVersion、targetSdkVersion、target四個屬性到底有什么區別?
      minSdkVersion與maxSdkVersion比較容易理解,就是在安裝程序的時候,如果目標設備的API版本小於minSdkVersion, 或者大於maxSdkVersion,程序將無法安裝。一般來說沒有必要設置maxSdkVersion。
  targetSdkVersion相對復雜一些,如果設置了此屬性,那么在程序執行時,如果目標設備的API版本正好等於此數值, 他會告訴Android平台:此程序在此版本已經經過充分測,沒有問題。不必為此程序開啟兼容性檢查判斷的工作了。 也就是說,如果targetSdkVersion與目標設備的API版本相同時,運行效率可能會高一些。 但是,這個設置僅僅是一個聲明、一個通知,不會有太實質的作用, 比如說,使用了targetSdkVersion這個SDK版本中的一個特性,但是這個特性在低版本中是不支持的 ,那么在低版本的API設備上運行程序時,可能會報錯:java.lang.VerifyError。也就是說,此屬性不會幫你解決兼容性的測試問題。 你至少需要在minSdkVersion這個版本上將程序完整的跑一遍來確定兼容性是沒有問題的。(這個問題確實讓人頭疼)  
     project.properties中的target是指在編譯的時候使用哪個版本的API進行編譯。

   綜上,上面的四個值其實是作用於不同的時期:
   target API level是在編譯的時候起作用,用於指定使用哪個API版本(SDK版本)進行編譯。 minSdkVersion和maxSdkVersion是在程序安裝的時候起作用, 用於指定哪些版本的設備可以安裝此應用。 targetSdkVersion是在程序運行的時候起作用,用於提高指定版本的設備上程序運行體驗。
     這四個數值在程序編譯時也沒有嚴格的檢查,比如說,你可以將minSdkVersion設置的比maxSdkVersion還大,他會自動忽略掉錯誤的maxSdkVersion。
 

  轉載自:http://usenrong.iteye.com/blog/1488503


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM