Hai. Selamat datang di Yang Baru di Android.
Saya lebih suka menyebutnya sebagai intisari Android.
Saya Chet Hease dari tim Perangkat UI Android.
Saya Romaine Guy dari tim Grafis.
Saya Dan Sandler dari tim UI Sistem.
Kita tak punya banyak waktu, mari kita mulai.
Kalian siap untuk Yang Baru di Android?
Ini yang kami bahas terakhir kali, API 25.
Kita akan langsung mengambil git-sha itu
memasukkannya ke git-diff, dan selesailah.
Saya pikir kalian perlu menulisnya.
Baiklah.
Selanjutnya.
Ya, itu bagus.
Saya suka itu.
Ingat saat kita hampir saja buat Enum?
Sangat lucu.
Kau mengerti?
Kau pikir orang datang untuk ini?
Aku tak tahu mengapa kita tak memikirkannya sebelumnya.
Kami telah memberitahu Anda
apa yang baru selama bertahun-tahun.
Anda bisa melihat bahwa
aku lupa blazerku.
Sebenarnya tidak, saya punya blazer merah bagus tapi ada yang pinjam untuk Intisari.
Kalian mendapat
Sepertinya kau menuduhku.
Tapi tahun ini akan sedikit berbeda, kan?
Kalian punya pratinjau pengembang awal
jadi Anda pernah melihat API ini sebelumnya.
Anda punya intisari Google, dengan isi yang menarik.
Ada intisari pengembang di mana Anda bisa belajar banyak tentang dunia pengembang.
Untuk apa kami di sini?
Apa inti dari Yang Baru di Android?
Krisis eksistensial.
Jadi...
- Kau coba clicker ini? - Iya.
- Oke. - Sudah kucoba.
Anggap saja ceramah ini seperti mencicipi anggur
atau wiski terbang atau salah satu mesin soda
yang Anda bisa tekan semua tombolnya.
Ini adalah kumpulan pilihan yang mungkin Anda lewatkan di rilis baru Android.
Hal yang perlu dilakukan untuk menjadi bagian dari Android O
dan jujur saja, hal yang perlu dibahas saat kami di sini.
Dengan itu, inilah Yang Baru di Android.
Khususnya, yang mungkin Anda lewatkan di pratinjau pengembang
atau intisari I/O atau intisari lain
dan mengapa Anda harus peduli.
Hal terakhir yang ingin saya pastikan dibahas hari ini adalah ini.
Semua orang selalu senang mengenai ini.
Tapi ini akan dibahas terakhir.
Ini akan menarik sekali.
Baiklah, mari kita mulai.
Romaine, bicaralah tentang UI dan grafis.
Ayo kita mulai.
Fitur pertama yang ingin kami bahas
adalah yang Anda lihat pagi ini di salah satu intisari.
Chet, clicker ini tak berfungsi. Kau tak mencobanya.
- Ketahuilah.. - Habiskan waktu saja.
Aku akan berdiri di belakang dan akan kugeser slidemu.
Baiklah. Ke slide berikutnya.
Ini alasannya clicker tak diberikan.
Baiklah, jadi sebuah fitur...
Bisa berfungsi bagiku.
Kembalilah ke sana.
Aku tak mau melihatmu.
Fitur pertama yang Anda lihat pagi ini
dalam salah satu intisari, gambar dalam gambar bukan hanya untuk TV.
Tapi juga untuk ponsel Anda.
Di sini, ada contoh dengan aplikasi pihak ketiga.
Netflix dalam ponsel Anda, ada gambar dalam gambar.
Berikan clicker itu.
Ayo kita mundur kembali. Ini dia.
Dan sangat mudah untuk dijalankan dalam aplikasi Anda.
Anda hanya harus mengubah manifes
dan tolong hentikan animasinya.
Anda hanya perlu supportsPictureInPicture="true".
Anda tidak perlu atribut resizeableActivity="true" lagi
dan Anda juga harus mengecek perubahan konfigurasi.
Untuk kode, saat Anda ingin masuk ke mode gambar dalam gambar
Anda hanya perlu sebaris kode.
Anda dapat activity dan memanggil enterPictureInPicture.
Sangat sederhana, dan akan menyenangkan pengguna Anda.
Lalu, sebuah fitur yang sangat saya sukai.
Manajemen warna.
Kami menambah dukungan untuk wide-gamut gantikan O.
Tidak tersedia di semua perangkat.
Hanya perangkat yang mendukung fitur ini
bisa menggunakannya untuk aplikasi Anda.
Kami menambah dukungan untuk file 16 bit PNG
jadi Anda mempunyai warna yang lebih beragam dan jenuh.
Kami mendukung profil ICC, jadi profil warna tertanam
di bitmap, di JPEG, PNG, dan WebP.
Ini juga akan menjamin penampilan warna
dalam berbagai layar.
Juga ada berbagai API baru, tapi kami akan membahasnya
di akhir minggu dalam ceramah lain.
Karena satu gambar bermakna ribuan kata
inilah manajemen warna dan cara kerjanya.
Saya harap cukup jelas.
Manajemen warna sebenarnya berkaitan dengan yang Anda alami
dengan aplikasi Anda sendiri.
Warna Anda terlihat berbeda di berbagai perangkat.
Kami punya solusinya di Android O.
Jika Anda ingin tahu lebih lanjut, akan ada ceramah
dari saya hari Jumat nanti jam 11:30 di panggung 2.
Judulnya Memahami Warna.
Berikutnya, kami juga menambah dukungan untuk berbagai tampilan.
Jika aplikasi Anda sudah...
clickernya buruk sekali.
Jika aplikasi Anda mendukung berbagai jendela, yaitu mode multi-window
ia juga mendukung berbagai tampilan di O.
Saat ponsel atau perangkat jaringan dihubungkan ke berbagai tampilan
dan Anda punya aplikasi yang sesuai
pengguna bisa memilih untuk mengirim aplikasi Anda
ke tampilan yang berbeda.
Saat ini terjadi, Anda akan mendapat perubahan konfigurasi untuk ubah ukuran.
Anda juga bisa mengatur dalam tampilan mana, activity Anda muncul.
Anda bisa memakai Activity Options.
Anda juga harus uji aplikasi Anda jika ingin mendukung fitur ini.
Untuk membantu pengujian, ada dua alat pengembang baru.
Anda bisa menjalankan adb shell dumpsys display.
Ia akan menampilkan semua tampilan yang tersedia dalam perangkat.
Jika Anda memanggil adb shell start dengan activity intent
Anda bisa menentukan di tampilan mana activity dimulai.
Jadi, cara yang sangat mudah bagi Anda untuk mengujinya.
Banyak lainnya dalam API tersebut
jadi kami mendorong Anda untuk pergi ke jam kerja di hari Jumat dan Kamis
hari kerja untuk Windows dan activities.
Berikutnya, media.
Banyak kelas yang berguna di paket media kami.
Ada Media Player, perekam media, ekstraktor, dan codec.
Dan kami menambah API getMetrics baru
di tiap kelas tersebut.
Ini akan membantu mencari informasi tentang media yang Anda hadapi.
Jadi Anda bisa mencari tahu tentang resolusi, codec, laju bit
lamanya, data seperti ini.
Sangat mudah digunakan.
Panggil getMetrics pada salah satu objek ini.
Anda akan mendapat PersistableBundle
dan Anda bisa mencari dokumentasi di developer.android.com
untuk tahu kueri apa yang tersedia.
Playback juga bertambah baik.
Anda sekarang bisa mengontrol buffering dalam aplikasi Anda.
Anda bisa menentukan tinggi rendahnya watermark.
Jadi, pemutaran video tidak akan dimulai
sampai Anda mencapai watermark rendah
dan sistem akan melakukan yang terbaik untuk menyimpan data cache
antara rendah dan tinggi watermark ini.
Anda bisa menentukan watermark
dengan lamanya atau jumlah data, dalam ukuran.
Kami juga memperbaiki pencarian.
Saat Anda mencari dalam video, Anda bisa memilih perilaku.
Anda ingin mencari ke bingkai terdekat
bingkai selanjutnya, bingkai sebelumnya
atau ke bingkai sinkronisasi terdekat.
Terakhir, kami mempermudah penggunaan pemutaran DRM
dengan Widevine di seluruh aplikasi Anda.
Untuk perekaman, sampai sekarang, media mixer
hanya mengizinkan penambahan satu lagu video dan/atau satu lagu audio.
Sekarang Anda bisa menambah lagu audio dan video sebanyak yang diinginkan.
Anda juga bisa membuat lagu khusus.
Tipe MIME harus dimulai dengan application/
dan itu adalah side band di mana Anda bisa enkode data yang diinginkan.
Contoh kanonisnya adalah untuk enkode data JavaScript
jika Anda ingin putar ulang video 360 atau sejenisnya.
WebView dilengkapi dengan API baru yang sangat berguna.
Kami menambah kemampuan untuk menyimpan penjelajahan
yang Anda tahu dan sukai dari Chrome.
Itu mendeteksi malware dan laman web yang tidak aman.
Jika Anda menambah tag meta-data ini dalam manifes Anda
ia akan menggunakan backend dan API yang sama dengan Chrome
untuk mengamankan pengalaman penjelajahan
bagi pengguna Anda.
Pengguna WebView memakai multi proses.
Khususnya, ada proses render.
Jadi, ada juga API baru untuk menghadapi multi-proses ini.
Jika proses render tidak dapat bekerja
Anda bisa menggunakan Termination Handle API untuk mendeteksi kerusakan
dan memutuskan tindakan di aplikasi Anda.
Anda bisa merusak aplikasi jika mau, coba menyalakan kembali WebView
atau log sesuatu dan tunjukkan pesannya ke pengguna.
Jauh lebih anggun dibanding sebelumnya.
Anda bisa juga menggunakan Renderer Importance API
untuk menghadapi situasi kurangnya memori.
Jadi saat sistem kekurangan memori
ia akan mencoba meminta RAM dari tempat lain.
Anda bisa memberitahu sistem apakah WebView Anda
sangat penting atau tidak cukup penting bagi aplikasi Anda.
Jika WebView sangat kritis bagi aplikasi, Anda harus melihat API ini.
- Kau tahu tombol kanan yang dipakai, kan? - Aku tahu.
Jadi, ada beberapa fitur yang sudah lama diminta
oleh para animator, khususnya AnimatorSet.
Mereka sangat sulit diimplementasi, jadi butuh waktu.
Tapi sekarang di Android O, kita mempunyai kapabilitas
di AnimatorSet untuk mencari.
Jika Anda punya sebuah Animator yang berupa koleksi dari child Animators
Anda bisa mencari dalam child Animators di keseluruhan AnimatorSet.
Kami juga mempunyai kemampuan
untuk membalikkan.
Hei, Chet, bukanlah kau mencoba implementasi API tersebut baru-baru ini?
Mungkin.
Akhirnya siapa yang implementasi API itu?
Bukan aku.
Tepat sekali.
Jadi, kapabilitas baru, di AnimatorSet untuk membalik.
Anda tidak lagi harus mengatur AnimatorSet terpisah
dengan seluruh fungsi tersebut dan mendapat listener dan sebagainya.
Kami melakukan semua tugas membosankan itu untuk Anda.
IsiOtomatis, karena sangat membosankan
untuk terus mengisi semua informasi itu.
Kami melihatnya dalam intisari tadi.
Itu adalah kemampuan untuk...
Ada formulir untuk diisi.
Ada penyedia yang bisa memberi informasi tersebut.
Jadi saat Anda mendapat bidang teks itu
kami bisa memasukkan informasi itu secara otomatis bagi Anda.
Ada beberapa aspek berbeda dari ini.
Pertama, Anda bisa implementasikan layanan Anda sendiri
dan menyediakan kapabilitas itu, atau bergantung layanan yang kami sediakan.
Atau biasanya, Anda akan implementasikan klien.
Tampilan standar "bisa berfungsi".
Jika Anda memakai TextView atau EditText
kami tahu cara menerima informasi ini
untuk berinteraksi dengan sebuah layanan.
Jadi, tak perlu lakukan apa pun di tampilan standar.
Jika Anda memakai tampilan khusus
atau sediakan lebih banyak informasi tentang tampilan standar
ada API yang menyediakan petunjuk pada kami tentang tipe nilainya
juga API untuk memberitahu tampilan khusus Anda dan
bagaimana berinteraksi dengannya.
Jika Anda mempunyai hierarki tampilan khusus
sebut saja Anda punya tampilan permukaan di mana ada tampilan di dalamnya
tapi yang kita tahu bahwa ada SurfaceView
lalu ada API bagi Anda untuk memberitahu kami
tentang hierarki virtual yang Anda ingin kami berinteraksi dengannya.
Akan lebih banyak pembahasan tentang ini di sesi Jumat pagi.
Jadi, hadirilah jika Anda ingin tahu lebih banyak tentang IsiOtomatis.
Sekarang, mari bicarakan tentang teks.
Banyak hal yang terjadi di arena teks kali ini.
Saya pikir bisa di tulis ulang. Ini dia.
Saya hanya memakai font itu untuk menyakiti Dan.
Ia akan menyakitinya secara fisik.
Mengagumkan.
Kupikir kau merusaknya.
Baiklah, pertama-tama
Anda bisa memakai XML untuk menyatakan informasi font
dengan neat hack dan data binding
tapi sulit untuk melakukannya.
Dan mengapa kami tidak bisa sediakan kapabilitas itu bagi Anda?
Sekarang kami bisa.
Sekarang Anda bisa meletakkan file font langsung
dalam direktori referensi font baru ini.
Memang.
Letakkan dalam direktori, atau beritahu kami tentang keluarga font.
Anda bisa menyediakan beberapa font dengan informasi style masing-masing
dan lalu memakainya langsung seperti pemakaian referensi lain.
Dari kodenya, Anda bisa berkata, berikan referensi itu dan Anda mendapatkannya.
Font yang bisa diunduh.
Sekarang tersedia kapabilitas bagi Anda
untuk menyatakan font yang ingin Anda gunakan
lalu akan kami unduh dan cache di sistem bagi Anda jika belum dilakukan
atau jika sudah ada dalam sistem maka kita akan memakainya dari cache.
Anda bisa melakukannya dari kode atau XML
dan memakainya sebagai referensi, seperti yang dilakukan di font XML
di slide menarik sebelumnya.
Kami juga mempunyai penyedia font
yang kami sediakan di versi Google Play Services yang belum dirilis.
Ada versi beta yang tersedia di konferensi minggu ini.
Saya tidak tahu detailnya tapi akan ada sesi menjelaskan detailnya
atau Anda bisa kunjungi situs web Play Services
untuk pelajari lebih lanjut.
Anda akan bisa mengakses semua font Google.
Jika Anda hanya ingin memakai yang standar
seperti font indah yang saya pakai di awal bagian ini
mungkin ada di sana, maka Anda bisa memintanya langsung dari layanan.
Ada juga kemampuan TextView ukuran otomatis.
Biasanya, jika Anda mengubah ukuran TextView
Anda tidak akan pernah tahu apa yang populer, kan?
Teks. Teks itu keren, apalagi dalam font yang tepat.
Jadi yang Anda dapat sekarang adalah perilaku di sebelah kiri
di mana kita baru saja mengubah ukurannya.
Tidak ada perubahan font.
Tapi di sebelah kanan, jika Anda memilih behavior Auto-Sizing TextView
maka kami akan ubah ukurannya untuk Anda.
Anda bisa menentukan behavior atau kenaikan langkah yang ingin digunakan
atau ukuran khusus yang ingin dicapai langsung begitu ukurannya diubah.
Ada API untuk itu.
Ada API dalam XML dan kode bahasa pemograman Java
jadi nikmatilah.
Untuk semua fitur teks ini
font XML, font yang bisa diunduh, dan Auto-Sizing TextView.
Mereka membahas semua ini di Yang Baru
di sesi Pustaka Pendukung besok pagi.
Anda mungkin heran, mengapa mereka membahasnya dalam sesi Pustaka Pendukung?
Bukankah ini adalah API platform O?
Tentu saja.
Mereka juga ada di Pustaka Pendukung.
Anda bisa memakai semua kapabilitas ini
sampai ke rilis sebelumnya.
Utilitas AccessibilityService.
Jika Anda menulis di AccessibilityService, itu hebat.
Kami punya kapabilitas baru yang bisa Anda manfaatkan.
Pendeteksi bahasa, kemampuan untuk meletakkan tombol di bilah navigasi
dengan tombol lainnya untuk mempermudah mengakses file Anda.
Pisahkan kontrol volume untuk aksesibilitas volume
jadi Anda tidak menggabung volume itu dengan volume lain dalam perangkat
dan juga kemampuan untuk menetapkan gerakan sidik jari khusus.
Jika Anda ingin tahu lebih lanjut
ada sesi tentang aksesibilitas yang bisa Anda hadiri sore ini.
Yang terakhir, salah satu perubahan kecil favorit saya
saya berkata kecil karena hanya satu baris kode untuk API-nya
tapi cls sebenarnya yang dipakai untuk memperbaiki semua kode
yang tergantung pada implementasi sebelumnya sangat besar.
Jadi saya tidak mau mengurangi kerjaannya.
Dari segi API, ini sangatlah kecil dan tersembunyi dan terlihat sama dari luar.
Cara findViewById dinyatakan dengan sesuatu seperti berikut
public View findViewById.
Lalu Anda panggil itu, Anda masukkan ID referensi Anda
dan memperoleh tampilan, lalu menggantinya langsung sesuka Anda.
TextView, Anda harus beritahu ke TextView bagian kiri dan kanan
dalam tanda kurung dan ini merepotkan sekali.
Orang-orang memakai pustaka bantuan
hanya karena ini terlihat buruk.
Jadi sekarang
kita punya ini.
Saya menyebutnya Castaway.
Saya pikir saya satu-satunya yang menyebutnya begitu.
Baiklah, lewatkan saja slide pertama. Tak apa-apa.
Saya akan bicara sedikit tentang beberapa UI Sistem yang akan Anda lihat nantinya.
Jika Anda punya aplikasi, Anda perlu tahu tentang ikon adaptif.
Saya pikir ini tidak disebutkan dalam slide Steph tadi.
Intinya, kami mencoba menghemat waktu dan uang Anda.
Banyak peluncur di luar sana dan masing-masing
mempunyai rekomendasi yang berbeda untuk bentuk ikon Anda.
Ikon adaptif adalah teknologi baru
yang kami bawakan untuk Anda di O yang mengizinkan Anda berkata
ini latar belakang saya, ini latar depan saya
potong saja sesuai bentuk yang diinginkan.
Bahkan jika peluncurnya mempunyai lingkaran
atau persegi bulat atau pun sesuatu yang hebat
akan ada ikon yang cocok persis dengan rasa lokal.
Akan ada banyak informasi lagi
tentang ikon adaptif di ceramah hari Kamis.
Pastikanlah untuk hadir.
Baiklah, mari bicarakan tentang pintasan dan widget
karena peluncur juga bagian dari UI Sistem.
Sebelumnya, untuk mendapat pintasan dan widget di layar pengguna
ada siaran untuk pintasan yang bisa bekerja
dan untuk widget, Anda hanya perlu memohon penggunanya
dan melihat apakah Anda bisa menemukan widget kami dalam peluncur.
Dalam O, Anda sebenarnya bisa meminta salah satu hal ini
dipasang pin ke ruang kerja pengguna
dengan ShorcutManager untuk pintasan
dan AppWidgetManager untuk widget.
Lalu pengguna akan berkesempatan untuk berkata
tidak, saya tak mau itu di desktop saya
atau ya, saya mau, saya akan letakkan di tempat yang saya inginkan.
Atau mereka bisa berkata, tentu saja, cari tempat untuk itu
yang berupa perilaku sebelumnya.
Sekarang Anda tak perlu memandu pengguna di jalur panjang.
Anda bisa mengirim langsung ke dialog ini. Sangat mudah.
Lihatlah semua pengguna baru yang akan ada di widget Anda.
Saya bisa berkata saya jeda untuk tepuk tangan
padahal saya bergulat dengan clicker ini.
Akan ada ceramah tentang ini hari Kamis jam 4:30.
Baiklah, pemberitahuan, Anda tahu akan ada ini.
Mereka sangat berguna.
Mereka bagus untuk penggunaan.
Pengguna menyukainya.
Mungkin sedikit di luar kendali.
Banyak yang digunakan dalam aliran pemberitahuan sekarang ini
dan sulit bagi Anda untuk menyampaikan pesan ke pengguna yang ingin itu.
Dan sulit bagi pengguna untuk mengatur permintaan alur masuk atas atensi mereka.
Jika di luar kendali sekarang, pengguna harusnya selalu terkendali.
Itu prinsip kami dari awal.
Kami menambah kemampuan memblokir pemberitahuan dari paket Jelly Bean.
Di Nougat, kami menyaringnya dan menambah peredam.
Selain semua ini, permintaan terbanyak yang kami dapat dari pengguna adalah
oke, tapi bisakah saya memblokir beberapa pemberitahuan dari aplikasi?
Di sisi lain, permintaan terbanyak yang kami dapat dari pengembang adalah
bisakah pengguna memblokir beberapa pemberitahuan saya?
Itu hal yang sama. Semua orang meminta hal yang sama.
Ini alasannya channel pemberitahuan hadir.
Ini API baru dalam O.
Channel adalah nama kategori pemberitahuan dari sebuah aplikasi
di mana semua perilakunya sama.
Getaran, suara, cahaya, apakah mereka muncul di layar
jadi pengguna mempunyai kontrol yang eksplisit dan ketat.
Dalam aplikasi, Anda bisa mengatur semua channel Anda sendiri
menetapkan behavior default untuk O.
Pesan pribadi akan muncul.
Tag mungkin tidak muncul atau berada dalam prioritas rendah
lalu pengguna, saat mereka menekan lama pemberitahuan
atau memakai gerakan slide baru untuk melihat
mereka bisa melihat channel yang dipakai dan membuat perubahan tepat di baris itu.
Begitu Anda menargetkan O, jika Anda tidak memperoleh apa pun
dari dua menit saya di sini, ingatlah ini.
Anda harus memakai channel untuk setiap pemberitahuan
atau mereka akan dihapus.
Jadi, sampai Anda menargetkan O
Anda secara perlahan mengembangkan sistem pemberitahuan Anda ke channel.
Begitu Anda targetkan O, mereka harus dijadikan channel
karena kami coba agar pengalaman pengguna konsisten dan tahu apa yang didapat.
Kami akan membahas lebih lanjut
termasuk pertimbangan desain, semua kode yang tidak saya tulis
apa pun benda kecil yang berkedip di sana
pada ceramah jam 4:30 besok.
Akan ada banyak lagi dalam UI Sistem.
Kami cantumkan beberapa di sini.
Kebanyakan lagi.
Saya suka melakukannya dengan slide.
Saya mendorong Anda untuk memeriksa pratinjau pengembang
atau memasang beta dan memainkannya.
Kami bangga akan ini.
Baiklah, API baru untuk pengembang AS.
Kami mengembangkan Strict Mode API
yang pastinya Anda pakai dalam debugging.
Sekarang dalam ThreadPolicy, Anda bisa mendapat peringatan
saat memakai I/O tak tersangga.
Jika Anda memakai aliran input atau output tanpa membungkusnya
di salah satu aliran penyangga, Anda akan mendapat flash atau apa pun
peringatan pemicu yang Anda atur.
Dalam VmPolicy, jika Anda tak mentag socket, Anda juga mendapat peringatan.
Mentag socket berguna untuk lalu lintas debugging dengan Android Studio.
Terakhir, jika Anda membuka intent lain
jika Anda mengirim intent ke luar aplikasi Anda
dan Anda perlu memberi izin, Anda juga mendapat peringatan.
Jadi sangat mudah dipakai.
Terlihat seperti API kami sebelumnya.
Akses File Media.
Kami memperkenalkan penyedia dokumen beberapa saat lalu
beberapa rilis sebelumnya dan mereka sangat berguna
kecuali saat Anda punya dokumen besar.
Jika dokumen Anda besar, Anda perlu mengunduh seluruh data
sebelum Anda bisa menyampaikannya ke pengguna dari penyedia dokumen.
Sekarang Anda bisa membuat deskriptor file yang bisa dicari.
Sangat berguna untuk audio, video
atau konten besar lainnya.
Sangat mudah digunakan.
Saat Anda ke StorageManager, saat openProxyFileDescriptor
Anda memberinya callback
lalu mereka akan memanggil callback Anda
untuk meminta ukuran dokumen, meminta sejumlah data dalam array byte
dan kami akan memberitahu Anda kapan menutupnya.
Data tercache.
Jadi, ini API baru yang diberikan sistem
agar Anda jadi lebih baik.
Setiap aplikasi mempunyai sejumlah data
yang bisa digunakan dalam pembagian cache.
Saat sistem kehabisan tempat penyimpanan
ia akan mulai menghapus beberapa data cache.
Jika Anda berada di bawah kuota yang diberikan
Anda bisa menghindari penghapusan data.
Untuk ini, Anda bisa memakai StorageManager.
Anda bisa menkueri jumlah byte
yang dialokasi ke aplikasi Anda.
Anda bisa menkuerinya dari waktu ke waktu
karena kuota bisa berubah tergantung berapa banyak kuota yang Anda gunakan
atau seberapa sering pengguna memakai aplikasi.
Saat Anda ingin mengalokasi data, Anda bisa memakai allocateBytes.
Anda bisa lakukan sendiri, dengan membuat sebuah file, atau membuat aliran output.
Tapi lebih mudah cara begini karena saat Anda memakai allocateBytes
jika perlu, sistem akan menghapus data cache aplikasi lain
untuk membuat ruang bagi data Anda.
Itu artinya getCacheQuotaBytes mungkin lebih besar
dari ruang kosong yang tersisa dalam perangkat.
Anda juga bisa memakai setCacheBehaviorTombstone.
Ini sangat berguna bagi aplikasi Anda
untuk tahu perbedaan antara file yang belum pernah dicache
dan file yang dicache tapi terhapus.
Saat Anda mengatur perilaku tersebut dan sistem menghapus beberapa file
di cache Anda, file akan terpotong.
Jadi, file tetap akan di sana, tapi ukuran akan diatur ke 0.
Ini akan memberitahu Anda bahwa cache dihapus oleh sistem.
Dan akhirnya, ruang yang bisa dipakai dan bisa dialokasi akan berbeda.
Banyak hal dalam keamanan Android di rilis ini.
Kita hanya punya sedikit waktu untuk membicarakannya.
Saya ingin menyorot beberapa perjanjian privasi baru di Android O.
Jika Anda telah memakai Android_ID, Anda perlu tahu bahwa itu sekarang berbeda
bagi setiap aplikasi, bagi setiap pengguna dalam perangkat.
Jadi, tak bisa lagi digunakan untuk melacak pengguna antar aplikasi
dalam perangkat yang sama.
Hal yang sama, jika Anda refleksikan dalam properti sistem
untuk mendapat net.hostname, sekarang ia kosong.
Jika Anda berkata, saya perlu ID iklan
untuk bisa mengirim pengguna iklan kontekstual yang benar.
Itulah kegunaan API ID iklan di Google Play Services.
Jadi, kunjungilah Google Play
tapi Anda tidak bisa memakai ANDROID_ID.
Anda tak bisa mempercayainya lagi seperti dulu.
Ada slide tentang WebView di sini tapi Romaine mengambilnya.
Hal lain yang ingin saya sebut adalah penjelajahan aman dalam WebView
karena WebView didorong ke Play Store 6 bulan sekali
Anda bisa memilih fitur penjelajahan aman
sejauh Lollipop, sangat hebat.
Kami juga melihat pembukaannya dalam intisari
disebut Google Play Protect, sebenarnya berupa berbagai teknologi yang telah ada
tapi belum benar-benar diberi visibilitas yang pantas mereka dapatkan.
Karena kami mengawasi orang-orang setiap saat.
Apa pun perangkat dengan Google Play bisa mengaktifkan Protect.
Setiap aplikasi yang diunggah ke Play
disaring dan terus disaring kembali
untuk setiap versi baru yang diunggah.
Dan setiap Anda memasang sebuah aplikasi
di mana Anda mengatur Play Protect
aplikasi itu akan disaring juga
bahkan jika Anda memperolehnya dari toko lain atau pemasangan ADB.
Kami sangat gembira akan hal ini.
Banyak yang harus dibicarakan
banyak lagi yang harus dibicarakan tentang keamanan Android.
Mereka memberi banyak slide
jadi saya berkata, mengapa tak bicara sendiri saja?
Sebenarnya saya tak berkata begitu, tapi mereka juga ada ceramah sendiri.
Hari Kamis jam 2:30, Anda akan hadir
dan mendengar yang baru di keamanan Android dari awal hingga akhir.
Semua dari Kernel Hardening sampai hal lainnya tentang WebView.
Bahasa dan waktu proses.
Saya pikir Anda sudah tahu apa yang akan saya bicarakan.
Pagi ini, kami mengumumkan dukungan resmi untuk Kotlin.
Kalian melihat Steph di atas panggung, dan saya melihatnya duduk di aula sana.
Jadi, jika Anda melihatnya di I/O, ucapkan terima kasih.
Steph dan seluruh tim di belakangnya
bekerja dengan hebat, tak peduli berapa lama, untuk membawakan Anda ini.
Berterima kasihlah padanya.
Dia akan sampaikan terima kasih Anda pada seluruh tim.
Jadi, ia tersedia hari ini di Android 3.0.
Telah tersedia berbagai dokumentasi online.
Saya bisa habiskan waktu bicara tentang Kotlin
dan mengapa itu bagus bagi Anda, dan kami.
Sebenarnya, bisa saya bajak ceramah ini?
Dia bisa. Sebenarnya, dia sangat hebat.
Tapi sayangnya, kami tak punya banyak waktu di sesi ini.
Sebagai gantinya, saya mengundang Anda hadir
hari Jumat jam 10:30 di panggung ini.
Akan ada ceramah yang berjudul Pengenalan Kotlin
dari Andrey Breslav, desainer bahasa utama di JetBrains
dan Hadi, Wakil Presiden Advokasi Pengembang di JetBrains.
Lalu di sore hari di panggung 4
akan ada Hidup ini Hebat dan Segalanya akan Baik-baik Saja, Kotlin Hadir di sini
oleh Christina Lee dari Pinterest
dan Jack Wharton dari Square.
Ini sangat penting bagi kami karena alasan mengapa kami hadirkan Kotlin
adalah Anda sebagai komunitas memakai Kotlin.
Kami mendengar Anda dan membawakan apa yang Anda inginkan.
Jadi kami ingin Anda, sebagai komunitas, naik ke panggung
untuk berbicara tentangnya lebih baik daripada kami.
Jika Anda punya pertanyaan, Anda bisa datang ke bak pasir pengembang
di stan Platform Android
hari ini dari jam 3 ke 4:30, hari Kamis dari jam 2 ke 4
dan hari Jumat dari tengah hari hingga jam 2 sore.
Andrey, desainer bahasa, akan hadir
untuk menjawab pertanyaan Anda.
Datanglah jika Anda ingin tahu lebih banyak tentang Kotlin.
Kunjungilah dan tanyakan pertanyaan Anda.
Seperti yang disebut Steph, kami juga menggandakan bahasa lainnya
jadi bahasa pemograman Java dan kami juga punya C dan C++.
Untuk bahasa pemograman Java
kami menambah paket baru di Android O.
Kami mempunyai java.time yang akhirnya mempermudah
manipulasi waktu dan tanggal.
Dan masuk akal.
Ini lebih masuk akal dibanding API lama.
Sudah saatnya.
Ya, sudah saatnya.
Kami juga membuat java.nio.file.
Ini lebih baik dari API java.io.file lama.
Anda bisa mengakses atribut dari file.
Anda bisa dengan mudah memanipulasi jalur dan membaca file.
Kita akan lihat contohnya.
Terakhir, java.lang.invoke, sedikit variasi untuk refleksi.
Ini perkiraan kasar, tapi sangat hebat
karena Anda bisa mengubah dan membungkus method handles dalam aplikasi Anda.
Ini contoh dari API file baru.
Anda bisa memakai kelas jalur untuk memperoleh sebuah jalur.
Lalu Anda bisa memanggil files.lines.
Ia akan membaca seluruh konteks dari file.
Anda akan mendapat aliran.
Dalam contoh ini, saya memakai lambda dan API aliran
untuk menghapus semua baris kosong, semua baris yang dimulai dengan tanda pound
dan mengumpulkan semuanya menjadi aliran tunggal di ujung.
Jauh lebih mudah dibanding sebelumnya.
Baiklah, perubahan di waktu proses.
Kita mendengar beberapa pagi ini
dan lebih banyak lagi minggu ini.
concurrent-copying collector baru mempercepat dan mempermudah semuanya.
Concurrent-copying artinya tidak ada waktu jeda kecuali saat ada GC penuh.
Jadi, itu bisa melakukan semua hal
yang perlu dilakukan di latar belakang saat Anda melakukan hal lain.
Khususnya, salah satu hal hebat yang bisa dilakukan
adalah menetalkan tumpukan di latar depan.
Sebelumnya, saya yakin di rilis sebelumnya
ada kemampuan untuk menetalkan tumpukan, yang sangat bagus.
Ia bisa mendefragment, bisa memperkecil tumpukannya
bisa mempercepat alokasi dan koleksi
tapi hanya bisa melakukannya saat activities ada di latar belakang.
Ia akan masuk ke kondisi diam, dan melakukannya saat kondisi diam itu.
Tapi saat ada dalam latar depan, tak ada yang bisa dilakukan
tentang memperluas dan memfragmen tumpukan.
Sekarang koleksi bisa dilakukan di latar depan
defrag di latar depan, dan semuanya jauh lebih cepat.
Ada juga mekasnisme baru yang lebih cepat untuk alokasi.
Jadi kita bisa melakukan alokasi bump pointer yang jauh lebih cepat.
Koleksi lebih cepat
dan semua akan berakibat lebih sedikit sampah bagi Anda.
Lebih cepat untuk mengalokasi, lebih cepat untuk mengoleksi
artinya hanya menghadapi sampah dan memori secara umum
jauh lebih cepat memakai ART di rilis O.
Berbagai optimisasi, loop unrolling, inlining.
Salah satu hal untuk dicatat adalah
Dalvik dibuat dengan kendala tipe-memori, kan?
Semuanya tentang menghemat memori dengan Dalvik
artinya hanya bisa melakukan optimisasi tertentu.
Ia sudah mencapai akhir hidupnya
sejauh yang bisa dilakukan untuk mengoptimisasi.
Saat ART hadir online, mereka pada dasarnya diletakkan di platform
di mana kita bisa membangun optimisasi ke depannya.
Jadi, kita menuai manfaatnya sekarang
di mana dengan setiap rilis, termasuk O dan rilis masa depan
kita akan bisa melakukan lebih banyak lagi.
Banyak dari mereka di rilis ini.
Anda bisa menghadiri sesi minggu ini untuk informasi lebih lanjut.
Juga ada lokalitas DEX.
Ini khususnya meningkatkan waktu peluncur untuk activities
karena kami bisa mengumpulkan semua memori di ruang yang sama.
Jadi, lebih mudah dan lebih cepat untuk mengakses begitu aplikasi Anda dimulai.
Ada sesi di hari Jumat pagi, tentang Perkembangan Performa dan Memori.
Hadirilah untuk lebih banyak detailnya.
Selain platform, kami punya Pustaka Pendukung.
Kami punya mekanisme lain untuk mengirim hal lain di luar rilis O.
Kami ingin menyebut beberapa di antaranya.
Ada rilis beta v26 yang dikeluarkan dengan pengembang pratinjau 2.
Hal yang sudah kita bahas tentang teks, font dan XML
font terunduh, juga TextView ukuran otomatis.
Semua ada di sana. Anda bisa memeriksanya.
Sebagai tambahan, ada juga EmojiCompat.
Salah satu masalah besar yang kita punya dengan emoji
adalah jika teman Anda mengirim emoji
yang datang dari standar masa depan
di luar yang kami kirim di rilis yang Anda jalankan
Anda tidak bisa melihat emoji tersebut.
Sebagai gantinya, Anda akan melihat tofus
mungkin lebih menarik dibanding emoji lain yang saya pernah lihat
tapi tidak begitu berarti.
Bukankah bagus jika Anda bisa mendapat emoji yang diperbarui di perangkat Anda?
Sekarang ada dua mekanisme
yang bisa dipakai aplikasi untuk emoji yang diperbarui.
Satu adalah aplikasi bisa dibundel dengan emoji terbarui.
Jadi mereka bisa memperbarui aplikasi ke Play Store lalu ke pengguna mereka
jadi pengguna bisa mendapat pembaruan berkala dari emoji tersebut.
Yang lainnya, dan mungkin solusi jangka panjang yang lebih baik
adalah memakai layanan yang kami sediakan untuk font yang bisa diunduh
yang kita bicarakan tadi, di mana mereka bisa secara otomatis
mendapat font terbaru melalui font yang bisa diunduh, kan?
Aplikasi bisa membangun kapabilitas
untuk memakai kapabilitas font yang bisa diunduh
untuk mendapat emoji terbaru begitu kami menyediakannya dalam layanan.
Jadi, hadirilah ceramah Yang Baru di Pustaka Pendukung besok pagi
untuk mempelajari lebih lanjut.
Masih banyak lagi dalam sebuah animasi
di samping AnimatorSet yang saya bicarakan tadi.
Kami punya kemampuan untuk memiliki animasi berbasis fisika.
Jadi jika kita ingin melihatnya dalam bentuk animasi
kemampuan untuk inti animasi didorong melalui kecepatan.
Semua kapabilitas animasi yang kami punya di platform sampai sekarang
didorong oleh durasi.
Anda memberitahu berapa lama ingin menjalankannya.
Tapi banyak animasi, Anda ingin mendorongnya dengan kecepatan.
Khususnya, animasi yang didorong oleh interaksi pengguna.
Anda menarik sesuatu pada layar dan Anda lepaskan.
Bukankah bagus jika ia lepas dari jari Anda dengan kecepatan yang sama
di mana Anda tarik saat Anda melepasnya?
Jadi, lepaskan, gulirkan, semua hal itu
memerlukan sistem animasi berbasis kecepatan.
Anda bisa melakukannya dengan animator tapi sangat membosankan.
Ia perlu matematika. Matematika itu sulit.
Jadi kami membuat kapabilitas itu ke dalam Sistem Animasi Fisika
yang lebih alami, lebih interaktif dan lebih mudah terganggu
karena ditujukan untuk bekerja dengan model interaktivitas pengguna.
Berikut demonstrasinya.
Jadi saat kita menarik benda atas, dua lingkaran lain bergantung
pada benda atas melalui pegas yang Anda tentukan.
Maka mereka mengikutinya dalam ruang.
Mereka tidak terkunci tapi pada dasarnya mereka ada pada pegas yang tertambat.
Mereka segera mendapat manfaat dari aktivitas interaktif itu
dan gagasan berbasis fisika dari pegas ini.
Jadi, ada ceramah tentang ini hari Jumat sore
tentang animasi baru berbasis fisika.
Hadirilah jika Anda ingin tahu lebih lanjut.
Komponen Arsitektur.
Ini disebut dalam salah satu intisari.
Kami pikir mungkin terkadang perkembangan Android
jauh lebih sulit dari yang seharusnya.
Jadi kami mundur selangkah dan berkata
apa masalah besar yang harus kita coba
untuk mempermudahnya bagi pengembang aplikasi?
Beberapa di antaranya yang kami jalankan sekarang atau sekitar siklus hidup.
Sulit dihadapi bahwa activities Anda bisa mati kapan saja
saat Anda memutar layar atau masuk ke latar belakang atau apa pun itu.
Mencari tahu secara tepat kondisi yang Anda alami bisa sedikit membosankan.
Ini masalah yang terus berlangsung yang perlu dihadapi pengembang aplikasi.
Kami melakukan pendekatan lain untuk mempermudahnya.
Sebagai tambahannya, kami juga melihat dari sisi kegigihan.
Anda bisa keluarkan raw SQL sekarang
dan itu saja yang Anda punya dalam sistem.
Jadi kami punya cara baru melakukannya, bergantung pada kapabilitas itu
yang mempermudah dan memperkuatnya.
Kami akan berbicara tentang semua itu minggu ini.
Kami akan mengadakan Pengenalan Komponen Arsitektur
saya dorong Anda untuk hadir sore ini.
Sebenarnya langsung setelah sesi ini.
Besok pagi, akan ada ceramah
tentang masalah siklus hidup dan bagaimana memecahkannya.
Juga akan ada ceramah tentang kegigihan dan offline.
Semua ini sebenarnya bisa Anda coba di bentuk rilis awal.
Jadi, periksalah. Semoga mempermudah hidup pengembang Anda.
Ada beberapa perubahan perilaku
beberapa di antaranya lebih Anda pedulikan dibanding lainnya.
Ada beberapa perubahan perilaku
dari aplikasi latar belakang, khususnya, lokasi.
Jika Anda berfungsi sebagai aplikasi latar belakang
Anda hanya akan memperoleh informasi lokasi kasar.
Semua ini dilakukan bukan untuk mempersulit
tapi untuk mempermudah penggunaan perangkat, kan?
Jika semua aplikasi bisa mempunyai semua kapabilitas setiap saat
dan mereka bisa lakukan apa yang diperlukan atau diinginkan setiap saat
maka intinya Anda akan habiskan baterai
karena semua orang melakukan terlalu banyak setiap saat.
Kita mencoba bijaksana tentang aplikasi mana
yang perlu layanan pada saat tertentu
sehingga kita bisa memberi pengalaman lebih baik pada pengguna.
Pengalaman lebih baik untuk pengguna Anda juga.
Salah satunya adalah di lokasi, informasi kasar saat Anda di latar belakang.
Yang lainnya adalah wake lock.
Kami perhatikan adalah umum bagi aplikasi
untuk masuk ke kondisi latar belakang, lalu ke kondisi cache
dan ia akan punya wake lock saat itu.
Ia akan menjaga wake lock itu
dan menyimpannya untuk waktu lama.
Itu akan menghabiskan baterai.
Sekarang, beberapa saat setelah Anda masuk ke kondisi cache
wake lock akan dilepas secara otomatis
jadi tidak akan mengakibatkan kondisi tidak layak bagi perangkat.
Juga ada batas untuk eksekusi
saat Anda berfungsi di latar belakang.
Juga ada perubahan di jendela lansiran.
Khususnya, ada tipe baru jendela
bernama Type Application Overlay.
Jika Anda menargetkan SDK O, maka ini tipe jendela yang harus Anda gunakan
jika Anda ingin mempunyai kapabilitas jendela lansiran.
Jika Anda punya rilisan awal, tentu saja tidak tersedia.
Anda tak akan bisa memakainya.
Perhatikan bahwa apa pun tipe jendela yang dipakai
akan dilapisi di bawah salah satu tipe jendela hamparan aplikasi
karena kami mempunyai kebijakan hamparan yang jelas ditetapkan dengan itu.
Lebih banyak informasi mengenai itu sore ini jam 5
yaitu Pengujian Latar Belakang dan Wawasan Lain.
Hadirilah jika Anda ingin tahu lebih detail.
Yang terakhir, kami berjanji untuk kembali ke topik ini, kan?
Iya. Ini yang terakhir, kan?
Baiklah.
Kami akan berbicara tentang ini, dan saya pikir
harus ada bunyi drum, kan?
Bagaimana dengan bunyi tepukan di paha?
Bisakah kita melakukan tepukan di paha?
- Baiklah. - Terdengar bagus.
Sayangnya, saya sedang melihat pengatur waktu di panggung
dan saya akan mengatakan bahwa O singkatan dari...
Oh, tidak. Kami kehabisan waktu.
Terima kasih.