Hari ini kami membongkar kuis Android dari konferensi untuk pengembang ponsel Mobius 2018 Moscow.
Formatnya cukup standar: 15 pertanyaan dengan 4 kemungkinan jawaban. Batas waktu 30 detik untuk setiap pertanyaan.

Ayo pergi!
Pertanyaan 1
PenjelasanSemua orang tahu bahwa setiap versi Android yang baru mendapatkan nama kode untuk permen dan ditetapkan dalam urutan abjad (Cupcake, Donat, Eclair, dll.).
Namun, pada awalnya, pengembang berencana untuk menamai versi menggunakan nama robot fiktif. Oleh karena itu, versi Android pertama disebut Astra boy dan Bender . Ini adalah rilis internal sebelum rilis versi 1.0 yang tidak disebutkan namanya. Namun, untuk alasan tertentu, vektor telah berubah dan versi 1.1, diputuskan untuk memanggil Petit Four . Ini adalah versi manis pertama Android. Dan sudah dimulai dengan versi berikutnya (Cupcake 1.5), nama-nama mulai ditugaskan dalam urutan abjad.
Sumber
Pertanyaan 2
PenjelasanDengan dirilisnya API 23 (Marshmallow), Android memperkenalkan konsep baru izin runtime . Fitur ini seharusnya menambah transparansi bagi pengguna untuk izin yang diberikan ke aplikasi. Sebelum rilis "marshmallow", izin dikeluarkan pada saat instalasi aplikasi.
Sumber
Catatan, Android mengandung lebih dari 100 izin unik.
Pertanyaan 3
Penjelasan
mengukur () - dipanggil untuk menentukan persyaratan ukuran Tampilan dan semua anak-anaknya.
onMeasure () - dipanggil dari ukur () untuk melakukan pekerjaan aktual dari ukuran View.
onLayout () - dipanggil untuk menempatkan elemen di dalam sebuah wadah
onDraw () - dipanggil untuk menyajikan konten.
Informasi lebih lanjut tentang rendering View dapat ditemukan di sini .
Pertanyaan 4
PenjelasanTidak ada metode isUserSmell () di SDK. Mungkin di masa depan, dengan munculnya sensor yang sesuai pada perangkat ...
Mari kita lihat apa yang dilakukan oleh sisa metode:
isUserMonkey () - metode ini dirancang untuk memeriksa apakah pengguna adalah tes dalam kerangka uji monyet otomatis.
isUserAGoat () - dimulai dengan API 21, memeriksa apakah aplikasi Goat Simulator GoatZ diinstal. Pada versi di bawah ini, metode ini selalu mengembalikan false. Terletak di kelas android.os.UserManager
.
isFinalCountdown () - metode ini membuka klip band Eropa "The Final Countdown". Menambahkannya ke API 26. Terletak di kelas android.widget.Chronometer
.
Pertanyaan 5
Jawabannya private static final int mobius = 2018
PenjelasanIni menguji pengetahuan kata kunci const
, yang digunakan untuk mendeklarasikan compile time constants
. Di dunia Java, ini sesuai dengan pengubah static final
.
Pertanyaan 6
PenjelasanSementara pengembang telah mendengar xhdpi dan mdpi , semuanya berbeda dengan tvdpi . Itu tidak mendapatkan popularitas, dan karena itu ada sangat sedikit perangkat dalam kategori tvdpi , tetapi mereka. Yang paling terkenal adalah Nexus 7 (2012).
Sumber
Catatan, tvdpi memiliki koefisien 1,3 relatif terhadap mdpi.
Pertanyaan 7
PenjelasanAAPT (Perangkat Pengemasan Aset Android) - Alat Android untuk membuat file .APK.
Secara kondisional, pekerjaan utilitas ini dapat dibagi menjadi dua tahap:
- Kompilasi. Pada tahap ini, sumber daya sedang dipersiapkan: kelas R dihasilkan, sumber daya XML diterjemahkan ke dalam format biner, pemrosesan PNG, dll.
- Pengemasan (menghubungkan). Semua file perantara yang dibuat pada tahap kompilasi dikemas dalam APK.
Adapun opsi jawaban yang tersisa:
- Kebingungan biasanya dilakukan oleh proguard.
- Java bytecode adalah hasil dari Java Compiler, yang menerjemahkan kode sumber ke dalam bytecode Java.
- Bytecode Dalvik adalah hasil dari Dalvik Compiler (DX, D8), yang menerjemahkan .class (Java bytecode) menjadi .dex (bytecode Dalvik). Kode sumber dalam bytecode Dalvik tidak disiarkan secara langsung.
Proses membangun aplikasi Android diuraikan dalam dokumentasi .
Pertanyaan 8
PenjelasanDari yang di atas, RIGHT OUTER JOIN tidak didukung.
Sumber
Pertanyaan 9
PenjelasanNama | Kepadatan |
---|
ldpi | 0,75 |
mdpi | 1 |
tvdpi | 1.3 |
hdpi | 1.5 |
xhdpi | 2 |
xxhdpi | 3 dan 2.6 |
xxxhdpi | 4 dan 3.5 |
Pertanyaan 10
PenjelasanART (Android RunTime) adalah runtime bytecode DEX baru yang menggantikan Dalvik. Perbedaan paling signifikan antara Dalvik dan ART adalah bahwa Dalvik didasarkan pada kompilasi JIT ( Just-in-Time ), sedangkan ART didasarkan pada AOT ( Ahead-of-Time ). Secara umum, ini berarti bahwa Dalvik menerjemahkan kode byte dalvik ke dalam kode mesin setiap kali aplikasi dijalankan, dan ART melakukan ini sekali, selama instalasi aplikasi, menyimpan hasilnya dalam memori perangkat. Ini mengarah pada peluncuran yang lebih cepat dan eksekusi aplikasi pada ART dibandingkan dengan Dalvik, tetapi juga meningkatkan waktu instalasi aplikasi. Selain itu, ART melakukan optimasi GC, dan juga menambahkan sejumlah fungsi untuk meningkatkan pengembangan aplikasi dan debugging.
ART dan Dalvik

Selain itu, perlu dicatat bahwa ART juga mencakup kompiler JIT yang melengkapi AOT. Baca lebih lanjut di sini .
Pertanyaan 11
PenjelasanKISS (Keep It Simple, Stupid) - jangan menyulitkannya!
KERING (Jangan ulangi diri Anda sendiri), DIE (Duplication Is Evil) - jangan ulangi!
WTF (jumlah "chazan" per detik) adalah unit pengukuran kualitas kode untuk ulasan.
YAGNI (Anda tidak akan membutuhkannya) - Anda tidak akan membutuhkannya!
Pertanyaan 12
Jawabannya Application Not Responding
PenjelasanANR (Application Not Responding) - masalah yang terjadi ketika utas utama aplikasi tidak dapat memproses peristiwa pengguna dan menggambar ulang UI.
Di Android, respons suatu aplikasi dipantau oleh layanan sistem ActivityManager
dan WindowManager
. Jika salah satu dari kondisi berikut ini benar:
- tidak ada reaksi terhadap peristiwa input (peristiwa sentuh dan penekanan tombol),
- BroadcastReceiver tidak selesai dalam 10 detik,
maka sistem akan memberi tahu pengguna masalah dengan menunjukkan dialog ANR yang sesuai.
Pertanyaan 13
PenjelasanMeasureSpec dirancang untuk mentransfer persyaratan ukuran dari komponen tampilan induk ke anak. Persyaratan ini dikompilasi dalam dua dimensi: lebar dan tinggi. Nilai untuk masing-masing pengukuran adalah gabungan: bagian pertama berisi informasi tentang ruang yang tersedia (dalam piksel), bagian kedua berisi pembatasan penggunaan ruang yang tersedia. Pembatasan ini dapat meliputi:
MeasureSpec.UNSPECIFIED - tanpa batasan, tampilan dapat mengambil ukuran apa pun yang dibutuhkan.
MeasureSpec.EXACTLY - ukuran pasti didefinisikan, lihat perbatasan ini akan diberikan.
MeasureSpec.AT_MOST - Ukuran maksimum ditentukan. Tampilan bisa sebesar yang diinginkan, tetapi hingga ukuran yang ditentukan.
Pertanyaan 14
Penjelasan
Linux Kernel (Linux kernel) - lapisan ini menyediakan fungsi sistem dan bertanggung jawab untuk keamanan, manajemen memori, proses, dan juga menyediakan tumpukan jaringan dan model driver (Driver Tampilan, Driver Kamera dan driver lainnya).
Libraries (libraries) adalah lapisan menengah perangkat lunak yang dirancang untuk menyediakan fungsionalitas dasar untuk aplikasi seperti dukungan untuk format file, informasi encoding dan decoding (misalnya, codec), rendering grafik, dan banyak lagi (Surface Manager, Media Framework, SQLite dan lainnya).
Android Runtime - terletak di level yang sama dengan Libraries. Komponen utama di sini adalah Dalvik VM dan sejumlah perpustakaan inti (Core Libraries).
Kerangka Aplikasi - tingkat kerangka kerja aplikasi. Melalui kerangka kerja aplikasi, pengembang mendapatkan akses ke API yang terletak di bawah level. Ini termasuk: Activity Manager, Package Manager, Window Manager, dll.
Aplikasi - tingkat aplikasi, baik dasar (pra-instal pada OS: browser, kalender, kontak, dll.), Dan diinstal oleh pengguna.
Catatan, penulis kuis ini adalah sekolah tua, karena dalam dokumentasi resmi, lapisan disorot dengan cara lain: source.android.com/devices/architecture .
Pertanyaan 15
Penjelasangoto - lompat ke instruksi lain.
invokeinterface - digunakan untuk memanggil metode antarmuka.
invokestatic - digunakan untuk memanggil metode statis.
Deskripsi instruksi lainnya .