Jelly Bean

Android 4.3

Android 4.3 di ponsel dan tablet

Selamat datang di Android 4.3, versi Jelly Bean yang lebih manis!

Android 4.3 menyertakan pengoptimalan performa dan fitur baru yang hebat bagi pengguna dan developer. Dokumen ini memberikan gambaran sekilas tentang hal-hal yang baru bagi developer.

Lihat dokumen API Android 4.3 untuk mendapatkan informasi mendetail tentang API developer yang baru.

Cari tahu selengkapnya tentang fitur Jelly Bean yang baru bagi pengguna di www.android.com.

Lebih Cepat, Lebih Lancar, Lebih Responsif

Android 4.3 dikembangkan dari peningkatan performa yang sudah disertakan dalam Jelly Bean — pengaturan waktu vsync, buffering tiga kali, latensi sentuh yang berkurang, peningkatan input CPU, dan rendering 2D yang dipercepat hardware — serta menambahkan pengoptimalan baru yang membuat Android menjadi lebih cepat.

Untuk peningkatan performa grafis, perender 2D dengan akselerasi hardware kini mengoptimalkan streaming perintah gambar, mengubahnya menjadi format GPU yang lebih efisien dengan mengatur ulang dan menggabungkan operasi gambar. Untuk pemrosesan multi-thread, perender kini juga dapat menggunakan multithreading di beberapa core CPU untuk melakukan tugas tertentu.

Android 4.3 juga meningkatkan rendering untuk bentuk dan teks. Bentuk seperti lingkaran dan persegi panjang membulat kini dirender dengan kualitas lebih tinggi dengan cara yang lebih efisien. Pengoptimalan untuk teks mencakup peningkatan performa saat menggunakan beberapa font atau kumpulan glyph kompleks (CJK), kualitas rendering yang lebih tinggi saat menskalakan teks, dan rendering drop shadow yang lebih cepat.

Alokasi buffer jendela yang lebih baik menghasilkan alokasi buffer gambar yang lebih cepat untuk aplikasi Anda, sehingga mengurangi waktu yang dibutuhkan untuk memulai rendering saat membuat jendela.

Untuk grafis berperforma tertinggi, Android 4.3 memperkenalkan dukungan untuk OpenGL ES 3.0 dan membuatnya dapat diakses oleh aplikasi melalui framework dan API native. Pada perangkat yang didukung, mesin rendering 2D dengan akselerasi hardware memanfaatkan OpenGL ES 3.0 untuk mengoptimalkan pengelolaan tekstur dan meningkatkan fidelity rendering gradien.

OpenGL ES 3.0 untuk Grafis Berperforma Tinggi

Android 4.3 memperkenalkan dukungan platform untuk Khronos OpenGL ES 3.0, yang memberikan kemampuan grafis 2D dan 3D berperforma tertinggi untuk game dan aplikasi lainnya pada perangkat yang didukung. Anda dapat memanfaatkan OpenGL ES 3.0 dan ekstensi EGL yang terkait menggunakan API framework atau binding API native melalui Android Native Development Kit (NDK).

Fungsi baru utama yang disediakan di OpenGL ES 3.0 mencakup akselerasi efek visual canggih, kompresi tekstur ETC2/EAC berkualitas tinggi sebagai fitur standar, versi baru bahasa shading GLSL ES dengan dukungan bilangan bulat dan floating point 32-bit, rendering tekstur lanjutan, serta ukuran tekstur dan format buffering render standar.

Anda dapat menggunakan API OpenGL ES 3.0 untuk membuat grafis yang sangat kompleks dan sangat efisien yang berjalan di berbagai perangkat Android yang kompatibel, serta dapat mendukung satu format kompresi tekstur standar di seluruh perangkat tersebut.

OpenGL ES 3.0 adalah fitur opsional yang bergantung pada hardware grafis yang mendasarinya. Dukungan sudah tersedia di perangkat Nexus 7 (2013), Nexus 4, dan Nexus 10.

Konektivitas Bluetooth yang Disempurnakan

Konektivitas dengan perangkat dan sensor Bluetooth Smart

Anda kini dapat mendesain dan mem-build aplikasi yang dapat berinteraksi dengan perangkat kecil berdaya rendah generasi terbaru dan sensor yang menggunakan teknologi Bluetooth Smart.

Android 4.3 memberikan satu API standar untuk berinteraksi dengan perangkat Bluetooth Smart.

Android 4.3 memperkenalkan dukungan platform bawaan untuk Bluetooth Smart Ready dalam peran sentral dan menyediakan sekumpulan API standar yang dapat digunakan aplikasi untuk menemukan perangkat di sekitar, membuat kueri layanan GATT, dan membaca/menulis karakteristik.

Dengan API baru, aplikasi Anda dapat secara efisien memindai perangkat dan layanan yang diminati. Untuk setiap perangkat, Anda dapat memeriksa layanan GATT yang didukung berdasarkan UUID serta mengelola koneksi berdasarkan ID perangkat dan kekuatan sinyal. Anda dapat terhubung ke server GATT yang dihosting di perangkat dan membaca atau menulis karakteristik, atau mendaftarkan pemroses untuk menerima notifikasi setiap kali karakteristik tersebut berubah.

Anda dapat menerapkan dukungan untuk setiap profil GATT. Anda dapat membaca atau menulis karakteristik standar atau menambahkan dukungan untuk karakteristik kustom sesuai kebutuhan. Aplikasi Anda dapat berfungsi sebagai klien atau server dan dapat mengirim serta menerima data dalam kedua mode tersebut. API ini bersifat umum, sehingga Anda akan dapat mendukung interaksi dengan berbagai perangkat seperti tag kedekatan, smartwatch, pengukur kebugaran, pengontrol game, remote control, perangkat kesehatan, dan lainnya.

Dukungan untuk Bluetooth Smart Ready sudah tersedia di perangkat Nexus 7 (2013) dan Nexus 4 serta akan didukung di semakin banyak perangkat yang kompatibel dengan Android dalam beberapa bulan mendatang.

Profil AVRCP 1.3

Android 4.3 menambahkan dukungan bawaan untuk Bluetooth AVRCP 1.3, sehingga aplikasi Anda dapat mendukung interaksi yang lebih beragam dengan perangkat media streaming jarak jauh. Aplikasi seperti pemutar media dapat memanfaatkan AVRCP 1.3 melalui API klien remote control yang diperkenalkan di Android 4.0. Selain mengekspos kontrol pemutaran pada perangkat jarak jauh yang terhubung melalui Bluetooth, aplikasi kini dapat mengirimkan metadata seperti nama trek, komposer, dan jenis metadata media lainnya.

Dukungan platform untuk AVRCP 1.3 dibangun pada stack Bluetooth Bluedroid yang diperkenalkan oleh Google dan Broadcom di Android 4.2. Dukungan langsung tersedia di perangkat Nexus dan perangkat lain yang kompatibel dengan Android yang menawarkan kemampuan A2DP/AVRCP.

Dukungan untuk Profil yang Dibatasi

Menyiapkan Profil dengan Batasan

Pemilik tablet dapat menyetel satu atau beberapa profil yang dibatasi dalam Setelan dan mengelolanya secara terpisah.

Menyetel Batasan dalam Profil

Aplikasi Anda dapat menawarkan batasan agar pemilik dapat mengelola konten aplikasi ketika sedang dijalankan dalam sebuah profil.

Android 4.3 memperluas fitur multipengguna untuk tablet dengan profil yang dibatasi, sebuah cara baru untuk mengelola pengguna dan kemampuannya di satu perangkat. Dengan profil yang dibatasi, pemilik tablet dapat dengan cepat menyiapkan lingkungan terpisah untuk setiap pengguna, dengan kemampuan untuk mengelola pembatasan yang lebih mendetail dalam aplikasi yang tersedia di lingkungan tersebut. Profil yang dibatasi cocok untuk teman dan keluarga, pengguna tamu, kios, perangkat tempat penjualan, dan lainnya.

Setiap profil yang dibatasi menawarkan ruang yang terisolasi dan aman dengan penyimpanan lokal, layar utama, widget, dan setelannya sendiri. Berbeda dengan pengguna, profil dibuat dari lingkungan pemilik tablet, berdasarkan aplikasi dan akun sistem yang diinstal pemilik. Pemilik mengontrol aplikasi terinstal mana yang diaktifkan di profil yang baru, dan akses ke akun pemilik dinonaktifkan secara default.

Aplikasi yang perlu mengakses akun pemilik — untuk login, preferensi, atau penggunaan lainnya — dapat memilih ikut serta dengan mendeklarasikan atribut manifes, dan pemilik dapat meninjau serta mengelola aplikasi tersebut dari setelan konfigurasi profil.

Bagi developer, profil yang dibatasi menawarkan cara baru untuk memberikan nilai dan kontrol yang lebih besar kepada pengguna. Anda dapat mengimplementasikan pembatasan aplikasi — kontrol konten atau kemampuan yang didukung oleh aplikasi Anda — dan memberitahukannya kepada pemilik tablet dalam setelan konfigurasi profil.

Anda dapat menambahkan batasan aplikasi secara langsung ke setelan konfigurasi profil menggunakan jenis boolean, pilihan, dan multi-pilihan yang telah ditentukan. Jika menginginkan lebih banyak fleksibilitas, Anda bahkan dapat meluncurkan UI sendiri dari setelan konfigurasi profil untuk menawarkan jenis batasan apa pun yang diinginkan.

Saat berjalan di profil, aplikasi dapat memeriksa setiap batasan yang dikonfigurasi oleh pemilik dan menerapkannya dengan tepat. Misalnya, aplikasi media mungkin menawarkan batasan untuk memungkinkan pemilik menetapkan tingkat kedewasaan profil. Pada runtime, aplikasi dapat memeriksa setelan kedewasaan, lalu mengelola konten sesuai dengan tingkat kedewasaan yang diinginkan.

Jika aplikasi Anda tidak didesain untuk digunakan dalam profil yang dibatasi, Anda dapat memilih untuk tidak menggunakannya sama sekali, sehingga aplikasi tidak dapat diaktifkan di profil yang dibatasi.

Kemampuan Lokasi dan Sensor yang Dioptimalkan

Layanan Google Play menawarkan API lokasi lanjutan yang dapat digunakan dalam aplikasi Anda. Android 4.3 mengoptimalkan API ini di perangkat yang didukung dengan kemampuan hardware dan software baru yang meminimalkan penggunaan baterai.

Pembatasan wilayah hardware mengoptimalkan efisiensi daya dengan melakukan komputasi lokasi di hardware perangkat, bukan di software. Pada perangkat yang mendukung pembatasan wilayah hardware, API pembatasan wilayah layanan Google Play akan dapat memanfaatkan pengoptimalan ini untuk menghemat baterai saat perangkat bergerak.

Mode hanya pemindaian Wi-Fi adalah pengoptimalan platform baru yang memungkinkan pengguna terus memindai Wi-Fi tanpa terhubung ke jaringan Wi-Fi, untuk meningkatkan akurasi lokasi sekaligus menghemat baterai. Aplikasi yang bergantung pada Wi-Fi untuk layanan lokasi kini dapat meminta pengguna untuk mengaktifkan mode hanya pemindaian dari setelan lanjutan Wi-Fi. Mode khusus pemindaian Wi-Fi tidak bergantung pada hardware perangkat dan tersedia sebagai bagian dari platform Android 4.3.

Jenis sensor baru memungkinkan aplikasi mengelola pembacaan sensor dengan lebih baik. Vektor rotasi game memungkinkan developer game mendeteksi rotasi perangkat tanpa perlu mengkhawatirkan interferensi magnetik. Giroskop yang tidak dikalibrasi dan sensor magnetometer yang tidak dikalibrasi melaporkan pengukuran mentah serta perkiraan bias pada aplikasi.

Kemampuan hardware baru ini sudah tersedia di perangkat Nexus 7 (2013) dan Nexus 4, serta produsen perangkat atau vendor chipset dapat mem-build-nya ke dalam perangkat mereka.

Kemampuan Media Baru

Framework DRM modular

Untuk memenuhi kebutuhan layanan media generasi berikutnya, Android 4.3 memperkenalkan framework DRM modular yang memungkinkan developer aplikasi media mengintegrasikan DRM dengan lebih mudah ke dalam protokol streaming mereka sendiri, seperti MPEG DASH (Dynamic Adaptive Streaming over HTTP, ISO/IEC 23009-1).

Melalui kombinasi API baru dan peningkatan pada API yang sudah ada, framework DRM media menyediakan kumpulan layanan terintegrasi untuk mengelola pemberian lisensi dan penyediaan, mengakses codec level rendah, dan mendekode data media terenkripsi. MediaExtractor API baru memungkinkan Anda mendapatkan metadata PSSH untuk media DASH. Aplikasi yang menggunakan framework DRM media mengelola komunikasi jaringan dengan server lisensi dan menangani streaming data terenkripsi dari library konten.

Encoder VP8

Android 4.3 memperkenalkan dukungan bawaan untuk encoding VP8, yang dapat diakses dari framework dan API native. Untuk aplikasi yang menggunakan API native, platform menyertakan header ekstensi OpenMAX 1.1.2 untuk mendukung level dan profil VP8. Dukungan encoding VP8 mencakup setelan untuk kecepatan bit target, kontrol kecepatan, kecepatan frame, partisi token, ketahanan terhadap error, rekonstruksi, dan filter loop. API platform ini memperkenalkan dukungan encoder VP8 dalam berbagai format sehingga Anda dapat memanfaatkan format terbaik untuk konten Anda.

Encoding VP8 tersedia dalam software di semua perangkat kompatibel yang menjalankan Android 4.3. Untuk performa tertinggi, platform ini juga mendukung encoding VP8 akselerasi hardware pada perangkat yang mendukung.

Encoding video dari permukaan

Mulai Android 4.3, Anda dapat menggunakan platform sebagai input untuk encoder video. Misalnya, kini Anda dapat mengarahkan streaming dari platform OpenGL ES ke encoder, tanpa harus menyalin antar-buffer.

Muxer media

Aplikasi dapat menggunakan API muxer media baru untuk menggabungkan streaming audio dan video dasar menjadi satu file output. Saat ini, aplikasi dapat melakukan multipleks pada satu streaming audio MPEG-4 dan satu streaming video MPEG-4 menjadi satu file output MPEG-4. API baru ini adalah padanan dari API demuxing media yang diperkenalkan di Android 4.2.

Progres pemutaran dan scrubbing pada klien remote control

Sejak Android 4.0, pemutar media dan aplikasi serupa dapat menawarkan kontrol pemutaran dari klien remote control seperti layar kunci perangkat, notifikasi, dan perangkat jarak jauh yang terhubung melalui Bluetooth. Mulai Android 4.3, aplikasi tersebut kini juga dapat menunjukkan progres dan kecepatan pemutaran melalui klien remote kontrolnya, serta menerima perintah untuk melompat ke posisi pemutaran tertentu.

Cara Baru untuk Mem-build Aplikasi yang Menarik

Akses ke notifikasi

Notifikasi sudah menjadi fitur Android yang populer karena memungkinkan pengguna melihat informasi dan update dari seluruh sistem, semuanya di satu tempat. Sekarang di Android 4.3, aplikasi dapat mengamati aliran notifikasi dengan izin pengguna dan menampilkan notifikasi dengan cara apa pun yang diinginkan, termasuk mengirimkannya ke perangkat di sekitar yang terhubung melalui Bluetooth.

Anda dapat mengakses notifikasi melalui API baru yang memungkinkan Anda mendaftarkan layanan pemroses notifikasi, dan dengan izin pengguna, menerima notifikasi saat ditampilkan di status bar. Notifikasi dikirimkan kepada Anda secara penuh, dengan semua detail tentang aplikasi asal, waktu pasca, tampilan dan gaya konten, serta prioritas. Anda dapat mengevaluasi kolom minat pada notifikasi, memproses atau menambahkan konteks dari aplikasi, dan mengarahkannya untuk ditampilkan dengan cara yang Anda pilih.

API baru ini memberi Anda callback saat notifikasi ditambahkan, diupdate, dan dihapus (baik karena pengguna menutupnya atau ditarik oleh aplikasi asalnya). Anda dapat meluncurkan intent apa pun yang terkait dengan notifikasi atau tindakannya, serta menutupnya dari sistem sehingga aplikasi dapat menyediakan antarmuka pengguna yang lengkap ke notifikasi.

Pengguna tetap memegang kontrol atas aplikasi yang dapat menerima notifikasi. Pengguna dapat melihat aplikasi mana saja yang memiliki akses notifikasi kapan saja di Setelan, serta mengaktifkan atau menonaktifkan akses sesuai kebutuhan. Akses notifikasi dinonaktifkan secara default. Aplikasi dapat menggunakan Intent baru untuk mengarahkan pengguna langsung ke Setelan guna mengaktifkan layanan pemroses setelah penginstalan.

Overlay tampilan

Anda kini dapat membuat overlay transparan pada View dan ViewGroup untuk merender hierarki Tampilan sementara atau efek animasi sementara tanpa mengganggu hierarki tata letak yang mendasarinya. Overlay sangat berguna saat Anda ingin membuat animasi seperti menggeser tampilan di luar penampungnya atau menarik item di layar tanpa memengaruhi hierarki tampilan.

Mode tata letak batas optis

Mode tata letak baru memungkinkan Anda mengelola pemosisian View dalam ViewGroup sesuai dengan batas optik, bukan batas klipnya. Batas klip merepresentasikan batas luar widget yang sebenarnya, sedangkan batas optik yang baru menjelaskan lokasi widget, dalam batas klip. Anda dapat menggunakan mode tata letak batas optik untuk menyelaraskan widget dengan tepat yang menggunakan efek visual luar seperti bayangan dan glow.

Jenis animasi rotasi kustom

Aplikasi kini dapat menentukan jenis animasi keluar dan masuk yang digunakan pada jendela saat perangkat diputar. Anda dapat menyetel properti jendela untuk mengaktifkan rotasi jendela melompat-memotong, menyilang-memudar, atau standar. Sistem menggunakan jenis animasi kustom saat jendela dalam mode layar penuh dan tidak tertutup oleh jendela lain.

Mode orientasi layar

Aplikasi dapat menetapkan mode orientasi baru untuk Aktivitas guna memastikan bahwa mode tersebut ditampilkan dalam orientasi yang tepat saat perangkat dibalik. Selain itu, aplikasi dapat menggunakan mode baru untuk mengunci layar ke orientasi saat ini. Hal ini berguna untuk aplikasi yang menggunakan kamera jika Anda ingin menonaktifkan rotasi saat merekam video.

Intent untuk menangani Respons Cepat

Android 4.3 memperkenalkan Intent publik baru yang memungkinkan aplikasi apa pun menangani Respons Cepat, yaitu pesan teks yang dikirim oleh pengguna sebagai respons terhadap panggilan masuk, tanpa perlu mengangkat panggilan atau membuka kunci perangkat. Aplikasi Anda dapat memproses intent dan mengirimkan pesan ke penelepon melalui sistem pesan. Intent menyertakan penerima (pemanggil) serta pesan itu sendiri.

Dukungan untuk Pengguna Internasional

Lebih banyak bagian Android 4.3 yang dioptimalkan untuk bahasa RTL.

Peningkatan RTL

Android 4.3 menyertakan peningkatan performa RTL dan dukungan RTL yang lebih luas di seluruh widget UI framework, termasuk ProgressBar/Spinner dan ExpandableListView. Lebih banyak informasi proses debug dapat dilihat melalui alat uiautomatorviewer. Selain itu, lebih banyak komponen UI sistem yang kini berbasis RTL, seperti notifikasi, menu navigasi, dan Panel Tindakan.

Untuk memberikan pengalaman skrip RTL yang lebih baik di seluruh sistem, kini lebih banyak aplikasi sistem default yang mendukung tata letak RTL, termasuk Peluncur, Setelan Cepat, Telepon, Orang, SetupWizard, Jam, Download, dan banyak lagi.

Utilitas untuk pelokalan

Pseudo-lokal mempermudah pengujian pelokalan aplikasi Anda.

Android 4.3 juga menyertakan utilitas dan API baru untuk membuat string RTL yang lebih baik dan menguji UI yang dilokalkan. Class BidiFormatter baru menyediakan API sederhana untuk menggabungkan string Unicode sehingga data skrip RTL ditampilkan sebagaimana mestinya dalam pesan lokal LTR dan sebaliknya. Agar Anda dapat menggunakan utilitas ini secara lebih luas di aplikasi Anda, BidiFormatter API kini juga tersedia untuk versi platform sebelumnya melalui Paket Dukungan di Android SDK.

Untuk membantu Anda mengelola pemformatan tanggal di seluruh lokalitas, Android 4.3 menyertakan metode getBestDateTimePattern() baru yang secara otomatis menghasilkan bentuk tanggal Unicode UTS terbaik yang dilokalkan untuk lokalitas yang Anda tentukan. Ini adalah cara yang mudah untuk memberikan pengalaman yang lebih dilokalkan bagi pengguna.

Untuk membantu Anda menguji aplikasi dengan lebih mudah dalam lokalitas lain, Android 4.3 memperkenalkan pseudo-lokal sebagai opsi developer baru. Pseudo-lokal menyimulasikan bahasa, skrip, dan karakteristik tampilan yang terkait dengan lokalitas atau grup bahasa. Saat ini, pengujian dengan pseudo-lokal dapat dilakukan untuk Bahasa Inggris Beraksen, yang memungkinkan Anda melihat cara kerja UI dengan aksen skrip dan karakter yang digunakan dalam berbagai bahasa Eropa.

Aksesibilitas dan Automasi UI

Mulai Android 4.3, layanan aksesibilitas dapat mengamati dan memfilter peristiwa tombol, seperti untuk menangani pintasan keyboard atau menyediakan paritas navigasi dengan input berbasis gestur. Layanan ini menerima peristiwa dan dapat memprosesnya sesuai kebutuhan sebelum diteruskan ke sistem atau aplikasi terinstal lainnya.

Layanan aksesibilitas dapat menyatakan atribut kemampuan baru untuk mendeskripsikan kemampuan layanannya dan fitur platform apa yang digunakan. Misalnya, aplikasi dapat mendeklarasikan kemampuan untuk memfilter peristiwa tombol, mengambil konten jendela, mengaktifkan fitur klik untuk info, atau mengaktifkan fitur aksesibilitas web. Dalam beberapa kasus, layanan harus mendeklarasikan atribut kemampuan sebelum dapat mengakses fitur platform terkait. Sistem menggunakan atribut kemampuan layanan untuk menghasilkan dialog keikutsertaan bagi pengguna, sehingga mereka dapat melihat dan menyetujui kemampuan sebelum peluncuran.

Dibangun berdasarkan framework aksesibilitas di Android 4.3, framework otomatisasi UI baru memungkinkan pengujian berinteraksi dengan UI perangkat dengan menyimulasikan tindakan pengguna dan mengintrospeksi konten layar. Melalui framework otomatisasi UI, Anda dapat menjalankan operasi dasar, menyetel rotasi layar, menghasilkan peristiwa input, mengambil screenshot, dan banyak lagi. Alat ini merupakan cara yang andal untuk mengotomatiskan pengujian dalam skenario pengguna yang realistis, termasuk tindakan atau urutan yang mencakup beberapa aplikasi.

Enterprise dan Keamanan

Konfigurasi Wi-Fi untuk jaringan WPA2-Enterprise

Aplikasi kini dapat mengonfigurasi kredensial Wi-Fi yang diperlukan untuk koneksi ke titik akses WPA2 enterprise. Developer dapat menggunakan API baru untuk mengonfigurasi kredensial Extensible Authentication Protocol (EAP) dan Encapsulated EAP (Fase 2) untuk metode autentikasi yang digunakan di perusahaan. Aplikasi yang memiliki izin untuk mengakses dan mengubah Wi-Fi dapat mengonfigurasi kredensial autentikasi untuk berbagai metode autentikasi EAP dan Tahap 2.

Sandbox Android yang diperkuat dengan SELinux

Android kini menggunakan SELinux, sistem kontrol akses wajib (MAC) dalam kernel Linux untuk meningkatkan sandbox aplikasi berbasis UID. Hal tersebut dapat melindungi sistem operasi dari potensi kerentanan keamanan.

Penyempurnaan KeyChain

API KeyChain kini menyediakan metode yang memungkinkan aplikasi mengonfirmasi bahwa kunci di seluruh sistem terikat dengan root of trust hardware untuk perangkat. Hal ini menyediakan tempat untuk membuat atau menyimpan kunci pribadi yang tidak boleh diekspor dari perangkat, bahkan jika terjadi gangguan pada root atau kernel.

Penyedia Keystore Android

Android 4.3 memperkenalkan penyedia keystore dan API yang memungkinkan aplikasi membuat kunci penggunaan eksklusif. Dengan API ini, aplikasi dapat membuat atau menyimpan kunci pribadi yang tidak dapat dilihat atau digunakan oleh aplikasi lain, dan dapat ditambahkan ke keystore tanpa interaksi pengguna.

Penyedia keystore memberikan manfaat keamanan yang sama seperti yang diberikan oleh API KeyChain untuk kredensial di seluruh sistem, seperti mengikat kredensial ke perangkat. Kunci pribadi dalam keystore tidak boleh diekspor ke luar perangkat.

Membatasi Setuid dari Aplikasi Android

Partisi /system kini sudah terpasang nosuid untuk proses yang dibuat dari zygote, sehingga mencegah aplikasi Android menjalankan program setuid. Hal ini akan mengurangi permukaan serangan root dan kemungkinan potensi kerentanan keamanan.

Cara Baru untuk Menganalisis Performa

Systrace menggunakan sintaksis perintah baru dan memungkinkan Anda mengumpulkan lebih banyak jenis data pembuatan profil.

Penyempurnaan logging Systrace

Android 4.3 mendukung versi fitur Systrace yang ditingkatkan dan lebih mudah digunakan dan memberi Anda akses ke lebih banyak jenis informasi untuk membuat profil performa aplikasi. Anda kini dapat mengumpulkan data rekaman aktivitas dari modul hardware, fungsi kernel, Dalvik VM termasuk pembersihan sampah memori, pemuatan resource, dan lainnya.

Android 4.3 juga menyertakan Trace API baru yang dapat digunakan di aplikasi untuk menandai bagian kode tertentu yang akan dilacak menggunakan peristiwa mulai/akhir Systrace. Saat bagian kode yang ditandai dieksekusi, sistem akan menulis peristiwa mulai/akhir ke log rekaman aktivitas. Tidak ada dampak minimal pada performa aplikasi Anda, sehingga pengaturan waktu yang dilaporkan memberi Anda gambaran akurat tentang apa yang dilakukan aplikasi Anda.

Anda dapat memvisualisasikan peristiwa khusus aplikasi di linimasa dalam file output Systrace dan menganalisis peristiwa dalam konteks data rekaman aktivitas kernel dan ruang pengguna lainnya. Bersama dengan tag Systrace yang sudah ada, bagian aplikasi kustom dapat memberi Anda cara baru untuk memahami performa dan perilaku aplikasi.

Pembuatan profil GPU di layar di Android 4.3.

Pembuatan profil GPU di layar

Android 4.3 menambahkan opsi developer baru untuk membantu Anda menganalisis performa aplikasi dan menemukan masalah rendering pada perangkat atau emulator apa pun.

Dalam opsi Rendering GPU profil, Anda kini dapat memvisualisasikan kecepatan frame aplikasi yang efektif di layar saat aplikasi sedang berjalan. Anda dapat memilih untuk menampilkan data pembuatan profil sebagai grafik batang atau garis di layar, dengan warna yang menunjukkan waktu yang dihabiskan untuk membuat perintah menggambar (biru), mengeluarkan perintah (oranye), dan menunggu perintah selesai (kuning). Sistem memperbarui grafik di layar secara terus-menerus, menampilkan grafik untuk setiap Aktivitas yang terlihat, termasuk menu navigasi dan baris notifikasi.

Garis hijau menandai nilai minimum 16 md untuk operasi rendering, sehingga Anda dapat menilai kecepatan frame aplikasi yang efektif terhadap target 60 fps (karena 1/60 detik sama dengan sekitar 16 md). Jika melihat operasi yang melewati garis hijau, Anda dapat menganalisisnya lebih lanjut menggunakan Systrace dan alat lainnya.

Pada perangkat yang menjalankan Android 4.2 dan yang lebih tinggi, opsi developer disembunyikan secara default. Anda dapat menampilkannya kapan saja dengan mengetuk 7 kali di Setelan > Tentang ponsel > Nomor build di perangkat Android yang kompatibel.

Peringatan StrictMode untuk URI file

Penambahan terbaru pada alat StrictMode adalah batasan kebijakan yang memperingatkan saat aplikasi Anda mengekspos URI file:// ke sistem atau aplikasi lain. Dalam beberapa kasus, aplikasi penerima mungkin tidak memiliki akses ke jalur URI file:// sehingga saat berbagi file antar-aplikasi, URI content:// harus digunakan (dengan izin yang sesuai). Kebijakan baru ini membantu Anda mengidentifikasi dan memperbaiki kasus semacam ini. Jika mencari cara yang mudah untuk menyimpan dan mengekspos file ke aplikasi lain, coba gunakan penyedia konten FileProvider yang tersedia di Support Library.

Android 4.2

Android 4.2 di ponsel dan tablet

Selamat datang di Android 4.2, versi terbaru Jelly Bean!

Android 4.2 memiliki pengoptimalan performa, UI sistem yang lebih segar, dan fitur baru yang hebat bagi pengguna dan developer. Dokumen ini memberikan gambaran sekilas tentang hal-hal yang baru bagi developer.

Lihat dokumen API Android 4.2 untuk mendapatkan informasi mendetail tentang API developer yang baru.

Cari tahu selengkapnya tentang fitur Jelly Bean yang baru bagi pengguna di www.android.com.

Lebih Cepat, Lebih Lancar, dan Lebih Responsif

Android 4.2 dikembangkan dari peningkatan performa yang sudah disertakan dalam Jelly Bean — pengaturan waktu vsync, buffering tiga kali, latensi sentuh yang berkurang, dan peningkatan input CPU — serta menambahkan pengoptimalan baru yang mempercepat performa Android.

Peningkatan dalam perender 2D yang dipercepat hardware membuat animasi umum seperti men-scroll dan menggeser menjadi lebih halus dan lebih cepat. Secara khusus, gambar dioptimalkan untuk lapisan, pemotongan, dan bentuk tertentu (rect membulat, lingkaran, dan oval).

Berbagai pengoptimalan rendering WebView menjadikan scroll halaman web lebih lancar serta bebas dari jitter dan lag.

Komputasi Renderscript di Android adalah platform komputasi pertama yang di-port agar berjalan langsung di GPU perangkat seluler. API ini secara otomatis memanfaatkan resource komputasi GPU jika memungkinkan, sehingga meningkatkan performa secara drastis untuk pemrosesan gambar dan grafis. Aplikasi apa pun yang menggunakan Renderscript di perangkat yang didukung dapat langsung mendapatkan manfaat dari integrasi GPU ini tanpa kompilasi ulang.

UI yang lebih segar dan disempurnakan

Android 4.2 menyempurnakan pengalaman pengguna Jelly Bean dan menghadirkan pola UI Android yang sudah dikenal, seperti status bar, kolom sistem, dan jendela notifikasi ke semua tablet.

Semua ukuran layar kini menampilkan status bar di bagian atas, dengan akses pull-down ke notifikasi dan menu Setelan Cepat yang baru. Kolom sistem yang sudah dikenal akan muncul di bagian bawah, dengan tombol yang mudah diakses dari salah satu tangan. Application Tray juga tersedia pada semua ukuran layar.

Satu tablet, banyak pengguna

Beberapa pengguna kini dapat berbagi satu tablet Android, dan setiap pengguna memiliki akses yang mudah ke ruang pengguna khusus. Pengguna dapat beralih ke ruang mereka dengan satu sentuhan dari layar kunci.

Pada perangkat multipengguna, Android memberikan lingkungan terpisah kepada setiap pengguna, termasuk penyimpanan kartu SD yang diemulasikan khusus pengguna. Pengguna juga memiliki layar utama, widget, akun, setelan, file, serta aplikasinya sendiri, dan sistem akan memisahkannya. Semua pengguna berbagi layanan sistem inti, tetapi sistem akan memastikan bahwa aplikasi dan data setiap pengguna tetap terisolasi. Akibatnya, masing-masing dari beberapa pengguna memiliki perangkat Android mereka sendiri.

Pengguna dapat menginstal dan meng-uninstal aplikasi kapan saja di lingkungannya sendiri. Untuk menghemat ruang penyimpanan, Google Play akan mendownload APK hanya jika APK belum diinstal oleh pengguna lain di perangkat. Jika aplikasi sudah diinstal, Google Play akan merekam penginstalan pengguna baru seperti biasa, tetapi tidak mendownload salinan lain dari aplikasi. Beberapa pengguna dapat menjalankan salinan APK yang sama karena sistem membuat instance baru untuk setiap pengguna, termasuk direktori data khusus pengguna.

Bagi developer, dukungan multi-pengguna bersifat transparan; aplikasi Anda tidak perlu melakukan hal khusus agar dapat berjalan secara normal di lingkungan multi-pengguna dan tidak ada perubahan yang perlu dilakukan di APK yang sudah ada atau sudah dipublikasikan. Sistem akan mengelola aplikasi Anda di setiap ruang pengguna seperti halnya di lingkungan satu pengguna.

Cara baru untuk menarik interaksi pengguna

Widget layar kunci kalender

Anda dapat memperluas widget aplikasi agar berjalan di layar kunci untuk akses langsung ke konten Anda.

Widget layar kunci

Di Android 4.2, pengguna dapat menempatkan widget aplikasi langsung di layar kunci, untuk akses instan ke konten aplikasi favorit tanpa harus membuka kunci. Pengguna dapat menambahkan sebanyak lima widget layar kunci, dengan memilih widget yang disediakan oleh aplikasi terinstal. Layar kunci menampilkan setiap widget di panelnya sendiri, sehingga pengguna dapat menggeser ke kiri dan kanan untuk melihat berbagai panel dan widget mereka.

Seperti semua widget aplikasi, widget layar kunci dapat menampilkan semua jenis konten dan dapat menerima interaksi pengguna langsung. Aplikasi tersebut dapat sepenuhnya mandiri, seperti widget yang menawarkan kontrol untuk memutar musik, atau dapat mengizinkan pengguna langsung menuju ke Aktivitas di aplikasi Anda, setelah membuka kunci sesuai kebutuhan.

Bagi developer, widget layar kunci menawarkan cara baru yang hebat untuk menarik interaksi pengguna. Iklan ini memungkinkan Anda menampilkan konten kepada pengguna di lokasi yang akan sering mereka lihat, dan memberi Anda lebih banyak peluang untuk mengarahkan pengguna langsung ke aplikasi Anda.

Anda dapat memanfaatkan kemampuan baru ini dengan membuat widget aplikasi baru atau memperluas widget layar utama yang ada. Jika aplikasi sudah menyertakan widget layar utama, Anda dapat memperluasnya ke layar kunci dengan sedikit perubahan. Untuk memberikan pengalaman yang optimal kepada pengguna, Anda dapat mengupdate widget untuk menggunakan area layar kunci penuh jika tersedia dan mengubah ukurannya jika diperlukan di layar yang lebih kecil. Anda juga dapat menambahkan fitur ke widget yang mungkin akan sangat berguna atau memberikan kemudahan di layar kunci.

Daydream

Daydream adalah mode screensaver interaktif yang dimulai ketika perangkat pengguna dipasang ke dok atau mengisi daya. Dalam mode ini, sistem meluncurkan daydream, yaitu layanan konten jarak jauh yang disediakan oleh aplikasi yang terinstal, sebagai screensaver perangkat. Pengguna dapat mengaktifkan Daydream dari aplikasi Setelan, lalu memilih daydream yang akan ditampilkan.

Daydream menggabungkan kemampuan terbaik wallpaper animasi dan widget layar utama, tetapi keduanya lebih canggih. Fitur ini memungkinkan Anda menawarkan segala jenis konten dalam konteks yang benar-benar baru, dengan interaksi pengguna seperti membalik foto, memutar audio atau video, atau langsung membuka aplikasi dengan satu sentuh.

Karena daydream dapat dimulai secara otomatis saat perangkat sedang diisi daya atau dipasang ke dok, daydream juga memberikan cara yang bagus bagi aplikasi Anda untuk mendukung jenis pengalaman pengguna baru, seperti mode Leanback atau pameran, mode demo atau kios, dan "mode atraktif" — semuanya tanpa memerlukan hardware khusus.

Mode screensaver Daydream

Daydream memungkinkan Anda membuat screensaver interaktif canggih yang menampilkan segala jenis konten.

Daydream mirip dengan Aktivitas dan dapat melakukan apa pun yang dapat dilakukan Aktivitas — mulai dari merender hierarki UI (tanpa RemoteViews) hingga menggambar langsung menggunakan Canvas, OpenGL, SurfaceSurface, dan banyak lagi. Alat ini dapat memutar video dan audio, bahkan menerima interaksi langsung dengan pengguna. Namun, daydream bukan Aktivitas, sehingga tidak memengaruhi data sebelumnya atau muncul di Recents, dan tidak dapat diluncurkan langsung dari aplikasi Anda.

Menerapkan daydream sangat mudah dan Anda dapat memanfaatkan komponen UI dan resource yang telah dibuat untuk bagian lain aplikasi. Anda dapat menyediakan beberapa daydream di aplikasi dan menawarkan konten dan setelan tampilan yang berbeda untuk masing-masingnya.

Dukungan tampilan eksternal

Android 4.2 memperkenalkan dukungan platform untuk layar eksternal yang lebih dari sekadar pencerminan — aplikasi kini dapat menargetkan konten unik ke salah satu atau beberapa layar yang terpasang ke perangkat Android. Aplikasi dapat memanfaatkannya untuk memberikan jenis interaksi dan pengalaman hiburan baru kepada pengguna.

Pengelola tampilan

Aplikasi berinteraksi dengan tampilan melalui layanan sistem pengelola tampilan baru. Aplikasi dapat menghitung tampilan dan memeriksa kemampuannya masing-masing, termasuk ukuran, kepadatan, nama tampilan, ID, dukungan untuk video yang aman, dan lainnya. Aplikasi Anda juga dapat menerima callback saat tampilan ditambahkan atau dihapus atau saat kemampuannya berubah, untuk mengelola konten Anda dengan lebih baik di layar eksternal.

Jendela presentasi

Untuk memudahkan Anda menampilkan konten di tampilan eksternal, framework menyediakan objek UI baru yang disebut Presentasi — sejenis dialog yang mewakili jendela untuk konten aplikasi Anda pada tampilan eksternal tertentu. Aplikasi hanya memberikan tampilan yang akan digunakan, tema untuk jendela, dan konten unik apa pun untuk ditampilkan. Presentasi menangani resource yang meng-inflate dan merender konten sesuai dengan karakteristik tampilan yang ditargetkan.

Anda dapat mengontrol dua atau beberapa layar independen secara penuh menggunakan Presentasi.

Presentasi memberi aplikasi kontrol penuh atas jendela tampilan jarak jauh dan kontennya, serta memungkinkan Anda mengelolanya berdasarkan peristiwa input pengguna seperti penekanan tombol, gestur, peristiwa gerakan, dan lainnya. Anda dapat menggunakan semua alat normal untuk membuat UI dan merender konten dalam Presentasi, mulai dari membuat hierarki tampilan arbitrer hingga menggunakan SurfaceView atau SurfaceSurface untuk menggambar langsung ke jendela untuk konten yang di-streaming atau pratinjau kamera.

Pemilihan tampilan pilihan

Jika tersedia beberapa tampilan eksternal, Anda dapat membuat Presentasi sebanyak yang diperlukan, dengan masing-masing menampilkan konten unik pada tampilan tertentu. Dalam banyak kasus, Anda mungkin hanya ingin menampilkan konten pada satu layar eksternal, tetapi selalu pada tampilan yang paling cocok untuk konten Presentasi. Untuk mewujudkannya, sistem dapat membantu aplikasi memilih tampilan terbaik yang akan digunakan.

Untuk menemukan tampilan terbaik yang akan digunakan, aplikasi dapat mengkueri pengelola tampilan untuk tampilan Presentasi pilihan sistem dan menerima callback saat tampilan berubah. Atau, Anda dapat menggunakan layanan router media, yang diperluas di Android 4.2, untuk menerima notifikasi saat rute video sistem berubah. Aplikasi Anda dapat menampilkan konten secara default di Aktivitas utama hingga tampilan Presentasi pilihan dilampirkan, yang pada saat itu dapat otomatis beralih ke Konten presentasi pada tampilan yang diinginkan. Aplikasi Anda juga dapat menggunakan MediaRouteActionProvider dan MediaRouteButton router media untuk menawarkan UI pemilihan tampilan standar.

Konten yang dilindungi

Untuk aplikasi yang menangani konten yang dilindungi atau dienkripsi, display API kini melaporkan kemampuan video aman dari layar yang terpasang. Aplikasi Anda membuat kueri tampilan untuk mengetahui apakah aplikasi menawarkan output video yang aman atau menyediakan buffering grafis yang dilindungi, lalu memilih streaming atau decoding konten yang sesuai untuk membuat konten terlihat. Untuk keamanan tambahan pada objek SurfaceView, aplikasi Anda dapat menyetel flag aman untuk menunjukkan bahwa konten tidak boleh muncul dalam screenshot atau pada output tampilan yang tidak aman, bahkan saat dicerminkan.

Layar nirkabel

Mulai Android 4.2, pengguna di perangkat yang didukung dapat terhubung ke layar eksternal melalui Wi-Fi, menggunakan Tampilan Wi-Fi (solusi layar nirkabel peer-to-peer yang sesuai dengan program sertifikasi MiracastTM). Saat layar nirkabel terhubung, pengguna dapat melakukan streaming semua jenis konten ke layar TV, termasuk foto, game, peta, dan lainnya.

Aplikasi dapat memanfaatkan layar nirkabel dengan cara yang sama seperti layar eksternal lainnya tanpa tindakan tambahan. Sistem akan mengelola koneksi jaringan dan mengalirkan Presentasi Anda atau konten aplikasi lainnya ke layar nirkabel sesuai kebutuhan.

Dukungan RTL native

Pencerminan tata letak RTL

Developer kini dapat mencerminkan tata letaknya untuk bahasa RTL.

Android 4.2 memperkenalkan dukungan native penuh untuk tata letak RTL (kanan-ke-kiri), termasuk pencerminan tata letak. Dengan dukungan RTL native, Anda dapat memberikan pengalaman aplikasi yang sama bagusnya kepada semua pengguna, baik bahasa mereka menggunakan skrip yang dibaca dari kanan ke kiri atau yang dibaca dari kiri ke kanan.

Saat pengguna mengganti bahasa sistem ke skrip kanan-ke-kiri, sistem kini menyediakan pencerminan otomatis tata letak UI aplikasi dan semua widget tampilan, selain pencerminan bidi elemen teks untuk pembacaan dan input karakter.

Aplikasi Anda dapat memanfaatkan pencerminan tata letak RTL dalam aplikasi dengan sangat mudah. Jika ingin aplikasi dicerminkan, Anda cukup mendeklarasikan atribut baru dalam manifes aplikasi dan mengubah semua properti tata letak "kiri/kanan" menjadi "awal/akhir" yang setara. Selanjutnya, sistem akan menangani pencerminan dan tampilan UI sebagaimana mestinya.

Untuk kontrol yang akurat atas UI aplikasi, Android 4.2 menyertakan API baru yang memungkinkan Anda mengelola arah tata letak, arah teks, perataan teks, gravitasi, dan arah lokal dalam komponen Tampilan. Anda bahkan dapat membuat versi kustom tata letak, drawable, dan resource lainnya untuk tampilan saat skrip kanan-ke-kiri digunakan.

Untuk membantu Anda men-debug dan mengoptimalkan tata letak kanan ke kiri kustom, alat HierarchyViewer kini memungkinkan Anda melihat properti awal/akhir, arah tata letak, arah teks, dan perataan teks untuk semua Tampilan dalam hierarki.

Penyempurnaan untuk bahasa internasional

Android 4.2 menyertakan berbagai pengoptimalan font dan karakter untuk pengguna internasional:

  • Untuk pengguna Korea, tersedia pilihan font baru — Nanum (나눔 글꼴) Gotik, font unicode yang dirancang khusus untuk skrip berbahasa Korea.
  • Peningkatan dukungan untuk teks vertikal bahasa Jepang yang ditampilkan di WebViews.
  • Peningkatan kerning dan positioning font untuk font default Indic, Thai, Arab, dan Ibrani.

Keyboard Android default juga menyertakan kumpulan kamus yang diupdate:

  • Kamus yang ditingkatkan untuk bahasa Prancis (dengan dukungan bigram), Inggris, dan Rusia
  • Kamus baru untuk bahasa Denmark, Yunani, Finlandia, Lituania, Latvia, Polandia, Slovenia, Serbia, Swedia, Turki

Cara baru untuk membuat UI yang menarik

Fragmen Bertingkat

Untuk kontrol yang lebih besar atas komponen UI dan menjadikannya lebih modular, Android 4.2 memungkinkan Anda menyarangkan Fragmen di dalam Fragmen. Untuk Fragmen apa pun, pengelola Fragmen baru memungkinkan Anda menyisipkan Fragmen lain sebagai node turunan dalam hierarki Tampilan.

Anda dapat menggunakan Fragmen bertingkat dengan berbagai cara, tetapi Fragment tersebut sangat berguna untuk menerapkan komponen UI yang dinamis dan dapat digunakan kembali di dalam komponen UI yang juga dinamis dan dapat digunakan kembali. Misalnya, jika menggunakan ViewPager untuk membuat fragmen yang menggeser ke kiri dan kanan, Anda kini dapat menyisipkan fragmen ke setiap Fragmen view pager.

Agar Anda dapat memanfaatkan Fragmen bertingkat secara lebih luas di aplikasi, kemampuan ini ditambahkan ke versi terbaru Android Support Library.

Aksesibilitas

Sistem kini membantu layanan aksesibilitas untuk membedakan antara eksplorasi sentuh dan gestur aksesibilitas saat berada dalam mode eksplorasi sentuh. Saat pengguna menyentuh layar, sistem akan memberi tahu layanan bahwa interaksi sentuh generik telah dimulai. Kemudian, fitur ini akan melacak kecepatan interaksi sentuh dan menentukan apakah interaksi tersebut merupakan eksplorasi sentuh (lambat) atau gestur aksesibilitas (cepat) dan memberi tahu layanan. Saat interaksi sentuh berakhir, sistem akan memberi tahu layanan.

Sistem menyediakan opsi aksesibilitas global baru yang memungkinkan layanan aksesibilitas membuka menu Setelan Cepat berdasarkan tindakan pengguna. Jenis masukan aksesibilitas baru juga ditambahkan di Android 4.2 untuk perangkat Braille.

Guna memberikan insight kepada layanan aksesibilitas tentang arti Tampilan untuk tujuan aksesibilitas, framework ini menyediakan API baru untuk mengaitkan Tampilan sebagai label untuk Tampilan lain. Label untuk setiap Tampilan tersedia untuk layanan aksesibilitas melalui AccessibilityNodeInfo.

Kamera yang disempurnakan dengan HDR

Android 4.2 memperkenalkan antarmuka dan pipeline hardware kamera baru untuk performa yang lebih baik. Di perangkat yang didukung, aplikasi dapat menggunakan mode adegan kamera HDR baru untuk mengambil gambar menggunakan teknik pencitraan rentang dinamis tinggi.

Selain itu, framework ini kini menyediakan API untuk memungkinkan aplikasi memeriksa apakah suara shutter kamera dapat dinonaktifkan. Kemudian, aplikasi dapat mengizinkan pengguna untuk menonaktifkan suara atau memilih suara alternatif sebagai pengganti suara shutter standar, yang direkomendasikan.

Komputasi Renderscript

Di Android 4.2, Komputasi Renderscript memperkenalkan fitur pembuatan skrip baru, pengoptimalan baru, dan integrasi GPU langsung untuk performa tertinggi dalam operasi komputasi.

Filterscript

Filterscript adalah subset Renderscript yang berfokus pada pemrosesan gambar yang dioptimalkan di berbagai chipset perangkat. Developer dapat menulis operasi pemrosesan gambar di Filterscript menggunakan API runtime Renderscript standar, tetapi dalam batasan yang lebih ketat yang memastikan kompatibilitas yang lebih luas dan peningkatan pengoptimalan di seluruh CPU, GPU, dan DSP.

Filterscript sangat ideal untuk operasi komputasi dan pemrosesan gambar sederhana yang mempercepat hardware seperti yang mungkin ditulis untuk shader fragmen OpenGL ES. Karena platform tersebut memberikan serangkaian batasan yang tidak ketat pada hardware, operasi Anda akan dioptimalkan dan dipercepat pada lebih banyak jenis chipset perangkat. Aplikasi apa pun yang menargetkan API level 17 atau lebih tinggi dapat menggunakan Filterscript.

Intrinsik skrip

Di Android 4.2, Renderscript menambahkan dukungan untuk sekumpulan intrinsik skrip — primitif pemfilteran yang dipercepat yang telah diimplementasikan sebelumnya untuk mengurangi jumlah kode yang perlu Anda tulis dan untuk memastikan aplikasi Anda mendapatkan peningkatan performa yang maksimal.

Intrinsik tersedia untuk penggabungan, blur, matriks warna, konvolusi 3x3 dan 5x5, tabel pencarian per saluran, dan mengonversi buffering YUV Android ke RGB.

Grup skrip

Anda kini dapat membuat grup skrip Renderscript dan menjalankan semuanya dengan satu panggilan seolah-olah semuanya adalah bagian dari skrip tunggal. Hal ini memungkinkan Renderscript mengoptimalkan eksekusi skrip dengan cara yang tidak dapat dilakukan jika skrip dijalankan satu per satu.

Bagan optimalisasi RenderScript

Tolok ukur pemrosesan gambar Renderscript berjalan pada versi platform Android yang berbeda (Android 4.0, 4.1, dan 4.2) di CPU hanya pada perangkat Galaxy Nexus.

Tolok ukur pemrosesan gambar Renderscript yang membandingkan operasi yang dijalankan menggunakan GPU + CPU dengan yang hanya dijalankan di CPU pada perangkat Nexus 10 yang sama.

Jika memiliki grafik operasi Renderscript asiklik terarah yang akan dijalankan, Anda dapat menggunakan class builder untuk membuat grup skrip yang menentukan operasi. Pada waktu eksekusi, Renderscript akan mengoptimalkan perintah run dan koneksi antara operasi tersebut untuk mendapatkan performa terbaik.

Peningkatan pengoptimalan yang berkelanjutan

Saat Anda menggunakan Renderscript untuk operasi komputasi, aplikasi Anda akan mendapatkan manfaat dari peningkatan performa dan pengoptimalan berkelanjutan dalam mesin Renderscript itu sendiri, tanpa memengaruhi kode aplikasi Anda atau tidak perlu kompilasi ulang.

Seiring dengan meningkatnya pengoptimalan, operasi Anda akan dijalankan lebih cepat dan pada lebih banyak chipset, tanpa perlu melakukan tindakan apa pun. Diagram di sebelah kanan menyoroti peningkatan performa yang dihasilkan oleh peningkatan pengoptimalan Renderscript yang berkelanjutan di seluruh versi platform Android yang berurutan.

Komputasi GPU

Komputasi Renderscript adalah platform komputasi pertama yang di-port agar berjalan langsung di GPU perangkat seluler. Fitur ini kini otomatis memanfaatkan resource komputasi GPU jika memungkinkan untuk meningkatkan performa. Dengan integrasi GPU, komputasi yang paling kompleks untuk pemrosesan grafis atau gambar pun dapat dijalankan dengan performa yang ditingkatkan secara drastis.

Aplikasi apa pun yang menggunakan Renderscript di perangkat yang didukung dapat langsung mendapatkan manfaat dari integrasi GPU ini, tanpa kompilasi ulang. Tablet Nexus 10 adalah perangkat pertama yang mendukung integrasi ini.

Opsi developer bawaan baru

Sistem Android 4.2 menyertakan berbagai opsi developer baru yang mempermudah pembuatan aplikasi dengan tampilan bagus yang berperforma baik. Opsi baru ini menampilkan fitur untuk men-debug dan membuat profil aplikasi Anda dari perangkat atau emulator apa pun.

Pada perangkat yang menjalankan Android 4.2, opsi developer disembunyikan secara default sehingga membantu menciptakan pengalaman yang lebih baik bagi pengguna. Anda dapat menampilkan opsi developer kapan saja dengan mengetuk 7 kali pada Setelan > Tentang ponsel > Nomor build di perangkat Android yang kompatibel.

Opsi developer baru menyediakan lebih banyak cara untuk melakukan pembuatan profil dan debug di perangkat.

Opsi developer baru di Android 4.2 meliputi:

  • Ambil laporan bug — segera mengambil screenshot dan menyimpan informasi status perangkat ke penyimpanan file lokal, lalu melampirkannya ke pesan email keluar baru.
  • Laporan bug menu daya — Menambahkan opsi baru ke menu daya perangkat dan setelan cepat untuk mengambil laporan bug (lihat di atas).
  • Verifikasi aplikasi melalui usb — Memungkinkan Anda menonaktifkan pemeriksaan aplikasi untuk melakukan sideload aplikasi melalui USB, selagi tetap memeriksa aplikasi dari sumber lain seperti browser. Hal ini dapat mempercepat proses pengembangan sekaligus tetap mengaktifkan fitur keamanan.
  • Tampilkan update lapisan hardware — Membuat lapisan hardware berkedip hijau saat diupdate.
  • Show GPU overdraw — Menyorot area overdraw GPU.
  • Paksa 4x MSAA — Mengaktifkan 4x MSAA dalam aplikasi Open GL ES 2.0.
  • Simulasikan tampilan sekunder — Membuat satu atau beberapa jendela overlay yang tidak aman di layar saat ini untuk digunakan sebagai tampilan jarak jauh yang disimulasikan. Anda dapat mengontrol ukuran dan kepadatan tampilan yang disimulasikan.
  • Aktifkan rekaman aktivitas OpenGL — Memungkinkan Anda melacak eksekusi OpenGL menggunakan Logcat, Systrace, atau callstack di glGetError.

Teknologi Platform Baru

Android 4.2 menyertakan berbagai teknologi platform baru dan teknologi platform yang ditingkatkan untuk mendukung kasus penggunaan komunikasi yang inovatif di berbagai perangkat hardware. Dalam sebagian besar kasus, teknologi dan peningkatan platform baru tidak secara langsung memengaruhi aplikasi, sehingga Anda bisa mendapatkan manfaat darinya tanpa perubahan apa pun.

Penyempurnaan keamanan

Setiap rilis Android menyertakan puluhan peningkatan keamanan untuk melindungi pengguna. Berikut beberapa penyempurnaan di Android 4.2:

  • Verifikasi aplikasi — Pengguna dapat memilih untuk mengaktifkan "Verifikasi Aplikasi" dan meminta aplikasi diperiksa oleh pemverifikasi aplikasi, sebelum penginstalan. Verifikasi aplikasi dapat memperingatkan pengguna jika mereka mencoba menginstal aplikasi yang mungkin berbahaya. Jika aplikasi tidak bagus, aplikasi dapat memblokir penginstalan.
  • Kontrol yang lebih besar atas SMS premium — Android akan memberikan notifikasi jika aplikasi mencoba mengirim SMS ke kode pendek yang menggunakan layanan premium yang dapat dikenai biaya tambahan. Pengguna dapat memilih apakah akan mengizinkan aplikasi mengirim pesan atau memblokirnya.
  • VPN yang selalu aktif — VPN dapat dikonfigurasi agar aplikasi tidak akan memiliki akses ke jaringan hingga koneksi VPN dibuat. Hal ini mencegah aplikasi mengirimkan data ke jaringan lain.
  • Penyematan Sertifikat — Implementasi SSL libcore kini mendukung penyematan sertifikat. Domain yang disematkan akan menerima kegagalan validasi sertifikat jika sertifikat tidak terhubung ke kumpulan sertifikat yang diharapkan. Hal ini melindungi dari kemungkinan penyusupan Certificate Authority.
  • Peningkatan tampilan izin Android — Izin telah diatur ke dalam grup yang lebih mudah dipahami oleh pengguna. Selama peninjauan izin, pengguna dapat mengklik izin untuk melihat informasi yang lebih mendetail tentang izin.
  • installd hardening — Daemon installd tidak berjalan sebagai pengguna root, sehingga mengurangi potensi kemunculan serangan untuk eskalasi akses root.
  • init skrip hardening — skrip init kini menerapkan semantik O_NOFOLLOW untuk mencegah serangan terkait symlink.
  • FORTIFY_SOURCE — Android kini mengimplementasikan FORTIFY_SOURCE. Digunakan oleh library sistem dan aplikasi untuk mencegah kerusakan memori.
  • Konfigurasi default ContentProvider — Aplikasi yang menargetkan API level 17 akan memiliki "ekspor" yang disetel ke "false" secara default untuk setiap ContentProvider, sehingga mengurangi permukaan serangan default untuk aplikasi.
  • Kriptografi — Mengubah implementasi default SecureRandom dan Cipher.RSA untuk menggunakan OpenSSL. Menambahkan dukungan SSLSocket untuk TLSv1.1 dan TLSv1.2 menggunakan OpenSSL 1.0.1
  • Perbaikan Keamanan — Library open source yang diupgrade dengan perbaikan keamanan mencakup WebKit, libpng, OpenSSL, dan LibXML. Android 4.2 juga menyertakan perbaikan untuk kerentanan khusus Android. Informasi tentang kerentanan ini telah diberikan kepada anggota Open Handset Alliance dan perbaikan tersedia di Project Open Source Android. Untuk meningkatkan keamanan, beberapa perangkat dengan versi Android yang lebih lama juga dapat menyertakan perbaikan ini.

Stack Bluetooth baru

Android 4.2 memperkenalkan stack Bluetooth baru yang dioptimalkan untuk digunakan dengan perangkat Android. Stack Bluetooth baru yang dikembangkan melalui kolaborasi antara Google dan Broadcom menggantikan stack berdasarkan BlueZ serta memberikan kompatibilitas dan keandalan yang lebih baik.

Audio latensi rendah

Android 4.2 meningkatkan dukungan untuk pemutaran audio latensi rendah, mulai dari peningkatan yang dibuat pada rilis Android 4.1 untuk latensi output audio menggunakan OpenSL ES, Soundpool, dan API pembuat nada. Peningkatan ini bergantung pada dukungan hardware — perangkat yang menawarkan fitur audio latensi rendah ini dapat mengiklankan dukungannya untuk aplikasi melalui konstanta fitur hardware. API AudioManager baru disediakan untuk mengkueri frekuensi sampel audio native dan ukuran buffer untuk digunakan di perangkat yang mengklaim fitur ini.

Antarmuka hardware kamera baru

Android 4.2 memperkenalkan implementasi baru stack kamera. Subsistem kamera menyertakan implementasi untuk komponen dalam pipeline kamera seperti pengambilan mode burst dengan kontrol pemrosesan.

Antarmuka hardware NFC dan antarmuka pengontrol baru

Android 4.2 memperkenalkan dukungan untuk pengontrol yang didasarkan pada standar NCI dari NFC-Forum. NCI menyediakan protokol komunikasi standar antara Pengontrol NFC (NFCC) dan Host perangkat, dan stack NFC baru yang dikembangkan melalui kolaborasi antara Google dan Broadcom mendukungnya.

Pengoptimalan waktu proses Dalvik

Runtime Dalvik mencakup peningkatan performa dan keamanan di berbagai arsitektur:

  • Dukungan JIT x86 dari Intel dan dukungan JIT MIPS oleh MIPS
  • Parameter pembersihan sampah memori yang dioptimalkan untuk perangkat dengan kapasitas > 512 MB
  • Implementasi default SecureRandom dan Cipher.RSA sekarang menggunakan OpenSSL
  • Dukungan SSLSocket untuk TLSv1.1 dan TLSv1.2 via OpenSSL 1.0.1
  • Dukungan intrinsik baru untuk metode StrictMath abs, min, max, dan sqrt
  • BouncyCastle diupdate ke versi 1.47
  • zlib diupdate ke versi 1.27
  • dlmalloc diupdate ke versi 2.8.6

Android 4.1

Selamat datang di Android 4.1, versi pertama Jelly Bean!

Android 4.1 adalah versi Android tercepat dan terlancar saat ini. Kami telah melakukan peningkatan di seluruh platform dan menambahkan fitur baru yang hebat bagi pengguna dan developer. Dokumen ini memberikan gambaran sekilas tentang hal-hal yang baru bagi developer.

Lihat dokumen API Android 4.1 untuk mendapatkan informasi mendetail tentang API developer yang baru.

Cari tahu lebih lanjut tentang fitur Jelly Bean bagi pengguna di www.android.com.

Lebih Cepat, Lebih Lancar, dan Lebih Responsif

Android 4.1 dioptimalkan untuk menghadirkan performa terbaik Android dan latensi sentuh terendah dalam UI yang mudah dan intuitif.

Untuk memastikan frekuensi gambar yang konsisten, Android 4.1 memperluas pengaturan waktu vsync ke seluruh gambar dan animasi yang dilakukan oleh framework Android. Semuanya berjalan dengan batas frekuensi tetap vsync 16 milidetik, seperti rendering aplikasi, peristiwa sentuh, komposisi layar, dan pemuatan ulang tampilan sehingga frame tidak terlalu cepat atau terlalu lambat.

Android 4.1 juga menambahkan buffering tiga kali dalam pipeline grafis untuk rendering yang lebih konsisten sehingga semuanya terasa lebih lancar, mulai dari proses men-scroll hingga pembagian halaman dan animasi.

Android 4.1 mengurangi latensi sentuh tidak hanya dengan menyinkronkan sentuhan ke pengaturan waktu vsync, tetapi juga benar-benar mengantisipasi ke mana jari Anda akan diarahkan saat pemuatan ulang layar. Hasilnya, respons sentuh pun menjadi lebih reaktif dan seragam. Selain itu, setelah tidak aktif untuk beberapa saat, Android akan menerapkan peningkatan input CPU pada peristiwa sentuh berikutnya untuk memastikan tidak ada latensi.

Rangkaian fitur dapat membantu Anda mendapatkan performa terbaik aplikasi yang sebenarnya. Android 4.1 didesain untuk bekerja dengan alat baru yang disebut systrace, yang mengumpulkan data langsung dari kernel Linux untuk menghasilkan gambaran keseluruhan aktivitas sistem. Data direpresentasikan sebagai sekelompok grafik deret waktu yang disusun secara vertikal untuk membantu memisahkan gangguan rendering dan masalah lainnya. Alat ini kini tersedia di Android SDK (Alat R20 atau yang lebih tinggi)

Aksesibilitas yang Ditingkatkan

API baru untuk layanan aksesibilitas memungkinkan Anda menangani gestur dan mengelola fokus aksesibilitas saat pengguna beralih di antara elemen di layar dan tombol navigasi menggunakan gestur aksesibilitas, aksesori, dan input lainnya. Sistem Talkback dan klik-untuk-info didesain ulang agar menggunakan fokus aksesibilitas untuk penggunaan yang lebih mudah dan menawarkan rangkaian API yang lengkap bagi para developer.

Layanan aksesibilitas dapat menghubungkan tutorial miliknya sendiri ke setelan Aksesibilitas untuk membantu pengguna mengonfigurasi dan menggunakan layanan mereka.

Aplikasi yang menggunakan komponen Tampilan standar mewarisi dukungan untuk fitur aksesibilitas yang baru secara otomatis tanpa ada perubahan pada kodenya. Aplikasi yang menggunakan Tampilan kustom dapat menggunakan API node aksesibilitas baru untuk menunjukkan bagian Tampilan yang terkait dengan layanan aksesibilitas.

Dukungan untuk Pengguna Internasional

Dukungan Teks Dua Arah dan Bahasa Lainnya

Android 4.1 membantu Anda menjangkau lebih banyak pengguna melalui dukungan untuk teks dua arah dalam elemen TextView dan EditText. Aplikasi dapat menampilkan teks atau menangani pengeditan teks dalam skrip kiri-ke-kanan atau kanan-ke-kiri. Aplikasi dapat menggunakan lokal bahasa Arab dan Ibrani baru serta font yang terkait.

Jenis dukungan bahasa baru lainnya meliputi:

  • Bahasa Indic tambahan: Kannada, Telugu, dan Malayalam
  • Karakter Emoji yang baru dari Unicode versi 6.0
  • Dukungan glyph yang lebih baik untuk pengguna bahasa Jepang (merender versi glyph spesifik bahasa Jepang saat bahasa sistem disetel ke bahasa Jepang)
  • Glyph bahasa Arab yang dioptimalkan untuk WebViews selain glyph bahasa Arab untuk TextViews
  • Dukungan Teks Vertikal di WebViews, termasuk glyph Teks Ruby dan Teks Vertikal lainnya
  • Tebal Sintetis kini tersedia untuk semua font yang tidak memiliki glyph tebal khusus

Peta tombol yang dapat diinstal oleh pengguna

Platform ini kini mendukung peta keyboard yang dapat diinstal oleh pengguna, seperti untuk keyboard internasional tambahan dan jenis tata letak khusus. Secara default, Android 4.1 menyertakan 27 peta tombol internasional untuk keyboard, termasuk Dvorak. Saat pengguna menyambungkan keyboard, mereka dapat membuka aplikasi Setelan dan memilih satu atau beberapa peta tombol yang ingin digunakan untuk keyboard tersebut. Saat mengetik, pengguna dapat beralih untuk menggunakan setiap peta tombol melalui pintasan (ctrl-spasi).

Anda dapat membuat aplikasi untuk memublikasikan peta tombol tambahan ke sistem. APK akan menyertakan resource tata letak keyboard tersebut ke dalamnya berdasarkan format peta tombol Android standar. Aplikasi dapat menawarkan tata letak keyboard tambahan kepada pengguna dengan menyatakan penerima siaran yang sesuai untuk ACTION_QUERY_KEYBOARD_LAYOUTS dalam manifesnya.

Cara Baru untuk Membuat UI yang menarik

Developer dapat membuat gaya notifikasi kustom seperti yang ditunjukkan dalam contoh di atas untuk menampilkan berbagai konten dan tindakan.

Notifikasi yang dapat diperluas

Notifikasi sudah menjadi fitur yang unik dan populer di Android sejak lama. Developer dapat menggunakannya untuk menyampaikan informasi penting atau informasi berbasis waktu kepada pengguna pada baris notifikasi di luar UI normal aplikasi.

Android 4.1 menghadirkan update yang signifikan pada framework notifikasi Android. Aplikasi kini dapat menampilkan notifikasi yang lebih besar dan lebih beragam kepada pengguna, yang juga dapat diperluas dan diciutkan dengan gerakan cubit atau geser. Notifikasi mendukung jenis konten baru, termasuk foto, memiliki prioritas yang dapat dikonfigurasi, bahkan dapat menyertakan beberapa tindakan.

Melalui builder notifikasi yang ditingkatkan, aplikasi dapat membuat notifikasi yang menggunakan area lebih luas hingga 256 dp. Tersedia tiga gaya notifikasi dengan template:

  • BigTextStyle — notifikasi yang menyertakan objek TextView dengan banyak garis.
  • BigInboxStyle — notifikasi yang menampilkan jenis daftar apa pun, seperti pesan, judul, dan sebagainya.
  • BigPictureStyle — notifikasi yang menampilkan konten visual seperti bitmap.

Selain gaya dengan templat, Anda dapat membuat gaya notifikasi sendiri menggunakan Tampilan jarak jauh apa pun.

Aplikasi dapat menambahkan hingga tiga tindakan ke notifikasi, yang akan ditampilkan di bawah konten notifikasi. Tindakan ini memungkinkan pengguna merespons informasi dalam notifikasi dengan cara alternatif secara langsung, seperti melalui email atau panggilan telepon tanpa harus membuka aplikasi.

Dengan notifikasi yang dapat diperluas, aplikasi dapat memberikan lebih banyak informasi kepada pengguna dengan mudah dan sesuai permintaan. Pengguna tetap dapat mengontrol dan menekan lama setiap notifikasi untuk mendapatkan informasi tentang pengirim, dan jika perlu, menonaktifkan notifikasi lebih lanjut dari aplikasi.

Ukuran Widget Aplikasi dapat berubah secara otomatis menyesuaikan layar utama dan dapat memuat konten lain saat ukurannya berubah.

Widget aplikasi yang ukurannya dapat disesuaikan

Android 4.1 memperkenalkan Widget Aplikasi yang ditingkatkan dan dapat berubah ukuran secara otomatis sesuai tempat pengguna meletakannya di layar utama, ukuran yang dipilih pengguna untuk memperluasnya, dan ruang yang tersedia di layar utama. API Widget Aplikasi baru memungkinkan Anda memanfaatkan kemampuan ini untuk mengoptimalkan konten widget aplikasi dengan ukuran widget yang berubah.

Saat widget berubah ukuran, sistem akan memberi tahu penyedia widget milik aplikasi host yang dapat memuat ulang konten dalam widget sesuai kebutuhan. Sebagai contoh, widget dapat menampilkan grafis yang lebih besar dan lebih kaya, atau fungsionalitas maupun opsi lainnya. Developer masih dapat mengontrol ukuran maksimum dan minimumnya, serta dapat memperbarui opsi widget lainnya kapan saja jika diperlukan.

Anda juga dapat menyediakan tata letak lanskap dan potret yang terpisah untuk widget, yang dapat diperluas oleh sistem dengan cara yang sesuai ketika orientasi layar berubah.

Widget aplikasi kini dapat ditampilkan di peluncur pihak ketiga dan aplikasi host lainnya melalui Intent binding baru (AppWidgetManager.ACTION_APPWIDGET_BIND).

Navigasi tugas yang disederhanakan

Android 4.1 memudahkan Anda mengelola navigasi "Naik" yang tersedia untuk pengguna dari dalam aplikasi dan membantu memastikan pengalaman yang konsisten bagi pengguna.

Anda dapat menentukan navigasi Naik yang diinginkan untuk setiap komponen Aktivitas UI dengan menambahkan atribut XML baru dalam file manifes aplikasi. Pada waktu proses, ketika Aktivitas diluncurkan, sistem akan mengekstrak pohon navigasi Naik dari file manifes, lalu membuat navigasi keterjangkauan Naik secara otomatis di bilah tindakan. Developer yang menyatakan navigasi Naik dalam manifes tidak perlu lagi mengelola navigasi dengan callback pada waktu proses meskipun mereka juga dapat melakukannya jika perlu.

TaskStackBuilder baru kini juga tersedia, sehingga memungkinkan Anda menyatukan stack tugas sintetis dengan cepat agar dimulai secara langsung atau digunakan saat suatu Aktivitas diluncurkan dari PendingIntent. Membuat stack tugas sintetis akan sangat berguna ketika pengguna meluncurkan Aktivitas dari tampilan jarak jauh, seperti dari widget Layar utama dan notifikasi, karena memungkinkan developer memberikan pengalaman yang terkelola dan konsisten pada navigasi Kembali.

Animasi yang mudah untuk peluncuran Aktivitas

Anda dapat menggunakan class bantuan baru, ActivityOptions, untuk membuat dan mengontrol animasi yang ditampilkan saat meluncurkan Aktivitas. Melalui class bantuan, Anda dapat menentukan resource animasi kustom yang akan digunakan saat aktivitas diluncurkan, atau meminta animasi zoom baru yang dimulai dari persegi panjang apa pun yang ditentukan di layar dan yang secara opsional menyertakan bitmap thumbnail.

Transisi ke Mode Lampu Mati dan Layar Penuh

Tanda UI sistem baru dalam Tampilan memungkinkan Anda beralih dengan mudah dari UI aplikasi normal (dengan bilah tindakan, menu navigasi, dan bilah sistem yang terlihat) ke "mode lampu mati" (dengan status bar dan bilah tindakan yang disembunyikan, dan menu navigasi yang diredupkan) atau "mode layar penuh" (dengan status bar, bilah tindakan, dan menu navigasi yang semuanya disembunyikan).

Jenis baru Tampilan yang dapat digunakan secara jarak jauh

Developer kini dapat menggunakan tampilan GridLayout dan ViewStub dalam widget dan notifikasi Layar utama. GridLayout memungkinkan Anda menyusun struktur konten tampilan jarak jauh dan mengelola penyelarasan tampilan turunan dengan hierarki UI yang lebih pendek. ViewStub adalah Tampilan tidak terlihat berukuran nol yang dapat digunakan untuk memperluas resource tata letak sesuai keinginan pada waktu proses.

Pratinjau wallpaper animasi

Android 4.1 memudahkan pengguna untuk menemukan dan menginstal Wallpaper Animasi dari aplikasi yang menyertakannya. Jika aplikasi Anda menyertakan Wallpaper Animasi, kini Anda dapat memulai Aktivitas (ACTION_CHANGE_LIVE_WALLPAPER) yang menampilkan pratinjau Wallpaper Animasi dari aplikasi Anda sendiri kepada pengguna. Dari pratinjau, pengguna dapat memuat Wallpaper Animasi secara langsung.

Foto kontak dengan resolusi lebih tinggi

Dengan Android 4.1, Anda dapat menyimpan foto kontak berukuran 720 x 720 sehingga tampilan kontak menjadi lebih kaya dan personal. Aplikasi dapat menyimpan dan mengambil foto kontak dengan ukuran tersebut atau menggunakan ukuran lain yang diinginkan. Ukuran foto maksimum yang didukung di perangkat tertentu dapat bervariasi, sehingga aplikasi harus bertanya kepada penyedia kontak bawaan saat dijalankan untuk mendapatkan ukuran maksimum untuk perangkat saat ini.

Jenis dan Kemampuan Input Baru

Cari tahu tentang perangkat yang ditambahkan dan dihapus

Aplikasi dapat mendaftar agar diberi tahu saat ada perangkat input baru yang dipasang, baik melalui USB, Bluetooth, maupun jenis koneksi lainnya. Aplikasi dapat menggunakan informasi ini untuk mengubah status atau kemampuan sesuai kebutuhan. Sebagai contoh, game dapat menerima notifikasi bahwa terdapat pemasangan keyboard atau joystick baru yang menunjukkan adanya pemain baru.

Menanyakan kemampuan perangkat input

Android 4.1 menyertakan API yang memungkinkan aplikasi dan game memanfaatkan secara penuh semua perangkat input yang terhubung dan tersedia.

Aplikasi dapat meminta pengelola perangkat untuk menghitung semua perangkat input yang saat ini terpasang dan mempelajari kemampuannya masing-masing.

Mengontrol penggetar di perangkat input

Di antara kemampuan lainnya, aplikasi kini dapat menggunakan layanan penggetar apa pun yang terkait dengan perangkat input yang terpasang, seperti untuk pengontrol Rumble Pak.

Animasi dan Grafis

Vsync untuk aplikasi

Memperluas vsync di seluruh framework Android akan menghasilkan kecepatan frame yang lebih konsisten serta UI yang mulus dan stabil. Agar aplikasi juga dapat memanfaatkannya, Android 4.1 memperluas pengaturan waktu vsync ke semua gambar dan animasi yang dimulai oleh aplikasi. Hal ini memungkinkan aplikasi mengoptimalkan operasi pada UI thread dan menyediakan basis waktu yang stabil untuk sinkronisasi.

Aplikasi dapat memanfaatkan pengaturan waktu vsync dengan bebas melalui framework animasi Android. Framework animasi ini kini menggunakan pengaturan waktu vsync untuk menangani sinkronisasi antar animator secara otomatis.

Untuk penggunaan khusus, aplikasi dapat mengakses pengaturan waktu vsync melalui API yang diperkenalkan oleh class Coreographer baru. Aplikasi dapat meminta pembatalan validasi pada frame vsync berikutnya; ini adalah cara yang baik untuk menjadwalkan animasi saat aplikasi tidak menggunakan framework animasi. Untuk penggunaan lebih lanjut, aplikasi dapat memposting callback yang akan dijalankan oleh class Coreographer pada frame berikutnya.

Jenis transisi dan tindakan animasi baru

Framework animasi kini memungkinkan Anda menentukan tindakan mulai dan selesai yang ingin dilakukan ketika menjalankan animasi ViewPropertyAnimator untuk membantu menyinkronkannya dengan animasi atau tindakan lain dalam aplikasi. Tindakan ini dapat menjalankan semua objek yang dapat dijalankan. Sebagai contoh, tindakan mungkin menentukan animasi lain yang akan dimulai ketika animasi sebelumnya selesai.

Anda kini juga dapat menentukan agar ViewPropertyAnimator menggunakan lapisan pada saat animasinya berjalan. Sebelumnya, cara yang paling direkomendasikan adalah menganimasikan tampilan yang rumit dengan menyetel lapisan sebelum memulai animasi, lalu menangani event onAnimationEnd() untuk menghapus lapisan tersebut ketika animasi selesai. Sekarang, metode withLayer() pada ViewPropertyAnimator menyederhanakan proses ini dengan satu panggilan metode.

Jenis transisi baru dalam LayoutTransition memungkinkan Anda mengotomatiskan animasi sebagai respons terhadap semua perubahan tata letak dalam ViewGroup.

Jenis Konektivitas Baru

Android Beam

Android Beam adalah teknologi populer berbasis NFC yang memungkinkan pengguna berbagi secara langsung hanya dengan menempelkan dua ponsel yang mendukung NFC.

Di Android 4.1, Android Beam mempermudah proses berbagi gambar, video, atau payload lainnya dengan memanfaatkan Bluetooth untuk transfer data. Ketika pengguna memicu proses transfer, Android Beam akan beralih dari NFC ke Bluetooth sehingga akan sangat memudahkan proses pengelolaan transfer file dari satu perangkat ke perangkat lainnya.

Penemuan Layanan Jaringan Wi-Fi

Android 4.1 memperkenalkan dukungan untuk penemuan layanan berbasis DNS multicast, yang memungkinkan aplikasi menemukan dan terhubung ke layanan yang ditawarkan oleh perangkat peer melalui jaringan Wi-Fi, termasuk perangkat seluler, printer, kamera, media player, dan lainnya. Developer dapat memanfaatkan fitur penemuan layanan jaringan Wi-Fi untuk membuat game lintas-platform atau multiplayer serta pengalaman aplikasi.

Dengan API penemuan layanan, aplikasi dapat membuat dan mengenali semua jenis layanan agar dapat ditemukan oleh perangkat lain yang memiliki kemampuan NSD. Layanan ini didukung oleh multicast di seluruh jaringan menggunakan ID string yang dapat dibaca manusia, sehingga memudahkan pengguna untuk mengidentifikasi jenis layanan.

Perangkat konsumen dapat menggunakan API ini untuk memindai dan menemukan layanan yang tersedia dari perangkat yang terhubung ke jaringan Wi-Fi lokal. Setelah ditemukan, aplikasi dapat menggunakan API untuk me-resolve layanan ke alamat IP dan port yang dapat digunakannya untuk membuat koneksi soket.

Anda dapat memanfaatkan API ini untuk membuat fitur baru ke dalam aplikasi Anda. Sebagai contoh, Anda dapat mengizinkan pengguna untuk terhubung ke webcam, printer, atau aplikasi di perangkat seluler lain yang mendukung koneksi peer-to-peer Wi-Fi.

Penemuan Layanan P2P Wi-Fi

Ice Cream Sandwich memperkenalkan dukungan untuk Wi-Fi Peer-to-Peer (P2P), yaitu teknologi yang memungkinkan aplikasi menemukan dan tersambung secara langsung melalui koneksi peer-to-peer bandwidth tinggi (sesuai dengan program sertifikasi Wi-Fi DirectTM Aliansi Wi-Fi). P2P Wi-Fi adalah cara yang ideal untuk berbagi media, foto, file, serta jenis data dan sesi lainnya, bahkan saat tidak ada jaringan seluler atau Wi-Fi yang tersedia.

Android 4.1 mengembangkan kemampuan Wi-Fi P2P lebih lanjut, yang menambahkan dukungan API untuk penemuan layanan yang telah dikaitkan. Penemuan layanan yang telah dikaitkan memungkinkan aplikasi Anda mendapatkan informasi yang lebih bermanfaat dari perangkat di sekitarnya tentang layanan yang didukung oleh perangkat-perangkat tersebut sebelum mencoba untuk terhubung. Aplikasi dapat memulai penemuan untuk layanan spesifik dan memfilter daftar perangkat yang ditemukan menjadi perangkat yang benar-benar mendukung layanan atau aplikasi target.

Sebagai contoh, ini berarti bahwa aplikasi Anda hanya dapat menemukan perangkat yang berupa "printer" atau yang memiliki game tertentu, bukan menemukan semua perangkat Wi-Fi P2P yang berada di dekatnya. Di sisi lain, aplikasi Anda dapat mendukung layanan yang disediakannya ke perangkat lain, yang dapat menemukannya lalu melakukan negosiasi koneksi. Hal ini sangat memudahkan penemuan dan penyambungan bagi pengguna dan memungkinkan aplikasi memanfaatkan Wi-Fi P2P secara lebih efektif.

Dengan penemuan layanan P2P Wi-Fi, Anda dapat membuat aplikasi dan game multiplayer yang dapat berbagi foto, video, gameplay, skor, atau banyak lagi lainnya tanpa memerlukan internet atau jaringan seluler. Pengguna dapat terhubung cukup dengan koneksi p2p langsung, yang akan menghindari penggunaan bandwidth seluler.

Pengelolaan Bandwidth Jaringan

Android 4.1 membantu aplikasi mengelola penggunaan data dengan tepat ketika perangkat terhubung ke jaringan berbayar, termasuk tethering ke hotspot seluler. Aplikasi dapat bertanya apakah jaringan termasuk berbayar sebelum memulai download besar yang dapat membebankan biaya relatif mahal bagi pengguna. Melalui API ini, Anda kini bisa mendapatkan gambaran yang jelas tentang jaringan mana yang sensitif terhadap penggunaan data dan mengelola aktivitas jaringan Anda sesuai gambaran tersebut.

Kemampuan Media Baru

Akses codec media

Android 4.1 menyediakan akses level rendah ke codec software dan codec hardware platform. Aplikasi dapat meminta sistem untuk menemukan codec media level rendah yang tersedia di perangkat lalu menggunakannya sesuai kebutuhan. Sebagai contoh, Anda kini dapat membuat beberapa instance codec media, buffer input antrean, dan menerima buffer output sebagai gantinya. Selain itu, framework codec media juga mendukung konten yang dilindungi. Aplikasi dapat meminta codec yang tersedia yang dapat memutar konten dilindungi dengan solusi DRM yang tersedia di perangkat.

Audio USB

Dukungan output audio USB memungkinkan vendor hardware membuat hardware seperti dok audio yang dapat berinteraksi dengan perangkat Android. Fungsi ini juga diperkenalkan dengan Kit Pengembangan Aksesori (ADK) Terbuka Android agar semua developer dapat membuat hardware mereka sendiri.

Pemicu rekaman audio

Android kini memungkinkan Anda memicu perekaman audio berdasarkan selesainya trek pemutaran audio. Hal ini akan berguna pada situasi seperti pemutaran nada untuk mengisyaratkan pengguna agar mulai berbicara saat merekam suara mereka, misalnya. Fitur ini membantu Anda menyinkronkan perekaman sehingga audio yang sedang diputar tidak direkam dan mencegah agar perekaman tidak terlambat dimulai.

Audio multichannel

Android 4.1 mendukung audio multichannel di perangkat yang memiliki output audio multichannel dalam bentuk hardware melalui port HDMI. Audio multichannel memungkinkan Anda memberikan pengalaman multimedia kepada pengguna untuk aplikasi seperti game, aplikasi musik, dan pemutar video. Untuk perangkat yang tidak memiliki hardware yang didukung, Android secara otomatis melakukan downmix audio ke jumlah channel yang didukung oleh perangkat (biasanya stereo).

Android 4.1 juga menambahkan dukungan bawaan untuk mengenkode/mendekode audio AAC 5.1.

Pra-pemrosesan audio

Developer dapat menerapkan efek pra-pemrosesan pada audio yang sedang direkam, seperti menerapkan peredam bising untuk meningkatkan kualitas perekaman ucapan, pengurang gema untuk gema akustik, dan kontrol penguatan otomatis untuk audio dengan level volume yang tidak konsisten. Aplikasi yang memerlukan perekaman audio yang jernih dan berkualitas tinggi akan terbantu oleh pra-pemroses ini.

Perangkaian audio

MediaPlayer mendukung perangkaian streaming audio untuk memutar file audio tanpa jeda. Hal ini berguna untuk aplikasi yang memerlukan transisi tanpa jeda di antara file audio, seperti pemutar musik untuk memutar album berisi trek atau game berkelanjutan.

Router Media

API baru MediaRouter, MediaRouteActionProvider, dan MediaRouteButton menyediakan UI dan mekanisme standar untuk memilih tempat memainkan media. Dukungan sudah disediakan secara default untuk headset berkabel serta speaker dan headset bluetooth a2dp, dan Anda dapat menambahkan opsi perutean sendiri dalam aplikasi.

Komputasi Renderscript

Android 4.1 mengembangkan komputasi Renderscript untuk memberikan fleksibilitas yang lebih tinggi. Anda kini dapat mengambil sampel tekstur dalam skrip komputasi Renderscript, dan pragma baru tersedia untuk menentukan ketepatan titik floating yang diperlukan oleh skrip. Hal ini memungkinkan Anda mengaktifkan instruksi neon seperti operasi matematika vektor cepat di jalur CPU, yang sebelumnya tidak mungkin dilakukan dengan standar IEEE 754-2008 penuh.

Anda kini dapat men-debug skrip komputasi Renderscript pada perangkat hardware dan emulator berbasis x86. Anda juga dapat menentukan beberapa kernel bergaya root dalam satu file sumber Renderscript.

Browser Android dan WebView

Di Android 4.1, Browser Android dan WebViews menyertakan penyempurnaan berikut:

  • Pengalaman pengguna video HTML5 yang lebih baik, termasuk sentuh untuk memainkan/menjeda dan transisi yang lancar dari mode inline ke layar penuh.
  • Kecepatan rendering yang ditingkatkan dan penggunaan memori yang lebih rendah untuk performa scroll dan zoom yang lebih baik.
  • Peningkatan performa animasi HTML5/CSS3/Canvas.
  • Peningkatan input teks.
  • JavaScript Engine (V8) yang diupdate untuk performa JavaScript yang lebih baik.
  • Dukungan untuk spesifikasi HTML5 Media Capture yang diupdate (atribut “capture” pada elemen input type=file).

Google API dan layanan

Untuk semakin mengembangkan kemampuan Android, beberapa layanan baru untuk Android kini tersedia.

Google Cloud Messaging untuk Android

Google Cloud Messaging (GCM) adalah layanan yang memungkinkan developer mengirim data pesan singkat ke penggunanya di perangkat Android tanpa memerlukan solusi sinkronisasi dengan kepemilikan.

GCM menangani semua detail pengantrean pesan dan pengirimannya secara efisien ke perangkat Android yang ditargetkan. Fitur ini mendukung multicasting pesan dan dapat menjangkau hingga 1.000 perangkat terhubung secara bersamaan dengan satu permintaan. Fitur ini juga mendukung payload pesan, yang artinya selain mengirim pesan tickle ke aplikasi di perangkat, developer dapat mengirim data hingga 4K.

Google Cloud Messaging sepenuhnya gratis untuk semua developer dengan pendaftaran yang mudah. Lihat halaman Google Cloud Messaging untuk pendaftaran, download, dan dokumentasi.

Enkripsi Aplikasi

Dimulai dari Android 4.1, Google Play akan membantu melindungi aset aplikasi dengan mengenkripsi semua aplikasi berbayar menggunakan kunci spesifik perangkat sebelum dikirimkan dan disimpan di perangkat.

Update Aplikasi Smart

Update aplikasi smart adalah fitur baru Google Play yang memperkenalkan cara yang lebih baik untuk menyediakan update aplikasi pada perangkat. Ketika developer memublikasikan update, kini Google Play hanya akan mengirimkan bit yang telah berubah ke perangkat, bukan seluruh APK. Hal ini membuat pembaruan jauh lebih ringan dalam kebanyakan kasus, sehingga lebih cepat diunduh, menghemat baterai perangkat, dan menghemat penggunaan bandwidth pada paket data seluler pengguna. Rata-rata, update aplikasi smart berukuran sekitar 1/3 ukuran update APK penuh.

Layanan Google Play

Layanan Google Play membantu developer mengintegrasikan layanan Google seperti autentikasi ke dalam aplikasi mereka yang dikirimkan melalui Google Play.

Layanan Google Play secara otomatis disediakan ke perangkat pengguna akhir oleh Google Play sehingga Anda hanya membutuhkan library thin client dalam aplikasi Anda.

Karena aplikasi hanya berisi library klien berukuran kecil, Anda dapat memanfaatkan layanan ini tanpa adanya peningkatan besar dalam ukuran download dan jejak penyimpanan. Selain itu, Google Play juga akan menyediakan update rutin pada layanan ini tanpa mengharuskan developer memublikasikan update aplikasi untuk memanfaatkannya.

Untuk informasi selengkapnya tentang API yang disertakan dalam Layanan Google Play, lihat halaman developer layanan Google Play.