Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Codelab Pengembang Android

Anda dapat membantu mengembangkan sistem operasi yang paling banyak dipasang dalam sejarah Bumi. Ya, Anda di sini untuk memulai perjalanan menjadi insinyur platform Android.

Meskipun jalurnya menantang, kami tim Android berusaha untuk menyederhanakan perjalanan Anda setiap rilis. Dan kami melakukan peningkatan setiap hari melalui pekerjaan langsung di Proyek Sumber Terbuka Android (AOSP).

Jadi duduk, nyalakan terminal, dan mari buat sejarah.

Tujuan

Misi dari codelab ini ada dua:

  1. Codelab ini akan memberi Anda gambaran kecil tentang seperti apa alur kerja pengembang untuk insinyur Android yang bekerja di platform (sistem operasi).
  2. Codelab ini adalah fungsi yang memaksa Anda untuk memberikan umpan balik seputar alat Android, dokumentasi, dan alur kerja pengembang saat memulai dari awal.

Prasyarat

Berikut adalah daftar lengkap persyaratan untuk codelab ini, yang diturunkan dari persyaratan untuk pengembangan platform umum ( AOSP ).

Untuk mengambil codelab ini, Anda perlu menyiapkan:

Lingkungan Hidup

Biasanya, pengguna membangun dan mengembangkan workstation secara langsung. Karena Anda mungkin bekerja di berbagai terminal, dan banyak perintah yang digunakan khusus untuk terminal, Anda perlu menjalankannya kembali di setiap sesi terminal. Secara khusus, ini termasuk source build/envsetup.sh , dan perintah lunch .

Siapkan workstation

  1. Instal paket yang diperlukan di workstation.
  2. Saat masih di terminal, instal Repo dan dapatkan kredensial ke semua repositori Git.

Inisialisasi dan sinkronkan kode

  1. Arahkan ke direktori home Anda:

    cd ~
    
  2. Buat subdirektori lokal yang berfungsi di dalamnya:

    mkdir aosp
    
  3. Arahkan ke direktori:

    cd aosp
    
  4. Inisialisasi cabang master kode sumber repositori AOSP (default):

    repo init -u https://android.googlesource.com/platform/manifest
    
  5. Masukkan atau terima kredensial Git Anda (nama, alamat email).

  6. Sinkronkan kode sumber:

    repo sync -j16
    

Sinkronisasi awal membutuhkan waktu satu jam atau lebih. Lihat petunjuk pengunduhan untuk detail terkait sambil menunggu.

Setiap pembayaran repo diwakili oleh file manifes . Anda mungkin memiliki lebih dari satu pembayaran repo pada satu waktu selama mereka ada di direktori yang berbeda. Tetapi perhatikan setiap pembayaran dan jumlah build hingga sekitar 300GB dan terus bertambah, jadi batasi diri Anda pada dua atau tingkatkan sistem Anda dengan drive sekunder.

Tip: Untuk mengosongkan ruang, hapus direktori cabang dan mulai lagi dari pembuatan direktori:

rm -rf aosp2

Bangun kodenya

Untuk membangun Android, Anda harus memilih jenis perangkat target yang akan dibangun dengan perintah lunch . Target adalah permutasi perangkat, seperti model atau faktor bentuk tertentu.

Target perangkat yang disertakan di bawah, aosp_cf_x86_phone-userdebug , memungkinkan Anda membangun perangkat Android virtual Sotong untuk pengujian tanpa perangkat fisik.

Untuk membuat dan memperbarui perangkat fisik, pilih target lain dan ikuti petunjuk untuk mem - flash perangkat .

  1. Siapkan lingkungan Anda untuk membuat perangkat Android dengan menjalankan perintah berikut dari root checkout kode sumber Anda:

    source build/envsetup.sh
    
  2. Teruskan target build ke perintah makan siang, seperti ini:

    lunch aosp_cf_x86_phone-userdebug
    
  3. Buat kode dari mana saja di pembayaran Anda dengan:

    m
    

Harapkan build pertama membutuhkan waktu berjam-jam. Pembangunan selanjutnya membutuhkan waktu yang jauh lebih sedikit.

Buat instance Acloud

Acloud adalah alat baris perintah di AOSP yang membantu pengguna dalam membuat perangkat Android virtual, dalam hal ini Sotong.

Jika Anda berada di sesi terminal yang sama dengan yang digunakan untuk membuat kode , lanjutkan. Jika tidak, jalankan kembali skrip envsetup.sh dan perintah makan siang yang sama yang digunakan di sana terlebih dahulu. Kemudian:

  1. Buat instance lokal Acloud dengan:

    acloud create --local-image --local-instance
    
  2. Terima pembaruan untuk paket yang diperlukan.

  3. Jika diminta, mulai ulang workstation Anda agar semua perubahan diterapkan.

  4. Pilih perangkat Sotong.

Anda akan disambut dengan sesi VNC yang berisi perangkat Android!

Anda dapat berinteraksi dengan perangkat virtual di workstation Anda menggunakan mouse dan keyboard. Anda juga dapat mengikuti aktivitas dalam log saat menggunakan perangkat dengan perintah logcat Android Debug Bridge (adb):

adb logcat

Membuat perubahan

Perbarui kode sumber mengikuti daftar perubahan contoh ini.

  1. Dari root checkout Anda (direktori aosp/ ), buka frameworks/native Git project:

    cd frameworks/native
    
  2. Mulai proyek sementara dengan:

    repo start <some-name> .
    
  3. Edit SurfaceFlinger.cpp untuk menyertakan pembaruan dari daftar perubahan di lokasi berikut ini:

    aosp/frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp
    
  4. Buat kode:

    m
    
  5. Perbarui build di perangkat:

    adb root
    adb remount
    adb sync
    adb reboot
    acloud reconnect
    

Anda akan melihat perubahan warna pada perangkat.

Uji kode Anda

Selama bagian codelab ini, kita akan menjalankan pengujian contoh yang ada di pohon sumber dan sudah gagal. Untuk menjalankan pengujian secara lokal, kami akan menggunakan Atest untuk menguji kode.

Untuk menggunakan tes:

  1. Lari:

    atest DevCodelabTest
    
  2. Tes akan gagal; sekarang mari kita perbaiki! Temukan kode sumber dari tes yang gagal:

    atest --info android.test.example.devcodelab.DevCodelabTest#testHelloWorld
    
  3. Kemudian lihat ke dalam:

    platform_testing/tests/example/devcodelab
    
  4. Untuk file yang akan diedit, ambil nama pengujian dan ganti . dengan / , seperti ini:

    android.test.example.devcodelab.DevCodelabTest
    

    Menjadi:

    src/android/test/example/devcodelab/DevCodelabTest.java
    
  5. Jadi edit:

    platform_testing/tests/example/devcodelab/src/android/test/example/devcodelab/DevCodelabTest.java
    

    Untuk menggantikan:

    Assert.assertTrue(false)
    

    Dengan:

    Assert.assertTrue(true)
    
  6. Jalankan pengujian lagi untuk memverifikasi bahwa Anda telah memperbaiki pengujian:

    atest DevCodelabTest
    

Unggah kode Anda untuk ditinjau

Repo menyederhanakan penggunaan Git dengan menggabungkan perintah seperti git clone untuk bekerja di banyak repositori Git (atau proyek) sekaligus.

Lihat Alat Kontrol Sumber untuk ikhtisar Git dan Repo dengan tautan ke dokumentasi lengkap tentang bekerja dengan kode sumber Android. Lihat repositori AOSP untuk daftar lengkap proyek Git dan masing-masing proyek (jalur) untuk cabang yang terkait dengan setiap proyek.

Anda akan menggunakan sistem tinjauan kode berbasis web Gerrit untuk proyek-proyek di Git.

  1. Dengan asumsi Anda membuat perubahan dalam frameworks/native proyek frameworks/native , jalankan perintah ini untuk mengunggahnya:

    cd frameworks/native
    repo start codelab .
    git add .
    git commit
    
  2. Untuk pesan komit Anda masukkan:

    Android codelab change
    Test: manual atest
    
  3. Unggah perubahan Anda:

    repo upload
    

Jika berhasil, Anda akan melihat pesan seperti:

Upload project frameworks/native/ to remote branch master:
  branch codelab ( 1 commit, Wed Aug 7 09:32:33 2019 -0700):
         ff46b36d android codelab change
to https://android-review.googlesource.com/ (y/N)? y
remote: Processing changes: refs: 1, new: 1, done
remote:
remote: SUCCESS
remote:
remote:   https://android-review.googlesource.com/c/platform/frameworks/native/+/1098432 android codelab change [NEW]
remote:
To https://android-review.googlesource.com/platform/frameworks/native
 * [new branch]          codelab -> refs/for/master

Lihat perubahan Anda di Gerrit

Buka tautan yang dicetak di terminal seperti:

https://android-review.googlesource.com/c/platform/frameworks/native/+/1098432

Ini melengkapi codelab pemula untuk pengembangan platform Android. Lihat Mengirimkan Tambalan untuk langkah selanjutnya dan bagian lain dari situs ini untuk detail lengkap tentang mengembangkan Android.

Kembalikan kembalian Anda

Biasanya, setelah pengujian dan tinjauan / persetujuan, Anda akan mengirimkan perubahan Anda di Gerrit dan menggabungkannya ke dalam repositori.

Sebagai gantinya, untuk keperluan codelab, kembalikan daftar perubahan Anda dengan mengklik Abaikan di Gerrit.

Kemudian tinggalkan cabang sementara terkait di direktori framework / project asli (atau subsnya):

repo abandon codelab .

Ingat juga untuk mengembalikan perubahan ke file tes. Karena kami tidak repo start , git commit , dan repo upload perubahan, kami hanya dapat mengatur ulang file itu sendiri, seperti itu (dengan asumsi Anda berada di aosp/platform_testing directory ):

git reset HEAD tests/example/devcodelab/src/android/test/example/devcodelab/DevCodelabTest.java
git checkout .

Pada titik ini, Anda sudah selesai! Kerja bagus!

Mendapatkan bantuan

Jika Anda mengalami kesalahan selama codelab ini, harap laporkan menggunakan tautan umpan balik Situs di bagian bawah halaman mana pun. Kirim pertanyaan ke grup pembangun android .