Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>from the <a href="http://developer.android.com/guide/topics/manifest/uses-sdk-element.html" rel="nofollow">Documentation</a> you can read the following:</p> <p><strong>android:minSdkVersion</strong></p> <p>An integer designating the minimum API Level required for the application to run. The Android system <strong>will prevent the user from installing the application if the system's API Level is lower</strong> than the value specified in this attribute. You should always declare this attribute.</p> <p>and</p> <p><strong>android:targetSdkVersion</strong></p> <p>An integer designating the API Level that the application targets. If not set, the default value equals that given to minSdkVersion. This attribute informs the system that you have tested against the target version and the system <strong>should not enable any compatibility behaviors to maintain your app's forward-compatibility with the target version.</strong> The application is still able to run on older versions (down to minSdkVersion).</p> <p>And to answer your last question, targeting the latest API will not allow you to execute any newer method or use any newer class on old phones, for that you need to use the support packages, with that you are able to obtain a close result to what you can do in newer APIs.</p> <p>Hope this gives you a more clear idead of why you have those two values and the difference between them.</p> <p><strong>UPDATE:</strong></p> <p>Well about the example of something built for windows 2000 and working on windows 8, is not guarantee that it will work, that is why on windows you have the "run with compatibility" mode, and then you select according to what operating system you want to run it.</p> <p>This is because maybe both OS (or APIs in this case) have the same method or option, they do it in a different ways or need other permissions. The same happens here, so the target SDK will be the reference frame against you tested and thus it will use that behavior if you run it on newer devides than the taget SDK.</p> <p>For the APIs between the min and the target they will run as normally they do, and so you can always have a weird behavior and some patching might be need it, normally is most visible on the 2.x to 3.x jump.</p> <p><strong>UPDATE 2:</strong></p> <p>Well, let me try to explain it in a different way.</p> <p>The minSDK will determine which methods and options you can use throughout the application, this means that if a method is only available after that API, you will not be able to use it and instead get an error message.</p> <p>The targetSDK represents the lastest version of the API that you tested and so, if the phone has a newer API than the one you specified, it will try to behave as it was on the API version you specified, take for example <a href="http://developer.android.com/about/versions/android-4.4.html" rel="nofollow">this</a>, in the section <strong>Important Behavior Changes</strong>:</p> <blockquote> <p>This inexact batching behavior applies only to updated apps. If you've set the targetSdkVersion to "18" or lower, your alarms will continue behave as they have on previous versions when running on Android 4.4.</p> </blockquote> <p>So, as you can see there, if you set the targetSDK to a previous API (before 19), it will behave as it use to, but if you target the newest API (at this moment API 19), then it will behave differently.</p> <p>Hope i was clear enough, if not, please do not hesitate and ask.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload