1<?cs include:"doctype.cs" ?> 2<?cs include:"macros.cs" ?> 3<html<?cs if:devsite ?> devsite<?cs /if ?>> 4<?cs if:sdk.redirect ?> 5 <head> 6 <title>Redirecting...</title> 7 <meta http-equiv="refresh" content="0;url=<?cs var:toroot ?>sdk/<?cs 8 if:sdk.redirect.path ?><?cs var:sdk.redirect.path ?><?cs 9 else ?>index.html<?cs /if ?>"> 10 </head> 11<?cs else ?> 12 <?cs include:"head_tag.cs" ?> 13<?cs /if ?> 14<body class="gc-documentation 15 <?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs 16 elif:design ?>design<?cs 17 elif:distribute ?>distribute<?cs 18 /if ?>" itemscope itemtype="http://schema.org/CreativeWork"> 19 <a name="top"></a> 20<?cs include:"header.cs" ?> 21 22 23<div <?cs if:fullpage 24?><?cs else 25?>class="col-13" id="doc-col"<?cs /if ?> > 26 27<?cs if:sdk.redirect ?> 28 29<div class="g-unit"> 30 <div id="jd-content"> 31 <p>Redirecting to 32 <a href="<?cs var:toroot ?>sdk/<?cs 33 if:sdk.redirect.path ?><?cs var:sdk.redirect.path ?><?cs 34 else ?>index.html<?cs /if ?>"><?cs 35 if:sdk.redirect.path ?><?cs var:sdk.redirect.path ?><?cs 36 else ?>Download the SDK<?cs /if ?> 37 </a> ...</p> 38 39<?cs else ?> 40<?cs # else, if NOT redirect ... 41# 42# 43# The following is for SDK/NDK pages 44# 45# 46?> 47 48<?cs if:header.hide ?><?cs else ?> 49<h1 itemprop="name"><?cs var:page.title ?></h1> 50<?cs /if ?> 51 <div id="jd-content" itemprop="description"> 52 53<?cs if:sdk.not_latest_version ?> 54 <div class="special"> 55 <p><strong>This is NOT the current Android SDK release.</strong></p> 56 <p><a href="/sdk/index.html">Download the current Android SDK</a></p> 57 </div> 58<?cs /if ?> 59 60 61<?cs if:ndk ?> 62<?cs # 63# 64# 65# 66# 67# 68# 69# the following is for the NDK 70# 71# (nested in if/else redirect) 72# 73# 74# 75# 76?> 77 78 <table class="download" id="download-table"> 79 <tr> 80 <th>Platform</th> 81 <th>Package</th> 82 <th style="white-space:nowrap">Size (Bytes)</th> 83 <th>MD5 Checksum</th> 84 </tr> 85 <tr> 86 <td rowspan="2" style="white-space:nowrap">Windows 32-bit</td> 87 <td> 88 <a onClick="return onDownload(this)" 89 href="http://dl.google.com/android/ndk/<?cs var:ndk.win32_download ?>"><?cs var:ndk.win32_download ?></a> 90 </td> 91 <td><?cs var:ndk.win32_bytes ?></td> 92 <td><?cs var:ndk.win32_checksum ?></td> 93 </tr> 94 <tr> 95 <td> 96 <a onClick="return onDownload(this)" 97 href="http://dl.google.com/android/ndk/<?cs var:ndk.win32.legacy_download ?>"><?cs var:ndk.win32.legacy_download ?></a> 98 </td> 99 <td><?cs var:ndk.win32.legacy_bytes ?></td> 100 <td><?cs var:ndk.win32.legacy_checksum ?></td> 101 </tr> 102 <tr> 103 <td rowspan="2" style="white-space:nowrap">Windows 64-bit</td> 104 <td> 105 <a onClick="return onDownload(this)" 106 href="http://dl.google.com/android/ndk/<?cs var:ndk.win64_download ?>"><?cs var:ndk.win64_download ?></a> 107 </td> 108 <td><?cs var:ndk.win64_bytes ?></td> 109 <td><?cs var:ndk.win64_checksum ?></td> 110 </tr> 111 <tr> 112 <td> 113 <a onClick="return onDownload(this)" 114 href="http://dl.google.com/android/ndk/<?cs var:ndk.win64.legacy_download ?>"><?cs var:ndk.win64.legacy_download ?></a> 115 </td> 116 <td><?cs var:ndk.win64.legacy_bytes ?></td> 117 <td><?cs var:ndk.win64.legacy_checksum ?></td> 118 </tr> 119 <tr> 120 <td rowspan="2" style="white-space:nowrap">Mac OS X 32-bit</td> 121 <td> 122 <a onClick="return onDownload(this)" 123 href="http://dl.google.com/android/ndk/<?cs var:ndk.mac32_download ?>"><?cs var:ndk.mac32_download ?></a> 124 </td> 125 <td><?cs var:ndk.mac32_bytes ?></td> 126 <td><?cs var:ndk.mac32_checksum ?></td> 127 </tr> 128 <tr> 129 <td> 130 <a onClick="return onDownload(this)" 131 href="http://dl.google.com/android/ndk/<?cs var:ndk.mac32.legacy_download ?>"><?cs var:ndk.mac32.legacy_download ?></a> 132 </td> 133 <td><?cs var:ndk.mac32.legacy_bytes ?></td> 134 <td><?cs var:ndk.mac32.legacy_checksum ?></td> 135 </tr> 136 <tr> 137 <td rowspan="2" style="white-space:nowrap">Mac OS X 64-bit</td> 138 <td> 139 <a onClick="return onDownload(this)" 140 href="http://dl.google.com/android/ndk/<?cs var:ndk.mac64_download ?>"><?cs var:ndk.mac64_download ?></a> 141 </td> 142 <td><?cs var:ndk.mac64_bytes ?></td> 143 <td><?cs var:ndk.mac64_checksum ?></td> 144 </tr> 145 <tr> 146 <td> 147 <a onClick="return onDownload(this)" 148 href="http://dl.google.com/android/ndk/<?cs var:ndk.mac64.legacy_download ?>"><?cs var:ndk.mac64.legacy_download ?></a> 149 </td> 150 <td><?cs var:ndk.mac64.legacy_bytes ?></td> 151 <td><?cs var:ndk.mac64.legacy_checksum ?></td> 152 </tr> 153 154 <tr> 155 <td rowspan="2" style="white-space:nowrap">Linux 32-bit (x86)</td> 156 <td> 157 <a onClick="return onDownload(this)" 158 href="http://dl.google.com/android/ndk/<?cs var:ndk.linux32_download ?>"><?cs var:ndk.linux32_download ?></a> 159 </td> 160 <td><?cs var:ndk.linux32_bytes ?></td> 161 <td><?cs var:ndk.linux32_checksum ?></td> 162 </tr> 163 <tr> 164 <td> 165 <a onClick="return onDownload(this)" 166 href="http://dl.google.com/android/ndk/<?cs var:ndk.linux32.legacy_download ?>"><?cs var:ndk.linux32.legacy_download ?></a> 167 </td> 168 <td><?cs var:ndk.linux32.legacy_bytes ?></td> 169 <td><?cs var:ndk.linux32.legacy_checksum ?></td> 170 </tr> 171 <tr> 172 <td rowspan="2" style="white-space:nowrap">Linux 64-bit (x86)</td> 173 <td> 174 <a onClick="return onDownload(this)" 175 href="http://dl.google.com/android/ndk/<?cs var:ndk.linux64_download ?>"><?cs var:ndk.linux64_download ?></a> 176 </td> 177 <td><?cs var:ndk.linux64_bytes ?></td> 178 <td><?cs var:ndk.linux64_checksum ?></td> 179 </tr> 180 <tr> 181 <td> 182 <a onClick="return onDownload(this)" 183 href="http://dl.google.com/android/ndk/<?cs var:ndk.linux64.legacy_download ?>"><?cs var:ndk.linux64.legacy_download ?></a> 184 </td> 185 <td><?cs var:ndk.linux64.legacy_bytes ?></td> 186 <td><?cs var:ndk.linux64.legacy_checksum ?></td> 187 </tr> 188 </table> 189 190 <?cs ######## HERE IS THE JD DOC CONTENT ######### ?> 191 <?cs call:tag_list(root.descr) ?> 192 193 194 195<script> 196 function onDownload(link) { 197 198 $("#downloadForRealz").html("Download " + $(link).text()); 199 $("#downloadForRealz").attr('href',$(link).attr('href')); 200 201 $("#tos").fadeIn('slow'); 202 203 location.hash = "download"; 204 return false; 205 } 206 207 208 function onAgreeChecked() { 209 if ($("input#agree").is(":checked")) { 210 $("a#downloadForRealz").removeClass('disabled'); 211 } else { 212 $("a#downloadForRealz").addClass('disabled'); 213 } 214 } 215 216 function onDownloadNdkForRealz(link) { 217 if ($("input#agree").is(':checked')) { 218 $("#tos").fadeOut('slow'); 219 220 $('html, body').animate({ 221 scrollTop: $("#Installing").offset().top 222 }, 800, function() { 223 $("#Installing").click(); 224 }); 225 226 return true; 227 } else { 228 $("label#agreeLabel").parent().stop().animate({color: "#258AAF"}, 200, 229 function() {$("label#agreeLabel").parent().stop().animate({color: "#222"}, 200)} 230 ); 231 return false; 232 } 233 } 234 235 $(window).hashchange( function(){ 236 if (location.hash == "") { 237 location.reload(); 238 } 239 }); 240 241</script> 242 243 <?cs else ?> 244<?cs # end if NDK ... 245# 246# 247# 248# 249# 250# 251# the following is for the SDK 252# 253# (nested in if/else redirect and if/else NDK) 254# 255# 256# 257# 258?> 259 <?cs if:android.whichdoc == "online" ?> 260 261 262<?cs ######## HERE IS THE JD DOC CONTENT FOR ONLINE ######### ?> 263<?cs call:tag_list(root.descr) ?> 264 265 266 267 268<h4><a href='' class="expandable" 269 onclick="toggleExpandable(this,'.pax');hideExpandable('.myide,.reqs');return false;" 270 >DOWNLOAD FOR OTHER PLATFORMS</a></h4> 271 272 273<div class="pax col-13 online" style="display:none;margin:0;"> 274 275 276<p class="table-caption"><strong>ADT Bundle</strong></p> 277 <table class="download"> 278 <tr> 279 <th>Platform</th> 280 <th>Package</th> 281 <th>Size</th> 282 <th>MD5 Checksum</th> 283 </tr> 284 <tr> 285 <td>Windows 32-bit</td> 286 <td> 287 <a onClick="return onDownload(this)" id="win-bundle32" 288 href="http://dl.google.com/android/adt/<?cs var:sdk.win32_bundle_download ?>"><?cs var:sdk.win32_bundle_download ?></a> 289 </td> 290 <td><?cs var:sdk.win32_bundle_bytes ?> bytes</td> 291 <td><?cs var:sdk.win32_bundle_checksum ?></td> 292 </tr> 293 <tr> 294 <td>Windows 64-bit</td> 295 <td> 296 <a onClick="return onDownload(this)" id="win-bundle64" 297 href="http://dl.google.com/android/adt/<?cs var:sdk.win64_bundle_download ?>"><?cs var:sdk.win64_bundle_download ?></a> 298 </td> 299 <td><?cs var:sdk.win64_bundle_bytes ?> bytes</td> 300 <td><?cs var:sdk.win64_bundle_checksum ?></td> 301 </tr> 302 <tr> 303 <td><nobr>Mac OS X 64-bit</nobr></td> 304 <td> 305 <a onClick="return onDownload(this)" id="mac-bundle64" 306 href="http://dl.google.com/android/adt/<?cs var:sdk.mac64_bundle_download ?>"><?cs var:sdk.mac64_bundle_download ?></a> 307 </td> 308 <td><?cs var:sdk.mac64_bundle_bytes ?> bytes</td> 309 <td><?cs var:sdk.mac64_bundle_checksum ?></td> 310 </tr> 311 <tr> 312 <td>Linux 32-bit</td> 313 <td> 314 <a onClick="return onDownload(this)" id="linux-bundle32" 315 href="http://dl.google.com/android/adt/<?cs var:sdk.linux32_bundle_download ?>"><?cs var:sdk.linux32_bundle_download ?></a> 316 </td> 317 <td><?cs var:sdk.linux32_bundle_bytes ?> bytes</td> 318 <td><?cs var:sdk.linux32_bundle_checksum ?></td> 319 </tr> 320 <tr> 321 <td>Linux 64-bit</td> 322 <td> 323 <a onClick="return onDownload(this)" id="linux-bundle64" 324 href="http://dl.google.com/android/adt/<?cs var:sdk.linux64_bundle_download ?>"><?cs var:sdk.linux64_bundle_download ?></a> 325 </td> 326 <td><?cs var:sdk.linux64_bundle_bytes ?> bytes</td> 327 <td><?cs var:sdk.linux64_bundle_checksum ?></td> 328 </tr> 329 </table> 330 331 332<p class="table-caption"><strong>SDK Tools Only</strong></p> 333 <table class="download"> 334 <tr> 335 <th>Platform</th> 336 <th>Package</th> 337 <th>Size</th> 338 <th>MD5 Checksum</th> 339 </tr> 340 <tr> 341 <td rowspan="2">Windows<br>32 & 64-bit</td> 342 <td> 343 <a onclick="return onDownload(this)" href="http://dl.google.com/android/<?cs var:sdk.win_download 344?>"><?cs var:sdk.win_download ?></a> 345 </td> 346 <td><?cs var:sdk.win_bytes ?> bytes</td> 347 <td><?cs var:sdk.win_checksum ?></td> 348 </tr> 349 <tr> 350 <!-- blank TD from Windows rowspan --> 351 <td> 352 <a onclick="return onDownload(this)" id="win-tools" href="http://dl.google.com/android/<?cs 353var:sdk.win_installer 354?>"><?cs var:sdk.win_installer ?></a> (Recommended) 355 </td> 356 <td><?cs var:sdk.win_installer_bytes ?> bytes</td> 357 <td><?cs var:sdk.win_installer_checksum ?></td> 358 </tr> 359 <tr> 360 <td><nobr>Mac OS X</nobr><br>32 & 64-bit</td> 361 <td> 362 <a onclick="return onDownload(this)" id="mac-tools" href="http://dl.google.com/android/<?cs 363var:sdk.mac_download 364?>"><?cs var:sdk.mac_download ?></a> 365 </td> 366 <td><?cs var:sdk.mac_bytes ?> bytes</td> 367 <td><?cs var:sdk.mac_checksum ?></td> 368 </tr> 369 <tr> 370 <td>Linux<br>32 & 64-bit</td> 371 <td> 372 <a onclick="return onDownload(this)" id="linux-tools" href="http://dl.google.com/android/<?cs 373var:sdk.linux_download 374?>"><?cs var:sdk.linux_download ?></a> 375 </td> 376 <td><?cs var:sdk.linux_bytes ?> bytes</td> 377 <td><?cs var:sdk.linux_checksum ?></td> 378 </tr> 379 </table> 380 381</div><!-- end pax --> 382 383 384 385</div><!-- end col-13 for lower-half content --> 386 387 388 389 390<script> 391 if (location.hash == "#Requirements") { 392 $('.reqs').show(); 393 } else if (location.hash == "#ExistingIDE") { 394 $('.ide').show(); 395 } 396 397 var os; 398 var bundlename; 399 var $toolslink; 400 401 if (navigator.appVersion.indexOf("Win")!=-1) { 402 os = "Windows"; 403 bundlename = '#win-bundle'; 404 $toolslink = $('#win-tools'); 405 } else if (navigator.appVersion.indexOf("Mac")!=-1) { 406 os = "Mac"; 407 bundlename = '#mac-bundle'; 408 $toolslink = $('#mac-tools'); 409 } else if (navigator.appVersion.indexOf("Linux")!=-1) { 410 os = "Linux"; 411 bundlename = '#linux-bundle'; 412 $toolslink = $('#linux-tools'); 413 } 414 415 if (os) { 416 $('#not-supported').hide(); 417 418 /* set up primary adt download button */ 419 $('#download-bundle-button').show(); 420 $('#download-bundle-button').append("Download the SDK <br/><span class='small'>ADT Bundle for " + os + "</span>"); 421 $('#download-bundle-button').click(function() {return onDownload(this,true,true);}).attr('href', bundlename); 422 423 /* set up sdk tools only button */ 424 $('#download-tools-button').show(); 425 $('#download-tools-button').append("Download the SDK Tools for " + os); 426 $('#download-tools-button').click(function() {return onDownload(this,true);}).attr('href', $toolslink.attr('href')); 427 } else { 428 $('.pax').show(); 429 } 430 431 432 function onDownload(link, button, bundle) { 433 434 /* set text for download button */ 435 if (button) { 436 $("#downloadForRealz").html($(link).text()); 437 } else { 438 $("#downloadForRealz").html("Download " + $(link).text()); 439 } 440 441 /* if it's a bundle, show the 32/64-bit picker */ 442 if (bundle) { 443 $("#downloadForRealz").attr('bundle','true'); 444 if ($("#downloadForRealz").text().indexOf("Mac") == -1) { 445 $("p#bitpicker").show(); 446 } else { 447 /* mac is always 64 bit, so set it checked */ 448 $("p#bitpicker input[value=64]").attr('checked', true); 449 } 450 /* save link name until the bit version is chosen */ 451 $("#downloadForRealz").attr('name',$(link).attr('href')); 452 } else { 453 /* if not using bundle, set download button to ignore bitpicker and set url */ 454 $("#downloadForRealz").attr('bundle','false'); 455 $("#downloadForRealz").attr('href',$(link).attr('href')); 456 /* set picker checked as a fake default */ 457 $("p#bitpicker input[value=64]").attr('checked', true); 458 $("a#next-link").html("Setting Up an Existing IDE").attr('href',toRoot + 'sdk/installing/index.html'); 459 } 460 461 $("#tos").fadeIn('fast'); 462 $("#landing").fadeOut('fast'); 463 464 location.hash = "download"; 465 return false; 466 } 467 468 469 function onAgreeChecked() { 470 /* verify that the TOS is agreed and a bit version is chosen */ 471 if ($("input#agree").is(":checked") && $("#bitpicker input:checked").length) { 472 473 /* if downloading the bundle */ 474 if ($("#downloadForRealz").attr('bundle')) { 475 /* construct the name of the link we want based on the bit version */ 476 linkId = $("a#downloadForRealz").attr("name") + $("#bitpicker input:checked").val(); 477 /* set the real url for download */ 478 $("a#downloadForRealz").attr("href", $(linkId).attr("href")); 479 } 480 481 /* reveal the download button */ 482 $("a#downloadForRealz").removeClass('disabled'); 483 } else { 484 $("a#downloadForRealz").addClass('disabled'); 485 } 486 } 487 488 function onDownloadForRealz(link) { 489 if ($("input#agree").is(':checked') && $("#bitpicker input:checked").length) { 490 $("div.sdk-terms").slideUp(); 491 $("#sdk-terms-form,.sdk-terms-intro").fadeOut('slow'); 492 $("#next-steps").fadeIn('slow'); 493 $("h1#tos-header").text('Get Ready to Code!'); 494 return true; 495 } else { 496 $("label#agreeLabel,#bitpicker input").parent().stop().animate({color: "#258AAF"}, 200, 497 function() {$("label#agreeLabel,#bitpicker input").parent().stop().animate({color: "#222"}, 200)} 498 ); 499 return false; 500 } 501 } 502 503 $(window).hashchange( function(){ 504 if (location.hash == "") { 505 location.reload(); 506 } 507 }); 508 509</script> 510 511 512 513</div><!-- end the wrapper used for relative/absolute positions --> 514<?cs # THIS DIV WAS OPENED IN INDEX.JD ?> 515 516 517 518 519 <?cs else ?> <?cs # end if online ?> 520 521 <?cs if:sdk.preview ?><?cs # it's preview offline docs ?> 522 <p>Welcome developers! We are pleased to provide you with a preview SDK for the upcoming 523 Android 3.0 release, to give you a head-start on developing applications for it. 524 </p> 525 526 <p>See the <a 527 href="<?cs var:toroot ?>sdk/preview/start.html">Getting Started</a> document for more information 528 about how to set up the preview SDK and get started.</p> 529 <style type="text/css"> 530 .non-preview { display:none; } 531 </style> 532 533 <?cs else ?><?cs # it's normal offline docs ?> 534 535 <?cs ######## HERE IS THE JD DOC CONTENT FOR OFFLINE ######### ?> 536 <?cs call:tag_list(root.descr) ?> 537 <style type="text/css"> 538 body .offline { display:block; } 539 body .online { display:none; } 540 </style> 541 <script> 542 $('.reqs').show(); 543 </script> 544 <?cs /if ?> 545 546 <?cs /if ?> <?cs # end if/else online ?> 547 548<?cs /if ?> <?cs # end if/else NDK ?> 549 550<?cs /if ?> <?cs # end if/else redirect ?> 551 552 553</div><!-- end jd-content --> 554 555<?cs if:!sdk.redirect ?> 556<?cs include:"footer.cs" ?> 557<?cs /if ?> 558 559</div><!-- end g-unit --> 560 561<?cs include:"trailer.cs" ?> 562 563</body> 564</html> 565 566 567 568