Home | History | Annotate | Download | only in versions
      1 page.title=Android 1.1 Version Notes
      2 excludeFromSuggestions=true
      3 sdk.version=1.1_r1
      4 sys.date=February 2009
      5 @jd:body
      6 
      7 <p>
      8 <em>Date:</em> February 2009<br />
      9 <em>API Level:</em>&nbsp;<strong>2</strong></p>
     10 
     11 
     12 <p>This document provides version notes for the Android 1.1 system image included in the SDK. 
     13 
     14 <ul>
     15 <li><a href="#overview">Overview</a>
     16 <li><a href="#overview">External Libraries</a>
     17 <li><a href="#comp">Device Compatibility</a>
     18 <li><a href="#apps">Built-in Applications</a>
     19 <li><a href="#locs">UI Localizations</a>
     20 <li><a href="#resolved-issues">Resolved Issues</a>
     21 <li><a href="#features">New Features</a>
     22 <li><a href="#api-changes">API Changes</a>
     23 </ul></p>
     24 
     25 <h2 id="overview">Overview</h2>
     26 
     27 <p>The Android 1.1 system image delivered in the SDK is the development
     28 counterpart to the Android 1.1 production system image, deployable to
     29 Android-powered handsets starting in February 2009. </p>
     30 
     31 <p>The Android 1.1 system image delivers an updated version of the framework
     32 API. As with the Android 1.0 API, the Android 1.1 API 
     33 is assigned an integer identifier &mdash; <strong>2</strong> &mdash; that is
     34 stored in the system itself. This identifier, called the "API Level", allows the
     35 system to correctly determine whether an application is compatible with
     36 the system, prior to installing the application. </p>
     37 
     38 <p>Applications indicate the lowest system API Level that they are compatible with by adding
     39 a value to the <code>android:minSdkVersion</code> attribute.
     40 The value of the attribute is an integer corresponding to an API Level 
     41 identifier. Prior to installing an application, the system checks the value of 
     42 <code>android:minSdkVersion</code> and allows the install only
     43 if the referenced integer is less than or equal to the API Level integer stored
     44 in the system itself. </p>
     45 
     46 <p>If you use the Android 1.1 system image to build an application
     47 compatible with Android-powered devices running the Android 1.1
     48 platform, you <strong style="color:red">must</strong> set the
     49 <code>android:minSdkVersion</code> attribute to "2" in order to specify that your application
     50 is compatible only with devices using the Android 1.1 (or greater) system image.
     51 </p>
     52 
     53 <p>Specifically, you specify the <code>android:minSdkVersion</code>
     54 attribute in a <code>&lt;uses-sdk&gt;</code> element as a child of
     55 <code>&lt;manifest&gt;</code> in the manifest file. When set, the
     56 attribute looks like this: </p>
     57 
     58 <pre><code>&lt;manifest&gt;
     59   ...
     60   &lt;uses-sdk android:minSdkVersion="2" /&gt;
     61   ...
     62 &lt;/manifest&gt;</code>
     63 </pre>
     64 
     65 <p>By setting <code>android:minSdkVersion</code> in this way, you ensure
     66 that users will only be able to install your application if their
     67 devices are running the Android 1.1 platform. In turn, this ensures that
     68 your application will function properly on their devices, especially if
     69 it uses <a href="#apichange">APIs introduced in Android 1.1</a>. </p>
     70 
     71 <p>If your application uses APIs introduced in Android 1.1 but does not
     72 declare <code>&lt;uses-sdk android:minSdkVersion="2" /&gt;</code>, then it will
     73 run properly on Android 1.1 devices but <em>not</em> on Android 1.0
     74 devices. In the latter case, the application will crash at runtime when
     75 it tries to use the Android 1.1 APIs.</p>
     76 
     77 <p>If your application does not use any new APIs introduced in Android
     78 1.1, you can indicate Android 1.0 compatibility by removing
     79 <code>android:minSdkVersion</code> or setting the attribute to "1". However,
     80 before publishing your application, you must make sure to compile your
     81 application against the Android 1.0 system image (available in the
     82 Android 1.0 SDK), to ensure that it builds and functions properly for
     83 Android 1.0 devices. You should test the application against system
     84 images corresponding to the API Levels that the application is designed
     85 to be compatible with.</p>
     86 
     87 <p>If you are sure your application is not using Android 1.1 APIs and
     88 has no need to use them, you might find it easier to keep working in the
     89 Android 1.0 SDK, rather than migrating to the Android 1.1 SDK and having
     90 to do additional testing.</p>
     91 
     92 
     93 <h2 id="extlibs">External Libraries</h2>
     94 
     95 <p>The system image includes these external libraries, which you can
     96 access from your application by adding a <a
     97 href="{@docRoot}guide/topics/manifest/uses-library-element.html">
     98 &lt;uses-library&gt;</a>.</p>
     99 	<ul>
    100 	<li>com.google.android.maps &mdash; gives your
    101 application access to Google Maps data. Note that, to use Google Maps
    102 data, a Maps API Key is required.</li>
    103 	</ul>
    104 
    105 <h2 id="comp">Device Compatibility</h2>
    106 
    107 <p>The Android 1.1 system image was tested for compatability with the
    108 Android-powered devices listed below:</p>
    109 	<ul>
    110 	<li>T-Mobile G1</li>
    111 	</ul>
    112 
    113 <h2 id="apps">Built-in Applications</h2>
    114 
    115 <p>The system image includes these built-in applications:</p>
    116 	<ul>
    117 	<li>Alarm Clock</li>
    118 	<li>API Demos</li>
    119 	<li>Browser</li>
    120 	<li>Calculator</li>
    121 	<li>Camera</li>
    122 	<li>Contacts</li>
    123 	<li>Dev Tools</li>
    124 	<li>Dialer</li>
    125 	<li>Email</li>
    126 	<li>Maps (and StreetView)</li>
    127 	<li>Messaging</li>
    128 	<li>Music</li>
    129 	<li>Pictures</li>
    130 	<li>Settings</li>
    131 	</ul>
    132 
    133 <h2 id="locs">UI Localizations</h2>
    134 
    135 <p>The system image provides localized UI strings for the languages
    136 listed below.</p>
    137 	<ul>
    138 	<li>English, US (en_US)</li>
    139 	<li>German (de) </li>
    140 	</ul>
    141 
    142 <p>Localized UI strings match the locales that are displayable in 
    143 the emulator, accessible through the device Settings application.</p>
    144 
    145 <h2 id="resolved-issues">Resolved Issues</h2>
    146 <ul>
    147 <li>AlarmClock alert now plays audio/vibe directly, rather than through
    148 AlarmManager. AlarmClock alert starts playing audio/vibe in its
    149 IntentReceiver, rather than on activity start. These changes should
    150 prevent alarms from being blocked by modal dialogs.</li>
    151 <li>Fixes to device sleep. </li>
    152 <li>Single tap no longer opens the in-call dialpad; users now need to
    153 touch and drag it. </li>
    154 <li>Fixes a bug causing approximately 1 in 25 outbound messages to
    155 freeze up the IMAP connection (to a Gmail based server) when transferred
    156 to the Sent folder.</li>
    157 <li>Removes automatic account setup entries that were broken or not
    158 testable. Adds minor fixes to a few of the remaining entries. Makes
    159 improvements to warning dialogs used for a few special cases.	</li>
    160 <li>Changes default mail checking interval to every 15 minutes (instead
    161 of defaulting to "never").</li>
    162 <li>Fixes password-quoting bugs in IMAP, so that users can include
    163 special characters in passwords (e.g. spaces).</li>
    164 <li>Fixes various errors in auto and manual account setup	</li>
    165 <li>Improves reporting for various connection errors, making it easier
    166 for the user to diagnose failed account setups.</li>
    167 <li>Fixes new-mail notifications for POP3 accounts.</li>
    168 <li>Ensures proper auto-checking of accounts marked as "never
    169 check".</li>
    170 <li>Now displays date and time using user preference (e.g. 24 hr vs.
    171 AM/PM).</li>
    172 <li>Now shows cc: in message view.</li>
    173 <li>Improves recovery from POP3 connection failures.</li>
    174 <li>POP3 parser rules loosened, so the application can work with
    175 non-compliant email servers.</li>
    176 </ul>
    177 
    178 <h2 id="features">New Features</h2>
    179 
    180 <ul>
    181 <li>Maps: Adds details and reviews when a user does a search on Maps and
    182 clicks on a business to view its details.</li>
    183 <li>Dialer: In-call screen timeout default is now longer when using the
    184 speakerphone.</li>
    185 <li>Dialer: Adds a "Show dialpad" / "Hide dialpad" item to the in-call
    186 menu, to make it easier to discover the DTMF dialpad. </li>
    187 <li>Adds support for saving attachments from MMS</li>
    188 <li>Adds support for marquee in layouts.</li>
    189 </ul>
    190 
    191 <h2 id="api-changes">API Changes</h2>
    192 
    193 <h3>Overview</strong></h3>
    194 
    195 <ul>
    196 <li>Adds annotations for test systems, no actual (non-test) API
    197 changes.</li>
    198 <li>Adds a method to allow a process to easily determine its UID.
    199 <li>Adds support for marquee in layouts.</li>
    200 <li>Adds new methods for determining padding in views. Useful if you are
    201 writing your own
    202 subclasses of {@link android.view.View View}.</li>
    203 <li>Adds new permissions that allow an application to broadcast an SMS
    204 or WAP Push message. </li>
    205 <li>API cleanup: removes protected constructor from
    206 SDK-bound system images. </li>
    207 </ul>
    208 
    209 <h3>API Change Details</h3>
    210 
    211 <table>
    212 <tr>
    213 <th>Module or Feature</th><th>Change Description</th>
    214 </tr>
    215 <tr><td rowspan="4">Annotations for test systems</td></tr>
    216     <tr><td>Added {@link android.test.suitebuilder.annotation.LargeTest LargeTest} annotation.</td></tr>
    217     <tr><td>Added {@link android.test.suitebuilder.annotation.MediumTest MediumTest} annotation.</td></tr>
    218     <tr><td>Added {@link android.test.suitebuilder.annotation.SmallTest SmallTest} annotation.</td></tr>
    219 
    220 <tr><td rowspan="2">Allow a process to easily know its UID.</td></tr>
    221     <tr><td>Added public method {@link android.os.Process#myUid} to class {@link android.os.Process android.os.Process}</td></tr>
    222 
    223 <tr><td rowspan="6">Padding in views</td></tr>
    224     <tr><td>Added public method {@link android.view.View#getBottomPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr>
    225     <tr><td>Added public method {@link android.view.View#getLeftPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr>
    226     <tr><td>Added public method {@link android.view.View#getRightPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr>
    227     <tr><td>Added public method {@link android.view.View#getTopPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr>
    228     <tr><td>Added public method {@link android.view.View#isPaddingOffsetRequired} to class {@link android.view.View android.view.View}.</td></tr>
    229 
    230 <tr><td rowspan="3">Marquee support</td></tr>
    231     <tr><td>Added public method {@link android.widget.TextView#setMarqueeRepeatLimit} to class {@link android.widget.TextView}</td></tr>
    232     <tr><td>Added public field {@link android.R.attr#marqueeRepeatLimit android.R.attr.marqueeRepeatLimit}</td></tr>
    233 
    234 <tr><td rowspan="3">New permissions</td></tr>
    235     <tr><td>Added public field {@link android.Manifest.permission#BROADCAST_SMS android.Manifest.permission.BROADCAST_SMS}</td></tr>
    236     <tr><td>Added public field {@link android.Manifest.permission#BROADCAST_WAP_PUSH android.Manifest.permission.BROADCAST_WAP_PUSH}</td></tr>
    237 
    238 <tr><td rowspan="2">API cleanup</td></tr>
    239     <tr><td>Removed protected constructor java.net.ServerSocket.ServerSocket(java.net.SocketImpl).</td></tr>
    240 
    241 </table>
    242 
    243 
    244 
    245 
    246 
    247 
    248