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 mempercepat performa Android.

Untuk peningkatan performa grafis, perender 2D yang dipercepat hardware kini mengoptimalkan streaming perintah menggambar, mengubahnya menjadi format GPU yang lebih efisien dengan mengatur ulang dan menggabungkan operasi menggambar. Untuk pemrosesan multithread, 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 bersudut tumpul kini dirender dengan kualitas yang lebih tinggi secara lebih efisien. Pengoptimalan untuk teks mencakup peningkatan performa saat menggunakan beberapa font atau kumpulan glyph yang kompleks (CJK), kualitas rendering yang lebih tinggi saat menskalakan teks, dan rendering drop shadow yang lebih cepat.

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

Untuk grafis berperforma tertinggi, Android 4.3 memperkenalkan dukungan untuk OpenGL ES 3.0 dan membuatnya dapat diakses oleh aplikasi melalui API native dan framework. Di perangkat yang didukung, mesin rendering 2D dengan akselerasi hardware memanfaatkan OpenGL ES 3.0 untuk mengoptimalkan pengelolaan tekstur dan meningkatkan fidelitas 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 dengan performa tertinggi untuk game dan aplikasi lainnya pada perangkat yang didukung. Anda dapat memanfaatkan OpenGL ES 3.0 dan ekstensi EGL 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 lanjutan, 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 format buffer render dan ukuran tekstur standar.

Anda dapat menggunakan OpenGL ES 3.0 API untuk membuat grafis yang sangat kompleks dan sangat efisien yang berjalan di berbagai perangkat Android yang kompatibel, serta dapat mendukung format kompresi tekstur standar tunggal di 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 versi 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 sebagai fitur utama dan menyediakan serangkaian API standar yang dapat digunakan aplikasi untuk menemukan perangkat di sekitar, meminta layanan GATT, dan membaca/menulis karakteristik.

Dengan API baru, aplikasi Anda dapat secara efisien memindai perangkat dan layanan yang diinginkan. Untuk setiap perangkat, Anda dapat memeriksa layanan GATT yang didukung menurut UUID dan mengelola koneksi menurut 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 mengirimkan serta menerima data dalam salah satu mode tersebut. API bersifat generik sehingga Anda dapat mendukung interaksi dengan berbagai perangkat seperti tag kedekatan, smartwatch, pengukur kebugaran, pengontrol game, remote kontrol, perangkat kesehatan, dan banyak lagi.

Dukungan untuk Bluetooth Smart Ready sudah tersedia di perangkat Nexus 7 (2013) dan Nexus 4 dan akan didukung di lebih 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 kaya dengan perangkat media streaming jarak jauh. Aplikasi seperti media player dapat memanfaatkan AVRCP 1.3 melalui API klien remote kontrol yang diperkenalkan di Android 4.0. Selain menampilkan 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 dikembangkan dari stack Bluetooth Bluedroid yang diperkenalkan oleh Google dan Broadcom di Android 4.2. Dukungan tersedia secara langsung 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, 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 terperinci dalam aplikasi yang tersedia di lingkungan tersebut. Profil yang dibatasi cocok untuk teman dan keluarga, pengguna tamu, kios, perangkat di tempat penjualan, dan banyak lagi.

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

Aplikasi yang memerlukan akses ke akun pemilik, baik untuk login, preferensi, maupun penggunaan lainnya dapat didaftarkan dengan menyatakan atribut manifes, dan pemilik dapat meninjau serta mengelola aplikasi tersebut dari setelan konfigurasi profil.

Bagi developer, profil yang dibatasi menawarkan cara baru untuk memberikan manfaat dan kontrol yang lebih luas kepada pengguna. Anda dapat menerapkan batasan aplikasi — kontrol konten atau kemampuan yang didukung oleh aplikasi Anda — dan mengiklankannya kepada pemilik tablet di setelan konfigurasi profil.

Anda dapat menambahkan batasan aplikasi secara langsung ke setelan konfigurasi profil menggunakan jenis boolean, pilihan, dan multipilihan yang telah ditentukan. Jika ingin lebih fleksibel, Anda bahkan dapat meluncurkan UI milik sendiri dari setelan konfigurasi profil untuk menawarkan segala jenis batasan yang diinginkan.

Saat berjalan di sebuah profil, aplikasi dapat memeriksa setiap batasan yang dikonfigurasi oleh pemilik dan memberlakukannya dengan tepat. Misalnya, aplikasi media mungkin menawarkan batasan untuk memungkinkan pemilik menyetel level kedewasaan bagi profil. Pada waktu proses, aplikasi dapat memeriksa setelan kedewasaan tersebut lalu mengelola konten sesuai level kedewasaan yang dipilih.

Jika aplikasi tidak didesain untuk digunakan dalam profil yang dibatasi, Anda dapat memilih untuk tidak menggunakannya sama sekali sehingga aplikasi tidak dapat diaktifkan dalam 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. Di perangkat yang mendukung pembatasan wilayah hardware, API batasan wilayah layanan Google Play dapat memanfaatkan pengoptimalan ini untuk menghemat baterai saat perangkat bergerak.

Mode hanya pemindaian Wi-Fi adalah pengoptimalan platform baru yang memungkinkan pengguna terus menjalankan pemindaian 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 mengaktifkan mode hanya pemindaian dari setelan lanjutan Wi-Fi. Mode hanya 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 merasakan rotasi perangkat tanpa perlu mengkhawatirkan gangguan magnetik. Sensor giroskop dan magnetometer yang tidak dikalibrasi melaporkan pengukuran mentah serta perkiraan bias pada aplikasi.

Kemampuan hardware baru tersebut sudah tersedia di perangkat Nexus 7 (2013) dan Nexus 4, dan setiap produsen perangkat atau vendor chipset dapat mem-build ke 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 ke dalam protokol streaming mereka sendiri dengan lebih mudah, 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. API MediaExtractor 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 yang dienkripsi dari library konten.

Encoder VP8

Android 4.3 memperkenalkan dukungan bawaan untuk encoding VP8, yang dapat diakses dari API framework dan native. Untuk aplikasi yang menggunakan API native, platform ini menyertakan header ekstensi OpenMAX 1.1.2 untuk mendukung level dan profil VP8. Dukungan encoding VP8 mencakup setelan untuk bitrate target, kontrol frekuensi, frekuensi gambar, partisi token, ketahanan terhadap error, rekonstruksi, dan filter loop. API platform ini memperkenalkan dukungan encoder VP8 dalam berbagai format, sehingga Anda dapat memanfaatkan format yang paling baik 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 yang dipercepat hardware di perangkat yang kompatibel.

Encoding video dari permukaan

Mulai Android 4.3, Anda dapat menggunakan platform sebagai input ke encoder video. Misalnya, Anda kini dapat mengarahkan streaming dari platform OpenGL ES ke encoder, tanpa perlu menyalin di antara 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 merupakan kebalikan dari API demuxing media yang diperkenalkan di Android 4.2.

Progres dan scrubbing pemutaran di klien remote control

Sejak Android 4.0, media player dan aplikasi serupa sudah dapat menawarkan kontrol pemutaran dari klien remote kontrol seperti layar kunci perangkat, notifikasi, dan perangkat jarak jauh yang terhubung melalui Bluetooth. Mulai dari 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 populer Android sejak lama karena memungkinkan pengguna melihat informasi dan update baru dari seluruh sistem 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 menyatakan 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 posting, tampilan dan gaya konten, serta prioritasnya. Anda dapat mengevaluasi kolom minat dalam notifikasi, memproses atau menambahkan konteks dari aplikasi, dan merutekannya untuk ditampilkan dengan cara yang sesuai dengan keinginan Anda.

API baru ini memberi Anda callback ketika 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 pada notifikasi.

Pengguna tetap memegang kontrol atas aplikasi yang dapat menerima notifikasi. Mereka dapat melihat aplikasi mana yang memiliki akses notifikasi dan 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 di atas View dan ViewGroups untuk merender hierarki View sementara atau efek animasi sementara tanpa mengganggu hierarki tata letak yang mendasarinya. Overlay berguna terutama 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 di dalam ViewGroups sesuai dengan batas optik, bukan batas klipnya. Batas klip merepresentasikan batas luar widget sebenarnya, sedangkan batas optis yang baru mendeskripsikan letak widget pada tampilan, dalam batas klip. Anda dapat menggunakan mode tata letak batas optik untuk menyelaraskan widget yang menggunakan efek visual luar seperti bayangan dan glow dengan benar.

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 jump-cut, cross-fade, atau standar rotasi jendela. Sistem menggunakan jenis animasi kustom saat jendela berada dalam mode layar penuh dan tidak tertutup oleh jendela lain.

Mode orientasi layar

Aplikasi dapat menyetel mode orientasi baru bagi Aktivitas guna memastikan orientasi yang sesuai untuknya 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 ketika Anda perlu 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 dikirimkan pengguna untuk merespons panggilan masuk, tanpa perlu mengangkat panggilan atau membuka kunci perangkat. Aplikasi Anda dapat memproses intent dan mengirim pesan kepada pemanggil melalui sistem pesan. Intent menyertakan penerima (penelepon) beserta 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. Ada lebih banyak informasi proses debug yang dapat dilihat melalui alat uiautomatorviewer. Selain itu, ada lebih banyak komponen UI sistem yang kini mengenali RTL, seperti notifikasi, menu navigasi, dan Panel Tindakan.

Untuk memberikan pengalaman skrip RTL yang lebih baik di seluruh sistem, ada lebih banyak aplikasi sistem default yang kini 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 lokalitas LTR dan sebaliknya. Agar Anda dapat menggunakan utilitas ini secara lebih luas dalam aplikasi, API BidiFormatter kini juga tersedia untuk versi platform yang lebih lama melalui Paket Dukungan di SDK Android.

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. Metode ini dapat menjadi cara yang mudah untuk memberikan pengalaman yang lebih dilokalkan bagi pengguna Anda.

Untuk memudahkan Anda menguji aplikasi dalam lokalitas lain, Android 4.3 memperkenalkan pseudo-lokal sebagai opsi developer baru. Pseudo-lokalitas menyimulasikan bahasa, skrip, dan karakteristik tampilan yang terkait dengan lokalitas atau grup bahasa. Saat ini, Anda dapat menguji dengan pseudo-lokalitas 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 memberikan paritas navigasi dengan input berbasis gestur. Layanan ini menerima peristiwa dan dapat memprosesnya sesuai kebutuhan sebelum diteruskan ke sistem atau aplikasi lain yang terinstal.

Layanan aksesibilitas dapat mendeklarasikan atribut kemampuan baru untuk mendeskripsikan kemampuan layanannya dan fitur platform apa yang digunakan. Misalnya, layanan 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 menyatakan 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 tersebut sebelum diluncurkan.

Dikembangkan dari framework aksesibilitas di Android 4.3, framework automasi UI baru memungkinkan pengujian berinteraksi dengan UI perangkat melalui simulasi tindakan pengguna dan peninjauan konten layar. Melalui framework automasi UI, Anda dapat melakukan operasi dasar, menyetel rotasi layar, menghasilkan peristiwa input, mengambil screenshot, dan banyak lagi. Cara ini cukup efektif untuk mengotomatiskan pengujian dalam skenario pengguna yang realistis, termasuk tindakan atau urutan yang menjangkau 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 (Phase 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 Phase 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

KeyChain API 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 dapat 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 dengan yang disediakan 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 dipasang nosuid untuk proses yang dibuat dari awal, sehingga mencegah aplikasi Android mengeksekusi program setuid. Hal ini akan mengurangi kemunculan 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 alat Systrace yang disempurnakan dan lebih mudah digunakan, serta memberi Anda akses ke lebih banyak jenis informasi untuk membuat profil performa aplikasi Anda. Kini, Anda dapat mengumpulkan data rekaman aktivitas dari modul hardware, fungsi kernel, Dalvik VM yang mencakup pembersihan sampah memori, pemuatan resource, dan banyak lagi.

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

Anda dapat memvisualisasikan peristiwa spesifik aplikasi pada linimasa dalam file output Systrace lalu menganalisis peristiwa tersebut dalam konteks data rekaman aktivitas ruang pengguna dan kernel lain. Bersama 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 di perangkat atau emulator apa pun.

Dalam opsi Rendering GPU profil, Anda kini dapat memvisualkan frekuensi gambar 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 menyorot ambang batas 16 milidetik untuk operasi rendering, sehingga Anda dapat menilai frekuensi gambar aplikasi yang efektif terhadap target 60 fps (karena 1/60 detik sama dengan sekitar 16 milidetik). Jika melihat operasi yang melewati garis hijau, Anda dapat menganalisisnya lebih lanjut menggunakan Systrace dan alat lainnya.

Di perangkat yang menjalankan Android 4.2 dan yang lebih tinggi, opsi developer disembunyikan secara default. Anda dapat memunculkannya kapan saja dengan mengetuk 7 kali pada 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 tersebut. Jika Anda mencari cara yang mudah untuk menyimpan dan menampilkan 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 — dan 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 cepat. Secara khusus, gambar dioptimalkan untuk lapisan, kliping, dan bentuk tertentu (persegi panjang bersudut tumpul, 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. Secara otomatis, platform ini memanfaatkan resource komputasi GPU jika memungkinkan, sehingga meningkatkan performa untuk pemrosesan gambar dan grafis secara signifikan. Aplikasi apa pun yang menggunakan Renderscript di perangkat yang didukung dapat langsung memanfaatkan 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 memiliki status bar di bagian atas, dengan akses pull-down ke notifikasi dan menu Setelan Cepat baru. Bilah sistem yang sudah dikenal akan muncul di bagian bawah, dengan tombol yang mudah diakses menggunakan salah satu tangan. Panel Aplikasi juga tersedia di semua ukuran layar.

Satu tablet, banyak pengguna

Sekarang beberapa pengguna dapat berbagi satu tablet Android, dengan setiap pengguna memiliki akses yang mudah ke ruang pengguna khusus. Pengguna dapat beralih ke ruangnya sendiri dengan satu sentuhan dari layar kunci.

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

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

Bagi developer, dukungan multipengguna bersifat transparan — aplikasi Anda tidak perlu melakukan hal khusus agar dapat berjalan secara normal di lingkungan multipengguna dan tidak ada perubahan yang perlu dilakukan dalam APK yang sudah ada atau dipublikasikan. Sistem akan mengelola aplikasi di setiap ruang pengguna seperti 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 langsung ke konten aplikasi favorit tanpa harus membuka kunci perangkat. Pengguna dapat menambahkan hingga lima widget layar kunci, dengan memilih dari widget yang disediakan oleh aplikasi yang terinstal. Layar kunci menampilkan setiap widget di panelnya sendiri, sehingga memungkinkan pengguna 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. Widget dapat sepenuhnya berfungsi sendiri, seperti widget yang menawarkan kontrol untuk memutar musik, atau memungkinkan pengguna melompat langsung ke Aktivitas di aplikasi Anda, setelah membuka kunci sesuai kebutuhan.

Bagi developer, widget layar kunci menawarkan cara baru yang hebat untuk menarik interaksi pengguna. Widget tersebut memungkinkan Anda menambahkan konten langsung bagi pengguna di lokasi yang sering mereka lihat, serta memberi Anda peluang lebih besar untuk langsung mengalihkan pengguna ke aplikasi Anda.

Anda dapat memanfaatkan kemampuan baru ini dengan membuat widget aplikasi baru atau dengan memperluas widget layar utama yang sudah 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 agar menggunakan area layar kunci penuh jika tersedia dan mengubah ukurannya di layar yang lebih kecil jika diperlukan. 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 saat perangkat pengguna diletakkan di dok atau diisi daya. Dalam mode ini, sistem meluncurkan daydream — 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 dengan widget layar utama, tetapi mode ini lebih canggih. Daydream memungkinkan Anda menawarkan segala jenis konten dalam konteks yang benar-benar baru, dengan interaksi pengguna seperti membolak-balik foto, memutar audio atau video, atau langsung membuka aplikasi dengan satu sentuhan.

Karena daydream dapat dimulai secara otomatis saat perangkat sedang diisi daya atau dipasang ke dok, mode ini juga memberikan cara yang hebat bagi aplikasi Anda untuk mendukung jenis pengalaman pengguna baru, seperti mode leanback atau exhibition, mode demo atau kios, serta mode "menarik perhatian", tanpa hardware khusus.

Mode screensaver Daydream

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

Daydreams mirip dengan Aktivitas dan dapat melakukan apa pun yang dapat dilakukan Aktivitas, mulai dari merender hierarki UI (tanpa menggunakan RemoteViews) hingga menggambar secara langsung menggunakan Canvas, OpenGL, SurfaceTexture, dan banyak lagi. Mode ini dapat memutar video dan audio, bahkan menerima interaksi pengguna langsung. Namun, daydream bukanlah Aktivitas sehingga tidak memengaruhi data sebelumnya atau muncul dalam Terbaru, serta tidak dapat diluncurkan secara langsung dari aplikasi.

Sangat mudah untuk mengimplementasikan daydream, dan Anda dapat memanfaatkan komponen dan resource UI yang sudah dibuat untuk bagian aplikasi lainnya. Anda dapat menyediakan beberapa daydream dalam aplikasi dan menawarkan konten serta setelan tampilan yang bervariasi untuk masing-masing darinya.

Dukungan tampilan eksternal

Android 4.2 memperkenalkan dukungan platform untuk tampilan eksternal yang jauh lebih canggih dari pencerminan; aplikasi kini dapat menargetkan konten unik ke salah satu atau beberapa tampilan yang terpasang ke perangkat Android. Aplikasi dapat memanfaatkannya untuk menyediakan pengalaman hiburan dan interaksi jenis baru kepada pengguna.

Pengelola tampilan

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

Jendela presentasi

Untuk memudahkan pengguna menampilkan konten pada tampilan eksternal, framework menyediakan objek UI baru yang disebut Presentasi, yaitu sejenis dialog yang merepresentasikan jendela untuk konten aplikasi Anda pada tampilan eksternal tertentu. Aplikasi Anda hanya memberikan tampilan yang ingin digunakan, tema untuk jendela, dan semua konten unik yang perlu ditampilkan. Presentasi menangani resource yang membesar dan merender konten Anda sesuai dengan karakteristik layar target.

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

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

Pemilihan tampilan pilihan

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

Untuk menemukan tampilan terbaik yang akan digunakan, aplikasi dapat meminta tampilan Presentasi pilihan di sistem kepada pengelola tampilan, lalu menerima callback saat tampilan tersebut 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 dalam Aktivitas utama hingga tampilan Presentasi pilihan dipasang, yang pada saat itu dapat beralih secara otomatis ke konten Presentasi pada tampilan yang dipilih. Aplikasi Anda juga dapat menggunakan MediaRouteActionProvider dan MediaRouteButton milik router media untuk menawarkan UI pemilihan tampilan standar.

Konten yang dilindungi

Untuk aplikasi yang menangani konten yang dilindungi atau dienkripsi, API tampilan kini melaporkan kemampuan video aman dari layar yang terpasang. Aplikasi akan bertanya pada tampilan untuk mencari tahu apakah tampilan menawarkan output video aman atau menyediakan buffer grafis yang dilindungi, lalu memilih streaming konten yang sesuai atau melakukan decoding agar konten dapat dilihat. Untuk keamanan tambahan pada objek SurfaceView, aplikasi Anda dapat menetapkan tanda 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 Miracast™). Saat layar nirkabel terhubung, pengguna dapat melakukan streaming segala jenis konten ke layar TV, termasuk foto, game, peta, dan lainnya.

Aplikasi dapat memanfaatkan layar nirkabel seperti dengan tampilan eksternal lainnya tanpa tindakan tambahan. Sistem akan mengelola koneksi jaringan dan melakukan streaming 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 konsisten dan canggih bagi semua pengguna, baik bahasa mereka menggunakan skrip yang dibaca dari kanan-ke-kiri atau kiri-ke-kanan.

Saat pengguna mengubah bahasa sistem ke skrip kanan-ke-kiri, sistem kini menyediakan pencerminan otomatis untuk tata letak UI dan semua widget tampilan aplikasi, selain dari pencerminan dua arah elemen teks untuk membaca dan input karakter.

Aplikasi Anda dapat memanfaatkan pencerminan tata letak RTL dalam aplikasi dengan sangat mudah. Jika ingin aplikasi dicerminkan, cukup nyatakan atribut baru dalam manifes aplikasi, lalu ubah semua properti tata letak "kiri/kanan" menjadi properti "mulai/selesai" baru yang setara. Sistem kemudian akan menangani pencerminan dan tampilan UI sebagaimana mestinya.

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

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

Penyempurnaan untuk bahasa internasional

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

  • Untuk pengguna bahasa Korea, tersedia pilihan font baru, yaitu Nanum (나눔글꼴) Gothic, font unicode yang didesain khusus untuk skrip berbahasa Korea.
  • Peningkatan dukungan untuk teks vertikal bahasa Jepang yang ditampilkan di WebViews.
  • Peningkatan kerning dan pemosisian font untuk font default bahasa India, Thai, Arab, dan Ibrani.

Keyboard Android default juga menyertakan kumpulan kamus yang diperbarui:

  • 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 ketat 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 memasukkan Fragmen lain sebagai node turunan dalam hierarki View.

Anda dapat menggunakan Fragmen bertingkat dalam berbagai cara, tetapi Fragmen tersebut akan sangat berguna untuk mengimplementasikan komponen UI yang dinamis dan dapat digunakan kembali 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 tersebut.

Agar Anda dapat memanfaatkan Fragmen bertingkat secara lebih luas dalam 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. Sistem kemudian 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 yang dilakukan pengguna. Jenis masukan aksesibilitas baru juga ditambahkan di Android 4.2 untuk perangkat Braille.

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

Kamera yang disempurnakan dengan HDR

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

Selain itu, framework ini juga menyediakan API untuk mengizinkan aplikasi memeriksa apakah suara shutter kamera dapat dinonaktifkan. Kemudian, aplikasi dapat mengizinkan pengguna untuk menonaktifkan suara atau memilih suara lainnya untuk menggantikan suara shutter standar, yang merupakan rekomendasi kami.

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 filterscript menyertakan serangkaian batasan yang tidak ketat pada hardware, operasi Anda 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, yaitu primitif pemfilteran yang dipercepat yang telah diimplementasikan untuk mengurangi jumlah kode yang perlu ditulis dan untuk memastikan aplikasi Anda mendapatkan peningkatan performa yang maksimum.

Intrinsik tersedia untuk peleburan, pemburaman, matriks warna, konvolusi 3x3 dan 5x5, tabel pemeta per-channel, dan pengubahan buffer YUV Android ke RGB.

Grup skrip

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

Bagan optimalisasi RenderScript

Benchmark pemrosesan gambar Renderscript yang dijalankan pada beberapa versi platform Android (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 ingin dijalankan, Anda dapat menggunakan class builder untuk membuat grup skrip yang mendefinisikan operasi. Pada waktu eksekusi, Renderscript mengoptimalkan urutan eksekusi dan koneksi antara operasi ini untuk mendapatkan performa terbaik.

Peningkatan pengoptimalan yang berkelanjutan

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

Seiring dengan meningkatnya pengoptimalan, operasi akan berjalan lebih cepat dan pada lebih banyak chipset, tanpa memerlukan tindakan apa pun dari Anda. 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 secara langsung pada GPU perangkat seluler. Sekarang, platform ini otomatis memanfaatkan resource komputasi GPU jika memungkinkan untuk meningkatkan performa. Dengan integrasi GPU, komputasi yang paling rumit untuk pemrosesan gambar atau grafik sekalipun dapat dijalankan dengan performa yang meningkat secara signifikan.

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 hebat dengan performa yang baik. Opsi baru ini menampilkan fitur untuk men-debug dan membuat profil aplikasi Anda dari perangkat atau emulator apa pun.

Di perangkat yang menjalankan Android 4.2, opsi developer disembunyikan secara default untuk membantu membuat pengalaman yang lebih baik bagi pengguna. Anda dapat memunculkan opsi developer kapan saja dengan mengetuk 7 kali pada Setelan > Tentang ponsel > Nomor versi 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 — mengambil screenshot secara langsung 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 terus memeriksa aplikasi dari sumber lain seperti browser. Hal ini dapat mempercepat proses pengembangan sekaligus memastikan fitur keamanan tetap diaktifkan.
  • Tampilkan update lapisan hardware — Membuat lapisan hardware berkedip hijau saat diupdate.
  • Tampilkan overdraw GPU — Menyoroti 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 pada 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 disempurnakan untuk mendukung kasus penggunaan komunikasi yang inovatif di berbagai perangkat hardware. Pada umumnya, teknologi dan peningkatan platform baru tidak secara langsung memengaruhi aplikasi Anda, sehingga Anda dapat memanfaatkannya 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 memungkinkan aplikasinya disaring oleh pemverifikasi aplikasi sebelum diinstal. Verifikasi aplikasi dapat memperingatkan pengguna jika mereka mencoba menginstal aplikasi yang mungkin berbahaya; jika aplikasi tidak layak, fitur ini dapat memblokir penginstalannya.
  • Kontrol yang lebih ketat 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 memiliki akses ke jaringan hingga koneksi VPN dibuat. Tindakan ini mencegah aplikasi mengirimkan data melalui jaringan lain.
  • Penyematan Sertifikat — Implementasi SSL libcore kini mendukung penyematan sertifikat. Domain yang disematkan akan mendapatkan kegagalan validasi sertifikat jika sertifikat tidak terhubung ke rangkaian sertifikat yang diharapkan. Hal ini melindungi dari kemungkinan penyusupan Certificate Authorities.
  • 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 tersebut.
  • installd hardening — Daemon installd tidak berjalan sebagai pengguna root, sehingga mengurangi potensi kemunculan serangan untuk eskalasi hak istimewa root.
  • init script hardening — Skrip init kini menerapkan semantik O_NOFOLLOW untuk mencegah serangan terkait symlink.
  • FORTIFY_SOURCE — Android kini mengimplementasikan FORTIFY_SOURCE. Ini 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 kemunculan 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 yang mencakup WebKit, libpng, OpenSSL, dan LibXML. Android 4.2 juga menyertakan perbaikan untuk kerentanan khusus Android. Informasi tentang kerentanan ini telah diberikan kepada pelanggan 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 bersama oleh Google dan Broadcom menggantikan stack yang didasarkan pada 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 dilakukan dalam rilis Android 4.1 untuk latensi output audio menggunakan OpenSL ES, Soundpool, dan API generator nada. Peningkatan ini bergantung pada dukungan hardware — perangkat yang menawarkan fitur audio latensi rendah ini dapat mengumumkan dukungannya ke aplikasi melalui konstanta fitur hardware. API AudioManager baru disediakan untuk meminta ukuran buffer dan frekuensi sampel audio native, untuk digunakan di perangkat yang memiliki 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 bersama oleh Google dan Broadcom mendukungnya.

Pengoptimalan waktu proses Dalvik

Runtime Dalvik menyertakan peningkatan performa dan keamanan di seluruh arsitektur yang lebih luas:

  • 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 kini 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 platformnya dan menambahkan fitur baru yang hebat untuk 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 yang muncul.

Rangkaian fitur dapat membantu Anda mendapatkan performa terbaik aplikasi yang sebenarnya. Android 4.1 didesain untuk bekerja dengan fitur baru yang disebut systrace, yang mengumpulkan data secara 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 SDK Android (Fitur 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 template, 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 pengikat 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 menunjukkan pratinjau Wallpaper Animasi dari aplikasi Anda sendiri kepada pengguna. Dari pratinjau ini, 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 mungkin berbeda-beda sehingga aplikasi harus bertanyaa pada penyedia kontak bawaan saat waktu proses untuk mendapatkan ukuran maksimum bagi perangkat yang sedang digunakan.

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

Dengan memperluas vsync ke seluruh framework Android, Anda akan mendapatkan frekuensi gambar yang lebih konsisten serta UI yang lancar 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 menyambungkan secara langsung, melalui koneksi peer-to-peer bandwidth tinggi (sesuai dengan program sertifikasi Wi-Fi Direct™ Wi-Fi Alliance). 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 hardwarenya 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. Layanan ini mendukung fitur multicast pesan dan dapat mencapai hingga 1.000 perangkat yang terhubung secara bersamaan dengan satu permintaan. Layanan ini juga mendukung payload pesan, yang berarti selain mengirim pesan tickle ke aplikasi di perangkat, developer juga dapat mengirim hingga 4K data.

Google Cloud Messaging sepenuhnya gratis untuk semua developer dengan pendaftaran yang mudah. Lihat halaman Google Cloud Messaging untuk registrasi, 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. Saat developer memublikasikan update, Google Play kini hanya mengirimkan bit yang telah berubah ke perangkat, bukan seluruh APK. Hal ini membuat update menjadi jauh lebih ringan dalam sebagian besar kasus, sehingga lebih cepat didownload, 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.