Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Android Geliştirici Codelab

Dünya tarihinde en yaygın olarak yüklenmiş işletim sistemini geliştirmeye yardımcı olabilirsiniz. Evet, bir Android platform mühendisi olma yolculuğuna başlamak için buradasınız.

Yol zorlu olsa da, Android ekibi olarak her sürümde yolculuğunuzu basitleştirmeye çalışıyoruz. Ve Android Açık Kaynak Projesi'nde (AOSP) doğrudan çalışma yoluyla her gün iyileştirmeler yapıyoruz.

Öyleyse arkanıza yaslanın, bir terminali ateşleyin ve tarih yazalım.

Hedefler

Bu kod laboratuvarının misyonu iki yönlüdür:

  1. Bu kod laboratuvarı, platform (işletim sistemi) üzerinde çalışan Android mühendisleri için geliştirici iş akışının nasıl olduğuna dair size küçük bir fikir verecektir.
  2. Bu kod laboratuvarı, sıfırdan başlarken Android'in araçları, belgeleri ve geliştirici iş akışı hakkında geri bildirim sağlamanız için zorlayıcı bir işlevdir.

Önkoşullar

Genel platform ( AOSP ) geliştirme için olanlardan türetilen bu kod laboratuvarı için gereksinimlerin tam listesi aşağıda verilmiştir.

Bu kod laboratuvarını almak için şunları ayarlamanız gerekir:

Çevre

Tipik olarak, kullanıcılar iş istasyonunu doğrudan oluşturur ve geliştirir. Çeşitli terminallerde çalışıyor olabileceğinizden ve kullanılan komutların çoğu terminale özgü olduğundan, bunları her terminal oturumunda yeniden çalıştırmanız gerekecektir. Özellikle bunlar source build/envsetup.sh ve lunch komutlarını içerir.

İş istasyonunu kurun

  1. İş istasyonuna gerekli paketleri kurun .
  2. Hala bir terminaldeyken, Repo'yu kurun ve tüm Git depolarına kimlik bilgileri kazanın .

Kodu başlatın ve senkronize edin

  1. Ana dizininize gidin:

    cd ~
    
  2. İçinde yerel bir çalışan alt dizin oluşturun:

    mkdir aosp
    
  3. Dizine gidin:

    cd aosp
    
  4. AOSP veri havuzu kaynak kodu ana dalını başlatın (varsayılan):

    repo init -u https://android.googlesource.com/platform/manifest
    
  5. Git kimlik bilgilerinizi (ad, e-posta adresi) girin veya kabul edin.

  6. Kaynak kodunu senkronize edin:

    repo sync -j16
    

İlk senkronizasyonlar bir saat veya daha fazla sürebilir. Beklerken ilgili ayrıntılar için indirme talimatlarına bakın.

Her depo satın alma işlemi bir bildirim dosyasıyla temsil edilir. Farklı dizinlerde bulunduğu sürece, aynı anda birden fazla depo satın alma işlemine sahip olabilirsiniz. Ancak her ödeme ve derleme miktarının kabaca 300 GB olduğunu ve arttığını unutmayın, bu nedenle kendinizi ikiyle sınırlayın veya ikincil bir sürücü ile sisteminizi artırın.

İpucu: Yer açmak için, bir şube dizinini silin ve dizin oluşturmadan yeniden başlayın:

rm -rf aosp2

Kodu oluşturun

Android oluşturmak için, lunch komutuyla oluşturmak üzere bir hedef cihaz türü seçmelisiniz. Hedefler, belirli bir model veya form faktörü gibi cihaz permütasyonlarıdır.

Aşağıda bulunan cihaz hedefi, aosp_cf_x86_phone-userdebug , Cuttlefish sanal Android cihazını fiziksel bir cihaz olmadan test etmek için oluşturmanıza olanak sağlar.

Bunun yerine fiziksel bir cihaz oluşturmak ve güncellemek için başka bir hedef seçin ve yanıp sönen cihazlar için talimatları izleyin.

  1. Kaynak kod kontrolünüzün kökünden aşağıdaki komutu çalıştırarak Android cihazları oluşturmak için ortamınızı ayarlayın:

    source build/envsetup.sh
    
  2. Oluşturma hedefini öğle yemeği komutuna aktarın:

    lunch aosp_cf_x86_phone-userdebug
    
  3. Aşağıdakilerle ödeme işleminizin herhangi bir yerinden kodu oluşturun :

    m
    

İlk yapının saatler almasını bekleyin. Sonraki derlemeler önemli ölçüde daha az zaman alır.

Acloud örneği oluşturun

Acloud , AOSP'de kullanıcılara sanal Android cihazlar oluşturmada yardımcı olan bir komut satırı aracıdır, bu durumda Cuttlefish.

Kodu oluşturmak için kullanılan aynı terminal oturumundaysanız devam edin. Aksi takdirde, envsetup.sh betiğini ve orada ilk önce kullanılan aynı öğle yemeği komutunu yeniden çalıştırın. Sonra:

  1. Aşağıdakilerle bir Acloud yerel örneği oluşturun:

    acloud create --local-image --local-instance
    
  2. Gerekli paketlerdeki güncellemeleri kabul edin.

  3. İstenirse, tüm değişikliklerin etkili olması için iş istasyonunuzu yeniden başlatın.

  4. Mürekkepbalığı cihazını seçin.

Bir Android cihaz içeren bir VNC oturumu ile karşılanmalısınız!

Farenizi ve klavyenizi kullanarak iş istasyonunuzdaki sanal cihazla etkileşim kurabilirsiniz. Android Debug Bridge (adb) logcat komutuyla cihazınızı kullanırken günlükler içindeki etkinliği de takip edebilirsiniz:

adb logcat

Bir değişiklik yap

Bu örnek değişiklik listesini izleyerek kaynak kodunu güncelleyin.

  1. Satın alma işleminizin ( aosp/ dizin) aosp/ frameworks/native Git projesine gidin:

    cd frameworks/native
    
  2. Aşağıdakilerle geçici bir proje başlatın:

    repo start <some-name> .
    
  3. SurfaceFlinger.cpp güncellemeleri aşağıdaki konumda içerecek şekilde düzenleyin:

    aosp/frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp
    
  4. Kodu oluşturun:

    m
    
  5. Cihazdaki yapıyı güncelleyin:

    adb root
    adb remount
    adb sync
    adb reboot
    acloud reconnect
    

Cihazda bir renk değişikliği görmelisiniz.

Kodunuzu test edin

Codelab'in bu bölümünde, kaynak ağacında bulunan ve zaten başarısız olan bir örnek testten geçeceğiz. Testi yerel olarak çalıştırmak için kodu test etmek için Atest'i kullanacağız.

Testi kullanmak için:

  1. Çalıştırmak:

    atest DevCodelabTest
    
  2. Test başarısız olacak; şimdi düzeltelim! Başarısız olan testin kaynak kodunu bulun:

    atest --info android.test.example.devcodelab.DevCodelabTest#testHelloWorld
    
  3. Sonra içine bakın:

    platform_testing/tests/example/devcodelab
    
  4. Dosyanın düzenlenmesi için testin adını alın ve . / , şöyle:

    android.test.example.devcodelab.DevCodelabTest
    

    Oluyor:

    src/android/test/example/devcodelab/DevCodelabTest.java
    
  5. Bu nedenle düzenleme:

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

    Değiştirmek:

    Assert.assertTrue(false)
    

    İle:

    Assert.assertTrue(true)
    
  6. Testi düzelttiğinizi doğrulamak için testi tekrar çalıştırın:

    atest DevCodelabTest
    

İnceleme için kodunuzu yükleyin

Repo, çok sayıda Git deposunda (veya projede) aynı anda çalışmak için git clone gibi komutları bir araya getirerek Git kullanımını basitleştirir.

Android kaynak koduyla çalışmaya ilişkin tam belgelere bağlantılarla birlikte Git ve Repo'ya genel bakış için Kaynak Kontrol Araçlarına bakın. Git projelerinin tam listesi için AOSP havuzuna ve her projeyle ilişkili dallar için ayrı projelere (yollar) bakın.

Git'teki projeler için Gerrit web tabanlı kod inceleme sistemini kullanacaksınız.

  1. Değişikliklerinizi frameworks/native projede yaptığınızı varsayarsak, bunları yüklemek için şu komutları çalıştırın:

    cd frameworks/native
    repo start codelab .
    git add .
    git commit
    
  2. Kaydetme mesajınız için şunu girin:

    Android codelab change
    Test: manual atest
    
  3. Değişikliğinizi yükleyin:

    repo upload
    

Başarılıysanız, şuna benzer bir mesaj göreceksiniz:

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

Gerrit'teki değişikliğinizi görüntüleyin

Aşağıdakine benzer şekilde terminalde basılı bağlantıya gidin:

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

Bu, Android platform geliştirme için başlangıç ​​kod laboratuvarını tamamlar. Android geliştirmeyle ilgili tüm ayrıntılar için sonraki adımlar için Yama Gönderme bölümüne ve bu sitenin geri kalanına bakın.

Değişikliğinizi geri alın

Normalde, test ve inceleme / onay sonrasında, değişikliğinizi Gerrit'e gönderir ve arşivde birleştirirsiniz.

Bunun yerine, codelab amacıyla, Gerrit içinde terk tıklayarak changeList dönmek.

Ardından çerçeveler / yerel proje dizininde (veya altlarında) ilişkili geçici dalı terk edin:

repo abandon codelab .

Ayrıca, test dosyasındaki değişiklikleri geri almayı da unutmayın. repo start , git commit ve repo upload değişikliği yapmadığımız git commit , sadece dosyanın kendisini bu şekilde sıfırlayabiliriz ( aosp/platform_testing directory olduğunuzu varsayarak):

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

Bu noktada bitirdiniz! İyi iş!

Yardım almak

Bu kod laboratuvarı sırasında hatalarla karşılaşırsanız, lütfen bunları herhangi bir sayfanın altındaki Site geri bildirim bağlantısını kullanarak bildirin. Android oluşturma grubuna sorular gönderin.