1 page.title= 2 page.metaDescription= Android , . 3 page.image=/distribute/images/tablet-guidelines-color.jpg 4 Xnonavpage=true 5 6 @jd:body 7 <div id="qv-wrapper"><div id="qv"> 8 <h2> </h2> 9 <ol> 10 <li><a href="#core-app-quality">1. </a></li> 11 <li><a href="#optimize-layouts">2. </a></li> 12 <li><a href="#use-extra-space">3. </a></li> 13 <li><a href="#use-tablet-icons">4. </a></li> 14 <li><a href="#adjust-font-sizes">5. </a></li> 15 <li><a href="#adjust-widgets">6. </a></li> 16 <li><a href="#offer-full-feature-set">7. </a></li> 17 <li><a href="#android-versions">8. Android </a></li> 18 <li><a href="#hardware-requirements">9. </a></li> 19 <li><a href="#support-screens">10. </a></li> 20 <li><a href="#google-play">11. UI </a></li> 21 <li><a href="#google-play-best-practices">12. Google Play </a></li> 22 23 </ol> 24 <h2></h2> 25 <ol> 26 <li><a href="#test-environment"> </a></li> 27 </ol> 28 </div></div> 29 30 <div class="todp-right-float" style="padding-right:0;margin-bottom:1em;"> 31 <img src="{@docRoot}distribute/images/tablet-guidelines-color.jpg" style="width:480px;"> 32 </div> 33 34 <p> 35 Android , <a href="{@docRoot}distribute/stories/tablets.html"> </a> . 36 37 UI . 38 39 40 </p> 41 42 <p> 43 . . 44 45 46 47 48 </p> 49 50 <p> 51 . 52 53 </p> 54 55 <div class="headerLine"><h2 id="core-app-quality">1. </h2></div> 56 57 <p> <em> </em> . 58 59 <a href="{@docRoot}distribute/essentials/quality/core.html"> </a> . 60 </p> 61 62 <p> 63 . 64 </p> 65 66 <ul> 67 <li><a href="#android-versions"> Android </a></li> 68 <li><a href="#hardware-requirements"> </a></li> 69 <li><a href="#support-screens"> </a></li> 70 <li><a href="#use-extra-space"> </a></li> 71 <li><a href="#google-play">Google Play </a></li> 72 </ul> 73 74 <p> Google Play <a href="#google-play-optimization-tips"> </a> . 75 76 77 </p> 78 79 80 <div class="headerLine"> 81 <h2 id="optimize-layouts">2. </h2></div> 82 83 <p> 84 Android . 85 . 86 87 ( ) UI . 88 89 90 UI , . 91 92 93 94 </p> 95 96 <p> 97 , . 98 99 (7 ) . 100 101 ( ) " UI" UI, UI . 102 103 104 </p> 105 106 107 <div style="width:500px;margin:1.5em;margin-top:-16px;"> 108 <img src="{@docRoot}images/training/app-navigation-multiple-sizes-multipane-bad.png" style="padding:4px;margin-bottom:0em;"> 109 <p class="img-caption"><span 110 style="font-weight:500;">"" UI </span>: . 111 UI . 112 </p> 113 </div> 114 115 <p> .</p> 116 117 118 <ul> 119 <li> <code>large</code> <code>xlarge</code> . 120 <a href="{@docRoot}guide/practices/screens_support.html#NewQualifiers"> </a> <a href="{@docRoot}guide/practices/screens_support.html#NewQualifiers"> </a> . 121 122 123 124 </li> 125 126 <li> , , . 127 128 </li> 129 130 <li> UI . 131 132 133 </li> 134 135 <li>UI . 136 <a href="{@docRoot}design/style/metrics-grids.html#48dp-rhythm">48dp </a>( 16dp ) . 137 138 </li> 139 140 <li> . 141 <code>16dp</code> . 142 143 </li> 144 </ul> 145 146 <p> "" . 147 </p> 148 149 <ul> 150 <li> . 100 50-75 . 151 </li> 152 <li> .</li> 153 <li> UI ( ). 154 </li> 155 </ul> 156 157 <h3 class="rel-resources clearfloat"> </h3> 158 159 <div class="resource-widget resource-flow-layout col-13" 160 data-query="collection:distribute/essentials/tabletguidelines/optimize" 161 data-sortOrder="-timestamp" 162 data-cardSizes="6x3" 163 data-maxResults="6"></div> 164 165 166 <div class="headerLine"><h2 id="use-extra-space">3. </h2></div> 167 168 <div style="width:340px;float:right;margin:1.5em;margin-bottom:0;margin-top:0;"> 169 <img src="{@docRoot}images/training/app-navigation-multiple-sizes-multipane-good.png" style="padding:4px;margin-bottom:0em;"> 170 <p class="img-caption"><span 171 style="font-weight:500;"> .</span> 172 </p> 173 </div> 174 175 <p> . 176 10 7 . 177 178 </p> 179 180 <p> UI . 181 . 182 </p> 183 184 <ul> 185 <li> . 186 </li> 187 <li> <a href="{@docRoot}design/patterns/multi-pane-layouts.html"> </a> . 188 . 189 190 </li> 191 <li> . 192 </li> 193 194 <div style="width:490px;margin:1.5em auto 1.5em 0;"> 195 <div style=""> 196 <img src="{@docRoot}images/ui-ex-single-panes.png" style="width:490px;padding:4px;margin-bottom:0em;" align="middle"> 197 <img src="{@docRoot}images/ui-ex-multi-pane.png" style="width:490px;padding:4px;margin-bottom:0em;"> 198 <p class="image-caption" style="padding:.5em"><span 199 style="font-weight:500;"> UI <em>()</em> UI<em>()</em> .</span> 200 201 </p> 202 </div> 203 </div> 204 205 <li> {@link android.app.Activity} 206 {@link 207 android.app.Fragment} . , . 208 209 </li> 210 <li> UI (: <code>large</code>/<code>xlarge</code>) (: <code>sw600dp</code>/<code>sw720</code>) . 211 212 213 </li> 214 </ul> 215 216 <h3 class="rel-resources clearfloat"> </h3> 217 218 <div class="resource-widget resource-flow-layout col-13" 219 data-query="collection:distribute/essentials/tabletguidelines/extrascreen" 220 data-sortOrder="-timestamp" 221 data-cardSizes="6x3,6x3,6x3" 222 data-maxResults="6"></div> 223 224 <div class="headerLine"><h2 id="use-tablet-icons">4. </h2></div> 225 226 <div><img src="{@docRoot}design/media/devices_displays_density@2x.png"></div> 227 228 <p> . 229 , <a href="{@docRoot}design/style/iconography.html"> </a> . 230 231 232 233 </p> 234 235 <p class="table-caption"><strong> 1</strong>. .<table> 236 <tr> 237 <th></th> 238 <th> </th> 239 <th> </th> 240 <th>/</th> 241 <th></th> 242 </tr> 243 <tr> 244 <td><code>mdpi</code></td> 245 <td>48x48 px</td> 246 <td>32x32 px</td> 247 <td>16x16 px</td> 248 <td>24x24 px</td> 249 </tr> 250 <tr> 251 <td><code>hdpi</code></td> 252 <td>72x72 px</td> 253 <td>48x48 px</td> 254 <td>24x24 px</td> 255 <td>36x36 px</td> 256 </tr> 257 <tr> 258 <td><code>tvdpi</code></td> 259 <td><em>(hdpi )</em></td> 260 <td><em>(hdpi )</em></td> 261 <td><em>(hdpi )</em></td> 262 <td><em>(hdpi )</em></td> 263 </tr> 264 <tr> 265 <td><code>xhdpi</code></td> 266 <td>96x96 px</td> 267 <td>64x64 px</td> 268 <td>32x32 px</td> 269 <td>48x48 px</td> 270 </tr> 271 <tr> 272 <td><code>xxhdpi</code></td> 273 <td>144x144 px</td> 274 <td>96x96 px</td> 275 <td>48x48 px</td> 276 <td>72x72 px</td> 277 </tr> 278 279 </table> 280 281 <p> 282 <strong> </strong> . 283 284 285 </p> 286 <ul> 287 <li><code>hdpi</code></li> 288 <li><code>xhdpi</code></li> 289 <li><code>xxhdpi</code></li> 290 </ul> 291 292 <p> :</p> 293 294 <ul> 295 <li> .</li> 296 <li> <a href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources"> </a> . 297 </li> 298 <li> . 299 300 , {@code xhdpi} {@code xxhdpi} . 301 </li> 302 </ul> 303 304 <h3 class="rel-resources clearfloat"> </h3> 305 306 <div class="resource-widget resource-flow-layout col-13" 307 data-query="collection:distribute/essentials/tabletguidelines/assets" 308 data-sortOrder="-timestamp" 309 data-cardSizes="9x3" 310 data-maxResults="6"></div> 311 312 <div class="headerLine"><h2 id="adjust-font-sizes">5. 313 </h2></div> 314 315 <p> UI . 316 317 <a href="{@docRoot}guide/topics/ui/themes.html">styleable </a> <a href="{@docRoot}guide/topics/resources/more-resources.html#Dimension"> </a> drawable . 318 319 </p> 320 321 <p> .</p> 322 <ul> 323 <li> . 324 UI , . 325 326 </li> 327 <li> 48dp( 32dp). UI . <a href="{@docRoot}design/style/metrics-grids.html"> </a> . 328 329 330 . 331 332 </li> 333 <li> {@link android.view.TouchDelegate} 48dp . 334 335 </li> 336 </ul> 337 338 <h3 class="rel-resources clearfloat"> </h3> 339 340 <div class="resource-widget resource-flow-layout col-13" 341 data-query="collection:distribute/essentials/tabletguidelines/fonts" 342 data-sortOrder="-timestamp" 343 data-cardSizes="9x3,9x3,6x3,6x3,6x3" 344 data-maxResults="6"></div> 345 346 <div class="headerLine"><h2 id="adjust-widgets">6. </h2></div> 347 348 <p> . 349 </p> 350 351 <ul> 352 <li> . 353 354 </li> 355 <li> 5 ( ) ( ) 420dp . 356 357 </li> 358 <li>9 .</li> 359 <li> .</li> 360 <li> <code>targetSdkVersion</code> 14 . 361 </li> 362 </ul> 363 364 <h3 class="rel-resources clearfloat"> </h3> 365 366 <div class="resource-widget resource-flow-layout col-13" 367 data-query="collection:distribute/essentials/tabletguidelines/widgets" 368 data-sortOrder="-timestamp" 369 data-cardSizes="6x3" 370 data-maxResults="6"></div> 371 372 373 <div class="headerLine"><h2 id="offer-full-feature-set">7. </h2></div> 374 375 <div class="centered-full-image" style="width:600px;margin:1.5em"><img src="{@docRoot}images/gp-tablets-full-feature-set.png" alt="Tablet feature sets"></div> 376 377 <p> . . 378 </p> 379 380 <ul> 381 <li> . 382 383 </li> 384 385 <li> . 386 387 . 388 <ul> 389 <li> . 390 391 </li> 392 393 <li> GPS . 394 GPS . 395 396 397 398 </li> 399 </ul> 400 </li> 401 402 <li> UI ( ). 403 404 405 </li> 406 </ul> 407 408 <div class="headerLine"><h2 id="android-versions">8. Android </h2></div> 409 410 <p> 411 Android . 412 <a href="{@docRoot}about/versions/android-3.0.html">Android 3.0</a>(API 11) . 413 414 <a href="{@docRoot}about/versions/android-4.0.html">Android 4.0</a> , UI . 415 416 417 </p> 418 419 <p> 420 <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code><uses-sdk></code></a> Android . 421 422 <code>targetSdkVersion</code> API Android . 423 424 425 </p> 426 427 <p style="margin-bottom:.5em;"> 428 <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><code><uses-sdk></code></a> . 429 430 </p> 431 432 <ol style="list-style-type:lower-alpha;margin-top:0em;"> 433 <li> 434 <code>targetSdkVersion</code> 11 (14 ) 435 436 </li> 437 438 <li> 439 <code>minSdkVersion</code> 11 . 440 </li> 441 442 <li><code>maxSdkVersion</code> 11 . 443 <code>maxSdkVersion</code> <em> </em>. 444 445 </li> 446 </ol> 447 448 <h3 class="rel-resources clearfloat"> </h3> 449 450 <div class="resource-widget resource-flow-layout col-13" 451 data-query="collection:distribute/essentials/tabletguidelines/versions" 452 data-sortOrder="-timestamp" 453 data-cardSizes="6x3" 454 data-maxResults="6"></div> 455 456 <div class="headerLine"><h2 id="hardware-requirements">9. </h2></div> 457 458 <p> 459 , , . 460 , "Wi-Fi" . 461 462 </p> 463 464 <p> 465 APK . 466 467 468 <em> </em> . 469 470 </p> 471 472 <ul> 473 <li> <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code><uses-feature></code></a> . 474 . 475 476 477 <ul> 478 <li><code>android.hardware.telephony</code></li> 479 <li><code>android.hardware.camera</code> ( ) </li> 480 <li><code>android.hardware.camera.front</code></li> 481 </ul></li> 482 483 <li><code>android:required=false</code> <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code><uses-feature></code></a> <em> </em> . 484 485 486 487 <p> 488 , <code>android.hardware.telephony</code> . 489 490 491 </p> 492 493 <pre><uses-feature android:name="android.hardware.telephony" android:required="false" /></pre></li> 494 495 <li>, <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html#permissions"> </a> <a href="{@docRoot}guide/topics/manifest/permission-element.html"><code><permission></code></a> . 496 497 <code><uses-feature></code> <code>android:required=false</code> . 498 499 500 </li> 501 </ul> 502 503 504 <p> 505 <em> </em> . 506 , " " . 507 508 509 </p> 510 511 <p> 512 , GPS GPS . 513 514 . 515 516 </p> 517 518 <h3 class="rel-resources clearfloat"> </h3> 519 520 <div class="resource-widget resource-flow-layout col-13" 521 data-query="collection:distribute/essentials/tabletguidelines/hardware" 522 data-sortOrder="-timestamp" 523 data-cardSizes="9x3" 524 data-maxResults="6"></div> 525 526 <div class="headerLine"><h2 id="support-screens">10. </h2></div> 527 528 <p> . 529 </p> 530 531 <ul> 532 <li><a href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><code><supports-screens></code></a> <code>android:largeScreens="false"</code> <code>android:xlargeScreens="false"</code> . 533 534 535 </li> 536 <li>13 <code>minSdkVersion</code> <a href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><code><supports-screens></code></a> <code>android:largeScreens="true"</code> <code>android:xlargeScreens="true"</code> . 537 538 539 </li> 540 </ul> 541 542 <p> <a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html"><code><compatible-screens></code></a> <em> </em> . 543 544 545 546 <a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html"><code><compatible-screens></code></a> . 547 548 </p> 549 550 <h3 class="rel-resources clearfloat"> </h3> 551 552 <div class="resource-widget resource-flow-layout col-13" 553 data-query="collection:distribute/essentials/tabletguidelines/tabletscreens" 554 data-sortOrder="-timestamp" 555 data-cardSizes="9x3,6x3,6x3" 556 data-maxResults="6"></div> 557 558 559 <div class="headerLine"><h2 id="google-play">11. Google Play UI </h2></div> 560 561 <p> 562 UI ! 563 Google Play . 564 565 </p> 566 567 <div><img class="border-img" src="{@docRoot}images/gp-tablet-quality-4.jpg"></div> 568 569 570 <h4> 571 UI 572 </h4> 573 574 <p> 575 . 576 UI Google Play . 577 . 578 </p> 579 580 <ul style="margin-top:0;"> 581 <li> . 582 . 583 584 </li> 585 586 <li>7 10 . 587 </li> 588 589 <li> . 590 591 </li> 592 593 <li> . . 594 </li> 595 596 <li> <strong>1280 x 720</strong> . 597 598 </li> 599 600 <li>7 8 UI , 10 8 UI . 601 602 </li> 603 </ul> 604 605 <h4> 606 607 </h4> 608 609 <ul> 610 <li> UI . 611 UI . 612 613 </li> 614 615 <li> . 616 617 </li> 618 </ul> 619 620 <h4> 621 622 </h4> 623 624 <p> 625 . 626 UI . 627 . 628 629 </p> 630 631 <ul> 632 <li> . UI UI . 633 634 635 </li> 636 637 <li> UI . UI . 10 UI UI . 638 639 640 641 </li> 642 643 <li> UI . 644 645 </li> 646 647 <li> UI . 648 </li> 649 </ul> 650 651 <h4> 652 UI 653 </h4> 654 655 <p> 656 , , , UI . 657 . 658 659 </p> 660 661 <ul> 662 <li> . 663 </li> 664 665 <li> . <a href="{@docRoot}distribute/tools/promote/device-art.html"> </a> 7 10 . 666 667 668 , . 669 </li> 670 671 <li> Google Play . 672 <a href="{@docRoot}distribute/tools/promote/badges.html"> </a> . 673 674 </li> 675 </ul> 676 677 <h3 class="rel-resources clearfloat"> </h3> 678 679 <div class="resource-widget resource-flow-layout col-13" 680 data-query="collection:distribute/essentials/tabletguidelines/showcase" 681 data-sortOrder="-timestamp" 682 data-cardSizes="9x3,9x3,9x3,9x3" 683 data-maxResults="6"></div> 684 685 <div class="headerLine"> 686 <h2 id="google-play-best-practices"> 687 12. Google Play 688 </h2> 689 690 691 </div> 692 693 <p> 694 Google Play . 695 696 </p> 697 698 <div> 699 <img class="border-img" src="{@docRoot}images/gp-tablet-quality-5.jpg" style="1px solid #ddd"> 700 </div> 701 702 <h4 id="google-play-optimization-tips"> 703 704 </h4> 705 706 <p> Google Play . 707 708 . 709 710 </p> 711 712 <div class="sidebox-wrapper"> 713 <div class="sidebox"> 714 <h2> </h2> 715 716 <p> . 717 </p> 718 719 <p> . 720 </p> 721 722 <p><strong><a href="https://support.google.com/googleplay/android-developer/contact/tabletq" target="_googleplay" style="white-space:nowrap"> »</a></strong></p> 723 </div> 724 </div> 725 726 <p> . 727 728 " " . 729 </p> 730 731 <p> . 732 733 . 734 735 </p> 736 737 <p> " " <a href="https://support.google.com/googleplay/android-developer/contact/tabletq" target="_googleplay" style="white-space:nowrap"> »</a> . 738 739 . 740 741 </p> 742 743 744 <h4> </h4> 745 746 <p> 747 <a href="https://play.google.com/apps/publish/"> </a> APK . 748 749 750 </p> 751 752 <h4> APK </h4> 753 754 <p> 755 ( ) Google Play APK . 756 . 757 758 </p> 759 760 <ul style="margin-top:.25em;"> 761 <li> , . 762 </li> 763 764 <li> . 765 766 </li> 767 768 <li> . 769 </li> 770 771 <li> . 772 773 </li> 774 </ul> 775 776 <p> 777 APK <a href="{@docRoot}google/play/publishing/multiple-apks.html"> APK </a> . 778 779 780 </p> 781 782 <h3 class="rel-resources clearfloat"> </h3> 783 <div class="resource-widget resource-flow-layout col-13" 784 data-query="collection:distribute/essentials/tabletguidelines/googleplay" 785 data-sortOrder="-timestamp" 786 data-cardSizes="9x3" 787 data-maxResults="6"></div> 788 789 790 <div class="headerLine"> 791 <h2 id="test-environment"> 792 793 </h2> 794 795 796 </div> 797 798 <p> 799 ( ) . 800 801 802 </p> 803 804 <p> 805 <a href="{@docRoot}distribute/essentials/quality/core.html#test-environment"> </a> / . 806 807 808 809 </p> 810 811 <p class="table-caption"><strong> 1</strong>. , . 812 813 </p> 814 815 <table> 816 <tr> 817 <th></th> 818 <th></th> 819 <th></th> 820 <th></th> 821 <th>AVD </th> 822 </tr> 823 824 <tr> 825 <td>7 </td> 826 <td><span style="white-space:nowrap"><code>large</code> </span><br /><code>-sw600</code></td> 827 <td><code>hdpi</code>,<br /><code>tvdpi</code></td> 828 <td>Android 4.0 (API 14 )</td> 829 <td>WXGA800-7in</td> 830 </tr> 831 <tr> 832 <td><span style="white-space:nowrap">10</span> </td> 833 <td><span style="white-space:nowrap"><code>xlarge</code> </span><br /><code>-sw800</code></td> 834 <td><code>mdpi</code>,<br /><code>hdpi</code>,<br /><code>xhdpi</code></td> 835 <td>Android 3.2 (API 13 )</td> 836 <td>WXGA800</td> 837 </tr> 838 </table> 839 840 <div class="headerLine"><h2 id="related-resources"> </h2></div> 841 842 <div class="resource-widget resource-flow-layout col-13" 843 data-query="collection:distribute/essentials/tabletguidelines" 844 data-sortOrder="-timestamp" 845 data-cardSizes="9x3" 846 data-maxResults="6"></div>