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>SHA1 Checksum</th> 84 </tr> 85 <tr> 86 <td>Windows 32-bit</td> 87 <td> 88 <a onClick="return onDownload(this)" 89 href="http://dl.google.com/android/repository/<?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/repository/<?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>Windows 64-bit</td> 104 <td> 105 <a onClick="return onDownload(this)" 106 href="http://dl.google.com/android/repository/<?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/repository/<?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>Mac OS X 32-bit</td> 121 <td> 122 <a onClick="return onDownload(this)" 123 href="http://dl.google.com/android/repository/<?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/repository/<?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 <td>Mac OS X 64-bit</td> 137 <td> 138 <a onClick="return onDownload(this)" 139 href="http://dl.google.com/android/repository/<?cs var:ndk.mac64_download ?>"><?cs var:ndk.mac64_download ?></a> 140 </td> 141 <td><?cs var:ndk.mac64_bytes ?></td> 142 <td><?cs var:ndk.mac64_checksum ?></td> 143 </tr> 144 <!-- <tr> 145 <td> 146 <a onClick="return onDownload(this)" 147 href="http://dl.google.com/android/repository/<?cs var:ndk.mac64.legacy_download ?>"><?cs var:ndk.mac64.legacy_download ?></a> 148 </td> 149 <td><?cs var:ndk.mac64.legacy_bytes ?></td> 150 <td><?cs var:ndk.mac64.legacy_checksum ?></td> 151 </tr> --> 152 <!-- <tr> 153 <td> 154 <a onClick="return onDownload(this)" 155 href="http://dl.google.com/android/repository/<?cs var:ndk.linux32.legacy_download ?>"><?cs var:ndk.linux32.legacy_download ?></a> 156 </td> 157 <td><?cs var:ndk.linux32.legacy_bytes ?></td> 158 <td><?cs var:ndk.linux32.legacy_checksum ?></td> 159 </tr> --> 160 <tr> 161 <td>Linux 64-bit (x86)</td> 162 <td> 163 <a onClick="return onDownload(this)" 164 href="http://dl.google.com/android/repository/<?cs var:ndk.linux64_download ?>"><?cs var:ndk.linux64_download ?></a> 165 </td> 166 <td><?cs var:ndk.linux64_bytes ?></td> 167 <td><?cs var:ndk.linux64_checksum ?></td> 168 </tr> 169 <!-- <tr> 170 <td> 171 <a onClick="return onDownload(this)" 172 href="http://dl.google.com/android/repository/<?cs var:ndk.linux64.legacy_download ?>"><?cs var:ndk.linux64.legacy_download ?></a> 173 </td> 174 <td><?cs var:ndk.linux64.legacy_bytes ?></td> 175 <td><?cs var:ndk.linux64.legacy_checksum ?></td> 176 </tr> --> 177 178 </table> 179 180 <?cs ######## HERE IS THE JD DOC CONTENT ######### ?> 181 <?cs call:tag_list(root.descr) ?> 182 183 184 185 <script> onDownload(link)186 function onDownload(link) { 187 188 $("#downloadForRealz").html("Download " + $(link).text()); 189 $("#downloadForRealz").attr('href',$(link).attr('href')); 190 191 $("#tos").fadeIn('slow'); 192 193 location.hash = "download"; 194 return false; 195 } 196 197 onAgreeChecked()198 function onAgreeChecked() { 199 if ($("input#agree").is(":checked")) { 200 $("a#downloadForRealz").removeClass('disabled'); 201 } else { 202 $("a#downloadForRealz").addClass('disabled'); 203 } 204 } 205 onDownloadNdkForRealz(link)206 function onDownloadNdkForRealz(link) { 207 if ($("input#agree").is(':checked')) { 208 $("#tos").fadeOut('slow'); 209 210 $('html, body').animate({ 211 scrollTop: $("#Installing").offset().top 212 }, 800, function() { 213 $("#Installing").click(); 214 }); 215 216 return true; 217 } else { 218 $("label#agreeLabel").parent().stop().animate({color: "#258AAF"}, 200, 219 function() {$("label#agreeLabel").parent().stop().animate({color: "#222"}, 200)} 220 ); 221 return false; 222 } 223 } 224 function()225 $(window).hashchange( function(){ 226 if (location.hash == "") { 227 location.reload(); 228 } 229 }); 230 231 </script> 232 233 <?cs else ?> 234 <?cs # end if NDK ... 235 # 236 # 237 # 238 # 239 # 240 # 241 # the following is for the SDK 242 # 243 # (nested in if/else redirect and if/else NDK) 244 # 245 # 246 # 247 # 248 ?> 249 <?cs if:android.whichdoc == "online" ?> 250 251 252 <?cs ######## HERE IS THE JD DOC CONTENT FOR ONLINE ######### ?> 253 <?cs call:tag_list(root.descr) ?> 254 255 256 257 258 <div class="pax col-13 online" style="margin:0;"> 259 260 261 <h3>SDK Tools Only</h3> 262 263 <p>If you prefer to use a different IDE or run the tools from the 264 command line or with build scripts, you can instead download the stand-alone Android SDK Tools. 265 These packages provide the basic SDK tools for app development, without an IDE. 266 Also see the <a href="<?cs var:toroot ?>tools/sdk/tools-notes.html">SDK tools release notes</a>.</p> 267 268 <table class="download"> 269 <tr> 270 <th>Platform</th> 271 <th>Package</th> 272 <th>Size</th> 273 <th>SHA-1 Checksum</th> 274 </tr> 275 <tr> 276 <td rowspan="2">Windows</td> 277 <td> 278 <a onclick="return onDownload(this)" id="win-tools" href="http://dl.google.com/android/<?cs 279 var:sdk.win_installer 280 ?>"><?cs var:sdk.win_installer ?></a> (Recommended) 281 </td> 282 <td><?cs var:sdk.win_installer_bytes ?> bytes</td> 283 <td><?cs var:sdk.win_installer_checksum ?></td> 284 </tr> 285 <tr> 286 <!-- blank TD from Windows rowspan --> 287 <td> 288 <a onclick="return onDownload(this)" href="http://dl.google.com/android/<?cs var:sdk.win_download 289 ?>"><?cs var:sdk.win_download ?></a> 290 </td> 291 <td><?cs var:sdk.win_bytes ?> bytes</td> 292 <td><?cs var:sdk.win_checksum ?></td> 293 </tr> 294 <tr> 295 <td><nobr>Mac OS X</nobr></td> 296 <td> 297 <a onclick="return onDownload(this)" id="mac-tools" href="http://dl.google.com/android/<?cs 298 var:sdk.mac_download 299 ?>"><?cs var:sdk.mac_download ?></a> 300 </td> 301 <td><?cs var:sdk.mac_bytes ?> bytes</td> 302 <td><?cs var:sdk.mac_checksum ?></td> 303 </tr> 304 <tr> 305 <td>Linux</td> 306 <td> 307 <a onclick="return onDownload(this)" id="linux-tools" href="http://dl.google.com/android/<?cs 308 var:sdk.linux_download 309 ?>"><?cs var:sdk.linux_download ?></a> 310 </td> 311 <td><?cs var:sdk.linux_bytes ?> bytes</td> 312 <td><?cs var:sdk.linux_checksum ?></td> 313 </tr> 314 </table> 315 316 317 318 <h3>All Android Studio Packages</h3> 319 320 <p>Select a specific Android Studio package for your platform. Also see the 321 <a href="<?cs var:toroot ?>tools/revisions/studio.html">Android Studio release notes</a>.</p> 322 323 <table class="download"> 324 <tr> 325 <th>Platform</th> 326 <th>Package</th> 327 <th>Size</th> 328 <th>SHA-1 Checksum</th> 329 </tr> 330 331 <tr> 332 <td rowspan="3">Windows</td> 333 <td> 334 <a onclick="return onDownload(this)" id="win-bundle" 335 href="https://dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.win_bundle_exe_download ?>" 336 ><?cs var:studio.win_bundle_exe_download ?></a><br>(Recommended) 337 </td> 338 <td><?cs var:studio.win_bundle_exe_bytes ?> bytes</td> 339 <td><?cs var:studio.win_bundle_exe_checksum ?></td> 340 </tr> 341 342 <tr> 343 <!-- blank TD from Windows rowspan --> 344 <td> 345 <a onclick="return onDownload(this)" 346 href="https://dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.win_notools_exe_download ?>" 347 ><?cs var:studio.win_notools_exe_download ?></a><br>(No SDK tools included) 348 </td> 349 <td><?cs var:studio.win_notools_exe_bytes ?> bytes</td> 350 <td><?cs var:studio.win_notools_exe_checksum ?></td> 351 </tr> 352 353 <tr> 354 <!-- blank TD from Windows rowspan --> 355 <td> 356 <a onclick="return onDownload(this)" 357 href="https://dl.google.com/dl/android/studio/ide-zips/<?cs var:studio.version ?>/<?cs var:studio.win_bundle_download ?>" 358 ><?cs var:studio.win_bundle_download ?></a> 359 </td> 360 <td><?cs var:studio.win_bundle_bytes ?> bytes</td> 361 <td><?cs var:studio.win_bundle_checksum ?></td> 362 </tr> 363 364 <tr> 365 <td><nobr>Mac OS X</nobr></td> 366 <td> 367 <a onclick="return onDownload(this)" id="mac-bundle" 368 href="https://dl.google.com/dl/android/studio/install/<?cs var:studio.version ?>/<?cs var:studio.mac_bundle_download ?>" 369 ><?cs var:studio.mac_bundle_download ?></a> 370 </td> 371 <td><?cs var:studio.mac_bundle_bytes ?> bytes</td> 372 <td><?cs var:studio.mac_bundle_checksum ?></td> 373 </tr> 374 375 <tr> 376 <td>Linux</td> 377 <td> 378 <a onclick="return onDownload(this)" id="linux-bundle" 379 href="https://dl.google.com/dl/android/studio/ide-zips/<?cs var:studio.version ?>/<?cs var:studio.linux_bundle_download ?>" 380 ><?cs var:studio.linux_bundle_download ?></a> 381 </td> 382 <td><?cs var:studio.linux_bundle_bytes ?> bytes</td> 383 <td><?cs var:studio.linux_bundle_checksum ?></td> 384 </tr> 385 </table> 386 387 388 389 </div><!-- end pax --> 390 391 392 393 </div><!-- end col-13 for lower-half content --> 394 395 396 397 398 <script> 399 if (location.hash == "#Requirements") { 400 $('.reqs').show(); 401 } else if (location.hash == "#ExistingIDE") { 402 $('.ide').show(); 403 } 404 405 var os; 406 var bundlename; 407 var $toolslink; 408 409 if (navigator.appVersion.indexOf("Mobile")!=-1) { 410 // Do nothing for any "mobile" user agent 411 } else if (navigator.appVersion.indexOf("Win")!=-1) { 412 os = "Windows"; 413 bundlename = '#win-bundle'; 414 $toolslink = $('#win-tools'); 415 } else if (navigator.appVersion.indexOf("Mac")!=-1) { 416 os = "Mac"; 417 bundlename = '#mac-bundle'; 418 $toolslink = $('#mac-tools'); 419 } else if (navigator.appVersion.indexOf("Linux")!=-1 && navigator.appVersion.indexOf("Android")==-1) { 420 os = "Linux"; 421 bundlename = '#linux-bundle'; 422 $toolslink = $('#linux-tools'); 423 } 424 425 if (os != undefined) { 426 $('#not-supported').hide(); 427 428 /* set up primary Android Studio download button */ 429 $('.download-bundle-button').append(" <br/><span class='small'>for " + os + "</span>"); 430 $('.download-bundle-button').click(function() {return onDownload(this,true,true);}).attr('href', bundlename); 431 } 432 433 onDownload(link, button, bundle)434 function onDownload(link, button, bundle) { 435 436 /* set text for download button */ 437 if (button) { 438 $("#downloadForRealz").html($(link).text()); 439 } else { 440 $("#downloadForRealz").html("Download " + $(link).text()); 441 } 442 443 $("#downloadForRealz").attr('bundle', bundle); 444 $("a#downloadForRealz").attr("name", $(link).attr('href')); 445 446 $("#tos").show(); 447 $("#landing").hide(); 448 449 location.hash = "top"; 450 return false; 451 } 452 453 onAgreeChecked()454 function onAgreeChecked() { 455 /* verify that the TOS is agreed */ 456 if ($("input#agree").is(":checked")) { 457 458 /* if downloading the bundle */ 459 if ($("#downloadForRealz").attr('bundle')) { 460 /* construct the name of the link we want */ 461 linkId = $("a#downloadForRealz").attr("name"); 462 /* set the real url for download */ 463 $("a#downloadForRealz").attr("href", $(linkId).attr("href")); 464 } else { 465 $("a#downloadForRealz").attr("href", $("a#downloadForRealz").attr("name")); 466 } 467 468 /* reveal the download button */ 469 $("a#downloadForRealz").removeClass('disabled'); 470 } else { 471 $("a#downloadForRealz").addClass('disabled'); 472 } 473 } 474 onDownloadForRealz(link)475 function onDownloadForRealz(link) { 476 if ($("input#agree").is(':checked')) { 477 location.hash = ""; 478 location.hash = "top"; 479 $("div.sdk-terms").slideUp(); 480 $("h1#tos-header").text('Now downloading...'); 481 $(".sdk-terms-intro").text('You\'ll be redirected to the install instructions in a moment.'); 482 $("#sdk-terms-form").fadeOut('slow', function() { 483 setTimeout(function() { 484 if ($("#downloadForRealz").attr('bundle') == 'true') { 485 // User downloaded the studio Bundle 486 window.location = "/sdk/installing/index.html?pkg=studio"; 487 } else { 488 // User downloaded the SDK Tools 489 window.location = "/sdk/installing/index.html?pkg=tools"; 490 } 491 }, 3000); 492 }); 493 ga('send', 'event', 'SDK', 'IDE and Tools', $("#downloadForRealz").html()); 494 return true; 495 } else { 496 $("label#agreeLabel").parent().stop().animate({color: "#258AAF"}, 200, 497 function() {$("label#agreeLabel").parent().stop().animate({color: "#222"}, 200)} 498 ); 499 return false; 500 } 501 } 502 function()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 <!-- Start of Tag --> 564 <script type="text/javascript"> 565 var axel = Math.random() + ""; 566 var a = axel * 10000000000000; 567 document.write('<iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>'); 568 </script> 569 <noscript> 570 <iframe src="https://2507573.fls.doubleclick.net/activityi;src=2507573;type=other026;cat=googl348;ord=1?" width="1" height="1" frameborder="0" style="display:none"></iframe> 571 </noscript> 572 <!-- End of Tag --> 573 </body> 574 </html> 575 576 577 578