API Android 3.2

Level API: 13

Android 3.2 (HONEYCOMB_MR2) adalah rilis platform bertahap yang menambahkan bagi pengguna dan pengembang. Bagian di bawah ini memberikan ringkasan fitur baru dan API developer.

Untuk pengembang, platform Android 3.2 tersedia sebagai yang dapat didownload untuk Android SDK. Platform yang dapat didownload mencakup library dan image sistem Android, serta serangkaian skin emulator dan banyak lagi. Untuk memulai pengembangan atau pengujian terhadap Android 3.2, menggunakan Android SDK Manager untuk mendownload platform ke SDK Anda.

Sorotan Platform

Fitur pengguna baru

  • Pengoptimalan untuk berbagai jenis tablet

    Android 3.2 menyertakan berbagai pengoptimalan di seluruh sistem untuk memastikan pengalaman pengguna yang luar biasa pada berbagai macam perangkat tablet.

  • Zoom kompatibilitas untuk aplikasi berukuran tetap

    Android 3.2 memperkenalkan mode zoom kompatibilitas baru yang memberi cara baru untuk melihat aplikasi berukuran tetap di perangkat yang lebih besar. Mode baru menyediakan sebuah alternatif berskala piksel dari peregangan UI standar untuk aplikasi yang tidak dirancang untuk berjalan pada ukuran layar yang lebih besar, seperti pada tablet. Mode barunya adalah dapat diakses oleh pengguna dari ikon menu di bilah sistem, untuk aplikasi yang membutuhkan dukungan kompatibilitas.

  • Sinkronisasi media dari kartu SD

    Pada perangkat yang mendukung kartu SD, pengguna kini dapat memuat file media secara langsung dari kartu SD ke aplikasi yang menggunakannya. Fasilitas sistem membuat file-file itu dapat diakses oleh aplikasi dari penyimpanan media sistem.

Fitur developer baru

  • API yang diperluas untuk mengelola dukungan layar

    Android 3.2 memperkenalkan ekstensi ke API dukungan layar platform untuk memberi developer cara tambahan untuk mengelola UI aplikasi di berbagai Perangkat yang didukung Android. API ini mencakup penentu resource baru dan atribut manifes yang memberi Anda kontrol yang lebih tepat atas bagaimana aplikasi ditampilkan dalam berbagai ukuran, bukan mengandalkan kategori ukuran.

    Untuk memastikan tampilan terbaik bagi aplikasi berukuran tetap dan aplikasi dengan mendukung berbagai ukuran layar, platform ini juga menyediakan fitur zoom baru mode kompatibilitas yang merender UI pada area layar yang lebih kecil, lalu menskalakannya untuk mengisi ruang yang tersedia di layar. Untuk informasi selengkapnya tentang screen support API dan kontrol yang diberikannya, lihat bagian di bawah ini.

Ringkasan API

API Dukungan Layar

Android 3.2 memperkenalkan API dukungan layar baru yang memberi Anda lebih banyak mengontrol bagaimana aplikasi mereka ditampilkan di berbagai ukuran layar. API ini dibangun di atas API dukungan layar yang ada, termasuk atribut model kepadatan layar tergeneralisasi, tetapi memperluasnya dengan kemampuan untuk menargetkan rentang layar tertentu berdasarkan dimensinya, yang diukur dalam unit piksel kepadatan mandiri (seperti lebar 600 dp atau 720 dp), bukan berdasarkan ukuran layar umum (seperti besar atau ekstra besar)

Saat mendesain UI aplikasi, Anda masih dapat mengandalkan platform untuk menyediakan abstraksi kepadatan, yang berarti bahwa aplikasi tidak perlu mengimbangi perbedaan kepadatan piksel aktual di berbagai perangkat. Anda dapat mendesain UI aplikasi sesuai dengan jumlah kolom yang tersedia. Platform ini mengekspresikan jumlah ruang yang tersedia dengan menggunakan tiga karakteristik: smallestWidth, width, dan height.

  • smallestWidth layar adalah ukuran minimum dasarnya, diukur dalam satuan piksel kepadatan mandiri ("dp"). Dengan tinggi atau maka lebarnya adalah yang lebih pendek di antara keduanya. Untuk layar dalam orientasi potret, smallestWidth biasanya didasarkan pada lebarnya, sedangkan dalam orientasi lanskap didasarkan pada ketinggiannya. Dalam semua kasus, smallestWidth diambil dari karakteristik tetap dari layar dan nilainya tidak berubah, terlepas dari orientasi. SmallestWidth penting untuk aplikasi karena merepresentasikan lebar sesingkat mungkin yang mana UI aplikasi perlu digambar, tidak termasuk area layar dicadangkan oleh sistem.
  • Sebaliknya, lebar dan tinggi layar mewakili ruang horizontal atau vertikal saat ini yang tersedia untuk tata letak aplikasi, diukur dalam "dp" tambahan, tidak termasuk area layar yang direservasi oleh sistem. Lebar dan tinggi layar berubah saat pengguna beralih orientasi antara lanskap dan potret.

API dukungan layar baru dirancang agar Anda dapat mengelola UI aplikasi sesuai dengan smallestWidth layar saat ini. Anda juga dapat mengelola UI sesuai dengan lebar atau tinggi saat ini, sesuai kebutuhan. Untuk tujuan tersebut, API menyediakan alat-alat berikut:

  • Penentu resource baru untuk menargetkan tata letak dan resource lainnya ke minimum smallestWidth, lebar, atau tinggi, dan
  • Atribut manifes baru untuk menentukan jumlah maksimum aplikasi rentang kompatibilitas layar

Selain itu, aplikasi masih dapat mengkueri sistem dan mengelola UI dan pemuatan resource saat runtime, seperti pada versi platform sebelumnya.

Karena API baru memungkinkan Anda menargetkan layar lebih langsung melalui smallestWidth, lebar, dan tinggi. Akan sangat membantu untuk memahami karakteristik dari berbagai jenis layar. Tabel di bawah memberikan beberapa contoh, diukur dalam "dp" unit iklan.

Tabel 1. Perangkat standar, dengan kepadatan dan ukuran dalam dp.

Jenis Kepadatan (umum) Dimensi (dp) smallestWidth (dp)
Ponsel dasar mdpi 320x480 320
Tablet kecil/ponsel besar mdpi 480x800 480
Tablet 7 inci mdpi 600x1024 600
Tablet 10 inci mdpi 800x1280 800

Bagian di bawah ini menyediakan informasi selengkapnya tentang penentu layar baru dan atribut manifes. Untuk informasi lengkap tentang cara menggunakan layar support API, lihat Mendukung Beberapa Layar.

Penentu resource baru untuk dukungan layar

Qualifier sumber daya baru di Android 3.2 memungkinkan Anda menargetkan tata letak dengan lebih baik untuk rentang ukuran layar. Dengan menggunakan penentu, Anda dapat membuat resource konfigurasi yang dirancang untuk minimum minimumestWidth, lebar saat ini, atau tinggi saat ini, diukur dalam piksel kepadatan mandiri.

Penentu baru tersebut adalah:

  • swNNNdp — Menentukan smallestWidth minimum resource yang harus digunakan, diukur dalam "dp" unit iklan. Seperti disebutkan di atas, smallestWidth layar konstan, terlepas dari orientasi. Contoh: sw320dp, sw720dp, sw720dp.
  • wNNNdp dan hNNNdp — Menentukan nilai minimum lebar atau tinggi tempat resource akan digunakan, diukur dalam "dp" unit iklan. Sebagai yang disebutkan di atas, lebar dan tinggi layar relatif terhadap orientasi layar dan berubah setiap kali orientasi berubah. Contoh: w320dp, w720dp, h1024dp.

Anda juga dapat membuat beberapa konfigurasi resource yang tumpang-tindih jika diperlukan. Misalnya, Anda dapat memberi tag pada beberapa resource untuk digunakan di layar mana pun yang lebih lebar dari 480. dp, lainnya untuk lebih lebar dari 600 dp, dan lainnya untuk lebih lebar dari 720 dp. Kapan beberapa konfigurasi sumber daya memenuhi syarat untuk layar tertentu, maka sistem memilih konfigurasi yang paling mendekati. Untuk kontrol yang akurat resource mana yang dimuat di layar tertentu, Anda dapat memberi tag pada resource penentu atau menggabungkan beberapa penentu baru atau yang sudah ada.

Berdasarkan dimensi umum yang tercantum sebelumnya, berikut ini beberapa contoh bagaimana Anda bisa menggunakan penentu baru:

res/layout/main_activity.xml   # For phones
res/layout-sw600dp/main_activity.xml   # For 7” tablets
res/layout-sw720dp/main_activity.xml   # For 10” tablets
res/layout-w600dp/main_activity.xml   # Multi-pane when enough width
res/layout-sw600dp-w720dp/main_activity.xml   # For large width

Versi platform yang lebih lama akan mengabaikan penentu baru, sehingga Anda dapat mencampurnya sesuai kebutuhan untuk memastikan aplikasi Anda terlihat bagus di perangkat apa pun. Di sini, adalah beberapa contohnya:

res/layout/main_activity.xml   # For phones
res/layout-xlarge/main_activity.xml   # For pre-3.2 tablets
res/layout-sw600dp/main_activity.xml   # For 3.2 and up tablets

Untuk informasi lengkap tentang cara menggunakan penentu baru, lihat Menggunakan penentu penentu ukuran.

Atribut manifes baru untuk kompatibilitas ukuran layar

Framework ini menawarkan serangkaian atribut manifes <supports-screens> baru yang memungkinkan Anda mengelola dukungan aplikasi untuk berbagai ukuran layar. Secara khusus, Anda bisa menentukan layar terbesar dan terkecil tempat aplikasi dirancang untuk berjalan, serta layar terbesar tempatnya dirancang dapat berjalan, tanpa memerlukan layar baru sistem mode kompatibilitas. Seperti penentu resource yang dijelaskan di atas, model baru atribut manifes menentukan kisaran layar yang didukung aplikasi, seperti yang ditentukan oleh smallestWidth.

Atribut manifes baru untuk dukungan layar adalah:

  • android:compatibleWidthLimitDp="numDp" — Ini memungkinkan Anda menentukan smallestWidth maksimum tempat aplikasi dapat berjalan tanpa memerlukan mode kompatibilitas. Jika layar saat ini lebih besar dari nilai yang ditetapkan, sistem akan menampilkan aplikasi dalam mode normal tetapi memungkinkan pengguna untuk secara opsional beralih ke mode kompatibilitas melalui setelan di bilah sistem.
  • android:largestWidthLimitDp="numDp" — Ini memungkinkan Anda menentukan smallestWidth maksimum tempat aplikasi dirancang agar dapat berjalan. Jika layar saat ini lebih besar dari nilai yang ditentukan, sistem memaksa aplikasi masuk ke mode kompatibilitas layar, untuk memastikan pada layar saat ini.
  • android:requiresSmallestWidthDp="numDp" — Ini memungkinkan Anda menentukan smallestWidth minimum tempat aplikasi dapat dijalankan. Jika layar saat ini lebih kecil dari nilai yang ditentukan, sistem menganggap aplikasi tersebut tidak kompatibel dengan perangkat, tetapi tidak mencegahnya diinstal dan dijalankan.

Catatan: Google Play saat ini tidak memfilter aplikasi berdasarkan atribut di atas. Dukungan untuk pemfilteran akan yang ditambahkan dalam rilis platform selanjutnya. Aplikasi yang memerlukan berdasarkan ukuran layar dapat menggunakan <supports-screens> yang ada .

Untuk informasi selengkapnya tentang cara menggunakan atribut baru, lihat Mendeklarasikan dukungan ukuran layar.

Mode kompatibilitas layar

Android 3.2 menyediakan mode kompatibilitas layar baru untuk aplikasi secara eksplisit menyatakan bahwa mereka tidak mendukung layar sebesar yang ada di layanan yang sedang mereka jalankan. "Zoom" baru ini adalah skala piksel — mode ini merender aplikasi di area layar yang lebih kecil, lalu menskalakan piksel untuk yang mengisi layar saat ini.

Secara default, sistem menawarkan mode kompatibilitas layar sebagai opsi pengguna, untuk aplikasi yang memerlukannya. Pengguna dapat mengaktifkan dan menonaktifkan mode zoom menggunakan kontrol yang tersedia di bilah sistem.

Karena mode kompatibilitas layar baru mungkin tidak cocok untuk semua pengguna aplikasi, platform memungkinkan aplikasi untuk menonaktifkannya menggunakan manifes . Jika dinonaktifkan oleh aplikasi, sistem tidak menawarkan "zoom" kompatibilitas sebagai opsi bagi pengguna saat aplikasi sedang berjalan.

Catatan: Untuk informasi penting tentang cara untuk mengontrol mode kompatibilitas di aplikasi Anda, baca artikel Mode Baru untuk Aplikasi di Perangkat Layar Besar di Android Blog Developer.

Kepadatan layar baru untuk televisi 720p dan perangkat serupa

Untuk memenuhi kebutuhan aplikasi yang berjalan pada televisi 720p atau yang sejenis dengan dengan layar berkepadatan sedang, Android 3.2 memperkenalkan kepadatan umum baru, tvdpi, dengan perkiraan dpi 213. Aplikasi dapat meminta kepadatan baru di densityDpi dan dapat menggunakan penentu tvdpi baru untuk memberi tag pada resource untuk televisi dan perangkat yang serupa. Contoh:

res/drawable-tvdpi/my_icon.png   # Bitmap for tv density

Secara umum, aplikasi tidak perlu berfungsi dengan kepadatan ini. Untuk situasi saat output diperlukan untuk layar 720p, elemen UI dapat diskalakan secara otomatis oleh platform.

Framework UI

  • Fragmen
    • Class Fragment.SavedState baru menyimpan status informasi yang diambil dari instance fragmen melalui saveFragmentInstanceState().
    • Metode baru saveFragmentInstanceState() menyimpan status instance saat ini dari Fragment yang diberikan. Status dapat digunakan nanti saat membuat instance baru Fragment yang sesuai dengan status saat ini.
    • Metode baru setInitialSavedState() menetapkan status tersimpan awal untuk Fragment saat pertama kali dibuat.
    • Metode callback onViewCreated() baru memberi tahu Fragment bahwa onCreateView() dikembalikan, namun sebelum keadaan tersimpan apa pun dipulihkan ke Tampilan.
    • Metode isDetached() menentukan apakah Fragment telah dilepas secara eksplisit dari UI.
    • attach() baru dan detach() memungkinkan aplikasi melampirkan kembali atau melepaskan fragmen di UI.
    • Metode overload setCustomAnimations() baru memungkinkan Anda menyetel animasi tertentu sumber daya yang akan dijalankan untuk operasi masuk/keluar dan khususnya ketika memunculkan data sebelumnya. Implementasi yang ada tidak memperhitungkan perilaku fragmen yang berbeda saat memunculkan data sebelumnya.
  • Informasi ukuran layar di ActivityInfo dan ApplicationInfo
  • Helper untuk mendapatkan ukuran layar dari WindowManager
  • "holografi" publik baru gaya
    • Platform ini kini mengekspos berbagai "holografi" publik gaya untuk teks, widget dan tab bilah aksi, dan lainnya. Lihat R.style untuk melihat daftar lengkapnya.
  • LocalActivityManager, ActivityGroup, dan LocalActivityManager kini tidak digunakan lagi
    • Aplikasi baru harus menggunakan Fragment, bukan class ini. Kepada tetap berjalan di versi platform yang lebih lama, Anda dapat menggunakan Dukungan v4 Library (library kompatibilitas), tersedia di Android SDK. Dukungan v4 Library menyediakan versi Fragment API yang kompatibel hingga Android 1.6 (level API 4).
    • Untuk aplikasi yang dikembangkan untuk Android 3.0 (level API 11) atau yang lebih tinggi, tab biasanya disajikan di UI menggunakan ActionBar.newTab() dan API terkait untuk menempatkan tab dalam area panel tindakannya.

Framework media

  • Aplikasi yang menggunakan penyedia media platform (MediaStore) sekarang dapat membaca data media langsung dari kartu SD yang dapat dilepas, jika didukung oleh perangkat. Aplikasi juga dapat berinteraksi dengan file kartu SD secara langsung, menggunakan API MTP.

Grafik

Framework IME

  • Metode getModifiers() baru untuk mengambil status tombol pengubah saat ini.

Framework USB

  • Metode getRawDescriptors() baru untuk mengambil deskriptor USB mentah untuk perangkat itu. Anda dapat menggunakan untuk mengakses deskriptor yang tidak didukung langsung melalui level API.

Jaringan

Telepon

Utilitas inti

Konstanta fitur baru

Platform ini menambahkan konstanta fitur hardware baru yang bisa Anda deklarasikan dalam manifes aplikasi, untuk memberi tahu entitas eksternal seperti Google Kemampuan hardware dan software yang diperlukan. Anda mendeklarasikan dan konstanta fitur lainnya dalam elemen manifes <uses-feature>.

Google Play memfilter aplikasi berdasarkan atribut <uses-feature> mereka, untuk memastikan bahwa aplikasi hanya tersedia untuk perangkat yang persyaratannya terpenuhi.

  • Konstanta fitur untuk persyaratan lanskap atau potret

    Android 3.2 memperkenalkan konstanta fitur baru yang memungkinkan aplikasi menentukan apakah aplikasi perlu ditampilkan dalam orientasi lanskap, orientasi potret, atau keduanya. Mendeklarasikan konstanta ini menunjukkan bahwa aplikasi tidak boleh diinstal pada perangkat yang tidak menawarkan orientasi terkait. Sebaliknya, jika salah satu atau kedua konstanta tidak dideklarasikan, ini menunjukkan bahwa aplikasi tidak memiliki preferensi untuk orientasi yang tidak dideklarasikan dan dapat diinstal pada perangkat yang tidak menawarkannya.

    Aplikasi umum yang berfungsi dengan baik pada orientasi lanskap dan potret biasanya tidak perlu mendeklarasikan persyaratan orientasi. Sebaliknya, aplikasi yang didesain terutama untuk satu orientasi, seperti aplikasi yang dirancang untuk televisi, bisa mendeklarasikan salah satu konstanta untuk memastikan bahwa itu tidak tersedia untuk perangkat yang tidak menyediakan orientasi tersebut.

    Jika ada aktivitas yang dideklarasikan dalam permintaan manifes yang dijalankan dalam orientasi tertentu, menggunakan atribut android:screenOrientation, hal ini juga mendeklarasikan bahwa aplikasi membutuhkan orientasi tersebut.

  • Konstanta fitur lainnya

Laporan Perbedaan API

Untuk tampilan mendetail dari semua perubahan API di Android 3.2 (API Tingkat 13), lihat API Laporan Perbedaan.

API Level

Platform Android 3.2 menyediakan versi terbaru dari API framework. Android 3.2 API diberi ID bilangan bulat — 13 — yang disimpan di dalam sistem itu sendiri. ID ini, yang disebut "API Level", memungkinkan sistem untuk menentukan dengan benar apakah suatu aplikasi kompatibel dengan sistem, sebelum menginstal aplikasi.

Untuk menggunakan API yang diperkenalkan di Android 3.2 di aplikasi Anda, Anda harus mengompilasi aplikasi terhadap library Android yang disediakan di platform Android 3.2 SDK. Tergantung pada kebutuhan, mungkin juga perlu menambahkan android:minSdkVersion="13" ke elemen <uses-sdk> dalam elemen manifes.

Untuk informasi selengkapnya, baca Apa yang dimaksud dengan API Tingkat?