Android 4.3
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 yang baru untuk developer.
Lihat dokumen API Android 4.3 untuk mengetahui 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 dibuat berdasarkan peningkatan performa yang sudah disertakan dalam Jelly Bean — pengaturan waktu vsync, buffering tiga kali, latensi sentuh yang lebih rendah, peningkatan input CPU, dan rendering 2D yang dipercepat hardware — serta menambahkan pengoptimalan baru yang membuat Android semakin cepat.
Untuk meningkatkan performa grafis, perender 2D dengan akselerasi hardware kini mengoptimalkan streaming perintah menggambar, mengubahnya menjadi format GPU yang lebih efisien dengan mengatur ulang dan menggabungkan operasi gambar. 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 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 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 di 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 ukuran tekstur standar dan format buffer render.
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 semua 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.
![](https://developer.android.google.cn/static/images/jb-btle.png?authuser=19&hl=id)
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 utama dan menyediakan sekumpulan API standar yang dapat digunakan aplikasi untuk menemukan perangkat di sekitar, membuat kueri untuk 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 mengirimkan serta menerima data dalam kedua mode tersebut. API ini bersifat generik 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 kaya dengan perangkat media streaming jarak jauh. Aplikasi seperti media player dapat memanfaatkan AVRCP 1.3 melalui API klien remote control 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 dibangun di 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](https://developer.android.google.cn/static/images/jb-profiles-create-n713.png?authuser=19&hl=id)
Pemilik tablet dapat menyetel satu atau beberapa profil yang dibatasi dalam Setelan dan mengelolanya secara terpisah.
![Menyetel Batasan dalam Profil](https://developer.android.google.cn/static/images/jb-profiles-restrictions-n713.png?authuser=19&hl=id)
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 mendetail dalam aplikasi yang tersedia di lingkungan tersebut. Profil yang dibatasi cocok untuk teman dan keluarga, pengguna tamu, kios, perangkat 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 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 untuk ikut serta dengan mendeklarasikan atribut manifes, dan pemiliknya dapat meninjau serta mengelola aplikasi tersebut dari setelan konfigurasi profil.
Bagi developer, profil yang dibatasi menawarkan cara baru untuk memberikan lebih banyak nilai dan kontrol kepada pengguna. Anda dapat mengimplementasikan batasan 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 Anda inginkan.
Saat berjalan di sebuah profil, aplikasi Anda dapat memeriksa batasan yang dikonfigurasi oleh pemilik dan menerapkannya dengan tepat. Misalnya, aplikasi media mungkin menawarkan batasan agar pemilik dapat menyetel tingkat kedewasaan profil. Pada waktu proses, aplikasi dapat memeriksa setelan kematangan, lalu mengelola konten sesuai dengan tingkat 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 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 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 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 harus mengkhawatirkan gangguan 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, dan produsen perangkat atau vendor chipset mana pun dapat memasukkannya 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 lebih mudah mengintegrasikan DRM 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 decoding 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 API framework dan native. Untuk aplikasi yang menggunakan API native, platform ini menyertakan header ekstensi OpenMAX 1.1.2 untuk mendukung profil dan level 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 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 yang dipercepat hardware di perangkat yang mendukung.
Encoding video dari permukaan
Mulai Android 4.3, Anda dapat menggunakan platform sebagai input untuk encoder video. Misalnya, sekarang Anda dapat mengarahkan streaming dari platform OpenGL ES ke encoder, daripada 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 pasangan dari API demuxing media yang diperkenalkan di Android 4.2.
Progres dan scrubbing pemutaran pada klien remote control
Sejak Android 4.0, pemutar media dan aplikasi serupa telah 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 menampilkan progres dan kecepatan pemutaran melalui klien remote control-nya, serta menerima perintah untuk melompat ke posisi pemutaran tertentu.
Cara Baru untuk Mem-build Aplikasi yang Menarik
Akses ke notifikasi
Notifikasi telah lama menjadi fitur Android yang populer karena memungkinkan pengguna melihat informasi dan update dari seluruh sistem, semuanya di satu tempat. Kini 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 postingan, tampilan dan gaya konten, serta prioritas. Anda dapat mengevaluasi kolom minat dalam notifikasi, memproses atau menambahkan konteks dari aplikasi, dan mengarahkannya untuk ditampilkan dengan cara apa pun yang Anda pilih.
API baru ini memberi Anda callback saat notifikasi ditambahkan, diperbarui, dan dihapus (baik karena pengguna menutupnya atau dihapus 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 kapan saja di Setelan, dan mengaktifkan atau menonaktifkan akses sesuai kebutuhan. Akses notifikasi dinonaktifkan secara default — aplikasi dapat menggunakan Intent baru untuk mengarahkan pengguna langsung ke Setelan untuk mengaktifkan layanan pemroses setelah penginstalan.
Overlay tampilan
Kini Anda dapat membuat overlay transparan pada View dan ViewGroups 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 sebenarnya, sedangkan batas optik baru menjelaskan lokasi widget, dalam batas klip. Anda dapat menggunakan mode tata letak batas optik untuk menyelaraskan widget dengan benar 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, silang-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 memastikannya 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 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 — 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 pemanggil melalui sistem pesan. Intent menyertakan penerima (pemanggil) serta pesan itu sendiri.
Dukungan untuk Pengguna Internasional
![](https://developer.android.google.cn/static/images/jb-rtl-arabic-n4.png?authuser=19&hl=id)
![](https://developer.android.google.cn/static/images/jb-rtl-hebrew-n4.png?authuser=19&hl=id)
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/Pemutar dan
ExpandableListView. Lebih banyak informasi proses debug yang 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 dalam skrip RTL, kini ada lebih banyak aplikasi sistem default yang mendukung tata letak RTL, termasuk Peluncur, Setelan Cepat, Telepon, Orang, SetupWizard, Jam, Download, dan lainnya.
Utilitas untuk pelokalan
![](https://developer.android.google.cn/static/images/jb-pseudo-locale-zz.png?authuser=19&hl=id)
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 yang 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, BidiFormatter API kini juga tersedia untuk versi platform yang lebih lama 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 yang dilokalkan dan terbaik untuk lokalitas yang Anda tentukan. Cara ini 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 menggunakan pseudo-lokal 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 digunakannya. 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 tersebut sebelum diluncurkan.
Dibangun berdasarkan framework aksesibilitas di Android 4.3, framework otomatisasi UI baru memungkinkan pengujian berinteraksi dengan UI perangkat dengan menyimulasikan tindakan pengguna dan memasukkan konten layarnya. Melalui framework otomatisasi UI, Anda dapat menjalankan operasi dasar, menyetel rotasi layar, menghasilkan peristiwa input, mengambil screenshot, dan banyak lagi. Cara ini efektif 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
Kini aplikasi 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 Fase 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 tombol 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 saat terjadi gangguan pada root atau kernel.
Penyedia Keystore Android
Android 4.3 memperkenalkan API dan penyedia keystore 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, serta dapat ditambahkan ke keystore tanpa interaksi pengguna.
Penyedia keystore memberikan manfaat keamanan yang sama dengan yang diberikan oleh KeyChain API untuk kredensial 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 terpasang nosuid
untuk
proses yang dibuat 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
![](https://developer.android.google.cn/static/images/jb-systrace.png?authuser=19&hl=id)
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 telah ditingkatkan dan lebih mudah digunakan, serta 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 API Rekaman Aktivitas baru yang dapat digunakan di aplikasi untuk menandai bagian kode tertentu yang akan dilacak menggunakan peristiwa mulai/akhir Systrace. Ketika bagian kode yang ditandai dieksekusi, sistem akan menulis peristiwa mulai/akhir ke log rekaman aktivitas. Hanya sedikit dampak 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 ruang pengguna dan kernel lain. Bersama dengan tag Systrace yang sudah ada, bagian aplikasi kustom dapat memberi Anda cara baru untuk memahami performa dan perilaku aplikasi.
![](https://developer.android.google.cn/static/images/jb-gpu-profile-clk-n4.png?authuser=19&hl=id)
![](https://developer.android.google.cn/static/images/jb-gpu-profile-cal-n4.png?authuser=19&hl=id)
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 memvisualisasi 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 menyoroti batas 16 md untuk operasi rendering, sehingga Anda dapat menilai kecepatan frame aplikasi yang efektif secara relatif terhadap sasaran 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 memunculkannya 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 menampilkan URI file://
ke sistem atau aplikasi lain.
Dalam beberapa kasus, aplikasi penerima mungkin tidak memiliki akses ke jalur URI
file://
. Jadi, saat berbagi file antar-aplikasi, URI content://
harus
digunakan (dengan izin yang sesuai). Kebijakan baru ini membantu Anda mengidentifikasi dan memperbaiki
kasus tersebut. Jika 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](https://developer.android.google.cn/static/images/jb-device-2.png?authuser=19&hl=id)
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 yang baru untuk developer.
Lihat dokumen API Android 4.2 untuk mengetahui 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 dibuat berdasarkan peningkatan performa yang sudah disertakan dalam Jelly Bean — pengaturan waktu vsync, buffering tiga kali, latensi sentuh yang lebih rendah, dan peningkatan input CPU — serta menambahkan pengoptimalan baru yang mempercepat proses Android.
Peningkatan dalam perender 2D yang dipercepat hardware membuat animasi umum seperti men-scroll dan menggeser menjadi lebih halus dan lebih cepat. Secara khusus, menggambar dioptimalkan untuk lapisan, clipping, dan bentuk tertentu (rect membulat, lingkaran, dan oval).
Berbagai pengoptimalan rendering WebView membuat scroll halaman web lebih lancar serta bebas dari jitter dan lag.
Komputasi Renderscript di Android adalah platform komputasi pertama yang ditransfer agar berjalan langsung di GPU perangkat seluler. API ini 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 baru. Panel sistem yang sudah dikenal akan muncul di bagian bawah, dengan tombol yang mudah diakses menggunakan salah satu tangan. Baki Aplikasi 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 aplikasi mereka sendiri, dan sistem akan memisahkan semua hal tersebut. Semua pengguna berbagi layanan sistem inti, tetapi sistem memastikan bahwa aplikasi dan data setiap pengguna tetap terisolasi. Hasilnya, setiap pengguna memiliki perangkat Android-nya sendiri.
Pengguna dapat menginstal dan meng-uninstal aplikasi kapan saja di lingkungannya sendiri. Untuk menghemat ruang penyimpanan, Google Play hanya mendownload APK jika APK belum diinstal oleh pengguna lain di perangkat. Jika aplikasi sudah terinstal, Google Play akan merekam penginstalan pengguna baru dengan cara biasa, tetapi tidak mendownload salinan aplikasi lainnya. 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 untuk berjalan secara normal di lingkungan multi-pengguna dan tidak ada perubahan yang perlu Anda buat dalam APK yang sudah ada atau sudah dipublikasikan. Sistem akan mengelola aplikasi Anda di setiap ruang pengguna seperti dalam lingkungan pengguna tunggal.
Cara baru untuk menarik interaksi pengguna
![Widget layar kunci kalender](https://developer.android.google.cn/static/images/jb-lock-calendar.png?authuser=19&hl=id)
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 hingga lima widget layar kunci, memilih dari 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 dapat sepenuhnya mandiri, seperti widget yang menawarkan kontrol untuk memutar musik, atau memungkinkan pengguna langsung melompat ke Aktivitas dalam aplikasi Anda, setelah membuka kunci sesuai kebutuhan.
Bagi developer, widget layar kunci menawarkan cara baru yang hebat untuk menarik interaksi pengguna. Memungkinkan Anda menampilkan konten kepada pengguna di lokasi yang 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 agar 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 praktis di layar kunci.
Daydream
Daydream adalah mode screensaver interaktif yang dimulai saat perangkat pengguna dipasang ke dok atau mengisi 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 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 membuka 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 menarik" — semuanya tanpa memerlukan hardware khusus.
![Mode screensaver Daydream](https://developer.android.google.cn/static/images/jb-dream-1.png?authuser=19&hl=id)
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 langsung menggunakan Canvas, OpenGL, SurfaceTexture, dan banyak lagi. Perangkat dapat memutar video dan audio, bahkan menerima interaksi pengguna langsung. Namun, daydream bukanlah Aktivitas, sehingga tidak memengaruhi data sebelumnya atau muncul di Terbaru, dan tidak dapat diluncurkan langsung dari aplikasi Anda.
Mengimplementasikan daydream sangatlah mudah. 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-masing bagian.
Dukungan tampilan eksternal
Android 4.2 memperkenalkan dukungan platform untuk layar eksternal yang jauh lebih dari sekadar pencerminan — aplikasi kini dapat menargetkan konten unik ke salah satu atau beberapa layar yang terpasang ke perangkat Android. Aplikasi dapat memanfaatkan hal ini untuk memberikan jenis interaksi dan pengalaman hiburan baru kepada pengguna.
Pengelola tampilan
Aplikasi berinteraksi dengan tampilan melalui layanan sistem pengelola tampilan baru. Aplikasi Anda dapat menghitung tampilan dan memeriksa kemampuan masing-masing layar, termasuk ukuran, kepadatan, nama tampilan, ID, dukungan untuk video yang aman, dan lainnya. Aplikasi juga dapat menerima callback saat tampilan ditambahkan atau dihapus, atau saat kemampuannya berubah, untuk mengelola konten Anda di layar eksternal dengan lebih baik.
Jendela presentasi
Untuk memudahkan Anda menampilkan konten di layar eksternal, framework menyediakan objek UI baru yang disebut Presentasi — sejenis dialog yang mewakili jendela konten aplikasi Anda pada tampilan eksternal tertentu. Aplikasi Anda 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.
![](https://developer.android.google.cn/static/images/external-display.png?authuser=19&hl=id)
Anda dapat mengontrol dua atau beberapa layar independen secara penuh menggunakan Presentasi.
Presentasi memberi aplikasi Anda 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 membangun hierarki tampilan arbitrer hingga menggunakan SurfaceView atau SurfaceTexture guna menggambar langsung ke jendela untuk konten yang di-streaming atau pratinjau kamera.
Pemilihan tampilan pilihan
Jika tersedia beberapa layar eksternal, Anda dapat membuat Presentasi sebanyak yang diperlukan, yang masing-masing menampilkan konten unik pada tampilan tertentu. Dalam banyak kasus, Anda mungkin hanya ingin menampilkan konten di satu layar eksternal, tetapi selalu menampilkan yang terbaik untuk konten Presentasi. Untuk mewujudkannya, sistem dapat membantu aplikasi memilih tampilan terbaik yang akan digunakan.
Untuk menemukan tampilan terbaik untuk digunakan, aplikasi Anda dapat meminta 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 beralih secara otomatis ke konten Presentasi pada tampilan pilihan. Aplikasi 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 yang aman dari layar yang terpasang. Aplikasi Anda akan mengkueri tampilan untuk mengetahui apakah aplikasi tersebut menawarkan output video yang aman atau menyediakan buffering grafis yang dilindungi, lalu memilih streaming atau decoding konten yang sesuai agar konten terlihat. Untuk keamanan tambahan pada objek SurfaceView, aplikasi Anda dapat menyetel 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 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 dan tidak perlu 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](https://developer.android.google.cn/static/images/jb-rtl.png?authuser=19&hl=id)
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 menghadirkan pengalaman aplikasi yang sama baiknya untuk semua pengguna, baik bahasa mereka menggunakan skrip yang dibaca dari kanan-ke-kiri atau kiri-ke-kanan.
Saat pengguna mengalihkan 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 Anda ingin aplikasi dicerminkan, cukup deklarasikan atribut baru dalam manifes aplikasi dan ubah semua properti tata letak "kiri/kanan" menjadi properti "start/end" baru 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 penentuan posisi 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 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 Fragmen tersebut sangat berguna untuk menerapkan komponen UI yang dinamis dan dapat digunakan kembali di dalam komponen UI yang 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.
Untuk memungkinkan Anda memanfaatkan Fragmen bertingkat secara lebih luas di aplikasi, kemampuan ini telah 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. Layanan kemudian 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 oleh pengguna. Jenis masukan aksesibilitas baru juga ditambahkan di Android 4.2 untuk perangkat Braille.
Untuk 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 bagi layanan aksesibilitas melalui AccessibilityNodeInfo.
Kamera yang disempurnakan dengan HDR
Android 4.2 memperkenalkan antarmuka hardware dan pipeline kamera baru untuk performa yang lebih baik. Di perangkat yang didukung, aplikasi dapat menggunakan mode adegan kamera HDR baru untuk mengambil gambar menggunakan teknik penggambaran 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, Compute 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 pengoptimalan yang lebih baik 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 OS ini menempatkan 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 untuk mengurangi jumlah kode yang perlu Anda tulis dan untuk memastikan aplikasi Anda mendapatkan peningkatan performa maksimum.
Intrinsik tersedia untuk penggabungan, pemburaman, matriks warna, konvolusi 3x3 dan 5x5, tabel pencarian per saluran, serta mengonversi buffer YUV Android ke RGB.
Grup skrip
Kini Anda dapat membuat grup skrip Renderscript dan menjalankan semuanya dengan satu panggilan seolah-olah merupakan bagian dari satu skrip. Hal ini memungkinkan Renderscript mengoptimalkan eksekusi skrip dengan cara yang tidak dapat dilakukan jika skrip dijalankan satu per satu.
![Bagan optimalisasi RenderScript](https://developer.android.google.cn/static/images/jb-rs-chart-versions.png?authuser=19&hl=id)
Tolok ukur pemrosesan gambar Renderscript berjalan pada versi platform Android yang berbeda (Android 4.0, 4.1, dan 4.2) di CPU hanya di perangkat Galaxy Nexus.
![](https://developer.android.google.cn/static/images/jb-rs-chart-gpu.png?authuser=19&hl=id)
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 asiklik terarah dari operasi Renderscript yang akan dijalankan, Anda dapat menggunakan class builder untuk membuat grup skrip yang menentukan operasi. Pada waktu eksekusi, Renderscript akan mengoptimalkan urutan pengoperasian dan koneksi antara operasi tersebut untuk mendapatkan performa terbaik.
Peningkatan pengoptimalan yang berkelanjutan
Saat menggunakan Renderscript untuk operasi komputasi, aplikasi Anda akan mendapatkan manfaat dari peningkatan performa dan pengoptimalan yang berkelanjutan dalam mesin Renderscript itu sendiri, tanpa memengaruhi kode aplikasi atau memerlukan kompilasi ulang.
Seiring dengan peningkatan pengoptimalan, operasi Anda akan dijalankan lebih cepat dan pada lebih banyak chipset, tanpa perlu upaya 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 ditransfer agar berjalan langsung di GPU perangkat seluler. Kini aplikasi ini 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 pada perangkat yang didukung dapat langsung memanfaatkan integrasi GPU ini, tanpa mengompilasi 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 keren dengan performa baik. Opsi baru ini menampilkan fitur untuk melakukan proses debug dan pembuatan profil aplikasi Anda dari perangkat atau emulator apa pun.
Pada perangkat yang menjalankan Android 4.2, opsi developer disembunyikan secara default untuk membantu menciptakan pengalaman yang lebih baik bagi pengguna. Anda dapat memunculkan opsi developer kapan saja dengan mengetuk 7 kali pada Setelan > Tentang ponsel > Nomor build di perangkat Android yang kompatibel.
![](https://developer.android.google.cn/static/images/jb-dev-options-device.png?authuser=19&hl=id)
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 menghapus 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, sambil 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 dengan warna 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 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. Pada umumnya, teknologi dan peningkatan platform baru ini tidak secara langsung memengaruhi aplikasi Anda, sehingga Anda dapat memanfaatkannya tanpa modifikasi 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 agar aplikasi diperiksa oleh pemverifikasi aplikasi, sebelum penginstalan. Verifikasi aplikasi dapat memperingatkan pengguna jika mereka mencoba menginstal aplikasi yang mungkin berbahaya; jika aplikasi bermasalah, 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 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 menerima kegagalan validasi sertifikat jika sertifikat tidak terikat ke kumpulan sertifikat yang diharapkan. Hal ini akan 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 tersebut.
- installd hardening — Daemon installd tidak berjalan sebagai pengguna root, sehingga mengurangi potensi permukaan serangan untuk eskalasi akses root.
- init script hardening — Skrip init kini menerapkan semantik O_NOFOLLOW untuk mencegah serangan terkait symlink.
- FORTIFY_SOURCE — Android kini mengimplementasikan FORTIFY_SOURCE. ID ini digunakan oleh library sistem dan aplikasi untuk mencegah kerusakan memori.
- Konfigurasi default ContentProvider — Aplikasi yang menargetkan API level 17 akan memiliki "ekspor" yang ditetapkan ke "false" secara default untuk setiap ContentProvider, sehingga mengurangi kemunculan serangan default untuk aplikasi.
- Kriptografi — Memodifikasi 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 telah tersedia di Project Open Source Android. Untuk meningkatkan keamanan, beberapa perangkat dengan versi Android sebelumnya 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 ini 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, dimulai dari peningkatan yang dilakukan pada 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 mengiklankan dukungannya untuk aplikasi melalui konstanta fitur hardware. API AudioManager baru disediakan untuk membuat kueri 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 Forum NFC. NCI menyediakan protokol komunikasi standar antara Pengontrol NFCC (NFCC) dan Host perangkat, dan stack NFC baru yang dikembangkan melalui kolaborasi antara Google dan Broadcom mendukungnya.Pengoptimalan waktu proses Dalvik
Runtime Dalvik menyertakan 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
![](https://developer.android.google.cn/static/images/jb-android-4.1.png?authuser=19&hl=id)
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 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.
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 Android SDK (Alat R20 atau yang lebih baru)
![](https://developer.android.google.cn/static/images/jb-accessibility-focus-250.png?authuser=19&hl=id)
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
![](https://developer.android.google.cn/static/images/jb-r2l.png?authuser=19&hl=id)
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
![](https://developer.android.google.cn/static/images/jb-notif-ex1.png?authuser=19&hl=id)
Developer dapat membuat gaya notifikasi kustom seperti yang ditunjukkan dalam contoh di atas untuk menampilkan konten dan tindakan lengkap.
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, dan 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.
![](https://developer.android.google.cn/static/images/jb-appwidgets.png?authuser=19&hl=id)
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 seiring perubahan ukuran widget.
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 menyertakan Wallpaper Animasi, kini Anda dapat memulai Aktivitas (ACTION_CHANGE_LIVE_WALLPAPER) yang menampilkan pratinjau Wallpaper Animasi dari aplikasi Anda 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 waktu proses 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
Dengan memperluas vsync ke seluruh framework Android, Anda akan memperoleh kecepatan frame yang lebih konsisten serta UI yang lancar dan stabil. Agar aplikasi juga mendapatkan manfaat, 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), teknologi yang memungkinkan aplikasi menemukan dan tersambung secara langsung, melalui koneksi peer-to-peer bandwidth tinggi (sesuai dengan program sertifikasi Wi-Fi DirectTM Wi-Fi Alliance). Wi-Fi P2P 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 diekspos dengan Open Accessory Development Kit (ADK) Android untuk memberi semua developer kesempatan 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. API ini juga mendukung payload pesan, 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. Saat developer memublikasikan update, Google Play kini hanya menayangkan bit yang telah berubah ke perangkat, bukan seluruh APK. 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.