Google berkomitmen untuk memajukan ekuitas ras untuk komunitas kulit hitam. Lihat bagaimana.
Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Codelab Pengembang Android

Anda dapat membantu mengembangkan sistem operasi yang paling banyak diinstal 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 kerja langsung di Android Open Source Project (AOSP).

Jadi duduk, nyalakan terminal, dan mari kita buat sejarah.

Tujuan

Misi codelab ini ada dua:

  1. Codelab ini akan memberi Anda sedikit rasa seperti apa alur kerja pengembang untuk insinyur Android yang bekerja pada platform (sistem operasi).
  2. Codelab ini adalah fungsi pemaksaan bagi Anda untuk memberikan umpan balik seputar alat, dokumentasi, dan alur kerja pengembang Android saat memulai dari awal.

Prasyarat

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

Untuk mengambil codelab ini, Anda perlu mengatur:

Lingkungan Hidup

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

Siapkan workstation

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

Inisialisasi dan sinkronisasi kode

  1. Navigasikan ke direktori home Anda:

     cd ~
     
  2. Buat subdirektori kerja lokal 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 dapat memakan waktu satu jam atau lebih. Lihat instruksi pengunduhan untuk detail terkait saat Anda menunggu.

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

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

 rm -rf aosp2
 

Buat kodenya

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

Target perangkat yang termasuk di bawah ini, aosp_cf_x86_phone-userdebug , memungkinkan Anda membuat perangkat Android virtual Cuttlefish untuk pengujian tanpa perangkat fisik.

Untuk membangun dan memperbarui perangkat fisik, pilih target lain dan ikuti instruksi untuk memasang perangkat .

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

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

     lunch aosp_cf_x86_phone-userdebug
     
  3. Bangun kode dari mana saja di checkout Anda dengan:

     m
     

Harapkan bangunan pertama membutuhkan waktu berjam-jam. Pembangunan selanjutnya membutuhkan waktu lebih sedikit.

Buat contoh Acloud

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

Jika Anda berada di sesi terminal yang sama yang digunakan untuk membangun kode , lanjutkan. Jika tidak, jalankan kembali skrip envsetup.sh dan perintah makan siang yang sama yang digunakan 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, restart workstation Anda agar semua perubahan berlaku.

  4. Pilih perangkat Cuttlefish.

Anda harus disambut dengan sesi VNC yang berisi perangkat Android!

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

 adb logcat
 

Membuat perubahan

Perbarui kode sumber mengikuti contoh daftar perubahan ini .

  1. Dari akar checkout Anda ( aosp/ direktori), navigasikan ke proyek frameworks/native Git:

     cd frameworks/native
     
  2. Mulai proyek sementara dengan:

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

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

     m
     
  5. Perbarui build pada 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 melalui contoh uji yang ada di pohon kode dan sudah gagal. Untuk menjalankan tes 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 gagal:

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

     platform_testing/tests/example/devcodelab
     
  4. Agar file dapat diedit, ambil nama tes dan ganti . dengan / , seperti:

     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 tes lagi untuk memverifikasi Anda memperbaiki tes:

     atest DevCodelabTest
     

Unggah kode Anda untuk ditinjau

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

Lihat Alat Kontrol Sumber untuk ikhtisar Git dan Repo dengan tautan ke dokumentasi lengkap tentang cara kerja dengan kode sumber Android. Lihat repositori AOSP untuk daftar lengkap proyek Git dan proyek individu (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 Anda berhasil, Anda akan melihat pesan yang menyerupai:

 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 menyerupai:

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

Ini melengkapi codelab starter untuk pengembangan platform Android. Lihat Mengirimkan Patch untuk langkah selanjutnya dan sisanya dari situs ini untuk detail lengkap tentang pengembangan Android.

Kembalikan perubahan Anda

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

Alih-alih, untuk keperluan codelab, kembalikan daftar perubahan Anda dengan mengeklik Abaikan di Gerrit.

Kemudian tinggalkan cabang sementara terkait dalam direktori framework / proyek asli (atau subsnya):

 repo abandon codelab .
 

Ingat juga untuk mengembalikan perubahan ke file uji. 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 selesai! Kerja bagus!

Mendapatkan bantuan

Jika Anda menemukan kesalahan selama codelab ini, silakan laporkan menggunakan tautan umpan balik Situs di bagian bawah halaman mana pun. Kirim pertanyaan ke grup pembuat -android .