Google 致力于为黑人社区推动种族平等。查看具体举措
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Android Oluşturma

Android'i oluşturmaya başlamak için bu talimatları izleyin.

Ortamı kurma

Ortamı envsetup.sh :

source build/envsetup.sh

veya

. build/envsetup.sh

Cihaz hedeflerini seçmek için öğle yemeği ve referans TV uygulaması gibi gruplandırılmamış uygulamalar oluşturmak için tapas dahil olmak üzere ilgili komutların açıklamaları için platform / build / envsetup.sh'deki komut dosyasına bakın.

Bu komut dosyasındaki herhangi bir değişikliği almak için her repo sync sonra bu komutu yeniden yayınlamanız gerekir. source ile değiştirmenin . (tek bir nokta) birkaç karakter kaydeder ve kısa biçim daha çok belgelerde kullanılır.

envsetup.sh betiği, bu alıştırmada kullanılan komutlar da dahil olmak üzere, Android kaynak koduyla çalışmanıza olanak tanıyan çeşitli komutları içe aktarır.

Kullanılabilir komutların tam listesini görmek için şunu çalıştırın:

hmm

Bir hedef seçmek

öğle yemeği

lunch ile hangi hedefi inşa edeceğinizi seçin. lunch product_name - build_variant , oluşturulacak ürün olarak product_name ve build_variant varyant olarak lunch product_name - build_variant seçer ve bu seçimleri, m ve diğer benzer komutların sonraki çağrıları tarafından okunmak üzere ortamda depolar.

Kesin konfigürasyon bir argüman olarak aktarılabilir. Örneğin, aşağıdaki komut, tüm hata ayıklamanın etkin olduğu, öykünücü için eksiksiz bir derlemeye başvurur:

lunch aosp_arm-eng

Bağımsız değişken olmadan çalıştırılırsa, lunch menüden bir hedef seçmenizi ister. Mevcut tüm cihazların yapı yapılandırmaları için bir cihaz derlemesi seçme bölümüne bakın.

Tüm yapı hedefleri BUILD-BUILDTYPE biçimini BUILD-BUILDTYPE ; burada BUILD , belirli özellik kombinasyonuna atıfta bulunan bir kod adıdır. BUILDTYPE aşağıdakilerden biridir.

Yapı türü Kullanım
kullanıcı Sınırlı erişim; üretim için uygun
kullanıcı hatası ayıklama Kullanıcı gibi, ancak kök erişimi ve hata ayıklama özelliğine sahip; hata ayıklama için tercih edilir
ingilizce Ek hata ayıklama araçlarıyla geliştirme yapılandırması

Kullanıcı hatası ayıklama derlemesi, normalde platformun güvenlik modelini ihlal eden ek hata ayıklamayı etkinleştirme becerisiyle, kullanıcı derlemesiyle aynı şekilde davranmalıdır. Bu, userdebug'ın daha fazla tanılama yetenekleriyle kullanıcı testi için iyi bir yapı oluşturmasını sağlar. Userdebug derlemesiyle geliştirme yaparken, userdebug yönergelerini izleyin .

Eng build, platformda çalışan mühendisler için mühendislik üretkenliğine öncelik verir. Eng yapısı, iyi bir kullanıcı deneyimi sağlamak için kullanılan çeşitli optimizasyonları kapatır. Aksi takdirde, eng derlemesi, kullanıcı ve userdebug yapılarına benzer davranışa sahiptir, böylece cihaz geliştiricileri, kodun bu ortamlarda nasıl davrandığını görebilir.

Gerçek donanım için geliştirme ve bu donanım üzerinde çalıştırma hakkında daha fazla bilgi için bkz. Yanıp Sönen Aygıtlar .

tapas

tapas komutu, gruplanmamış uygulamaların yapısını yapılandırır. Android derleme sistemi tarafından oluşturulacak bireysel uygulamaları seçer. lunch farklı olarak tapas , bir cihaz için görüntülerin oluşturulmasını talep etmez.

Komut hakkında daha fazla bilgi için tapas help çalıştırın.

Kodu oluşturma

Bu bölüm, kurulumun tamamlandığından emin olmak için hızlı bir özettir.

Her şeyi m ile inşa edin. m , -jN bağımsız değişkeniyle paralel görevleri gerçekleştirebilir. Bir -j bağımsız değişkeni sağlamazsanız, derleme sistemi otomatik olarak sisteminiz için en uygun olduğunu düşündüğü bir paralel görev sayısı seçer.

m

Yukarıda açıklandığı gibi, m komut satırınızda adlarını listeleyerek tam cihaz görüntüsü yerine belirli modüller oluşturabilirsiniz. Ayrıca m , özel amaçlar için bazı sözde hedefler sağlar. Bazı örnekler:

  • droid - m droid normal yapıdır. Bu hedef buradadır çünkü varsayılan hedef bir ad gerektirir.
  • all - m all , m droid yaptığı her şeyi artı droid etiketine sahip olmayan her şeyi oluşturur. Derleme sunucusu, ağaçtaki her şeyin ve bir Android.mk dosyası Android.mk sahip olduğundan emin olmak için bunu çalıştırır.
  • m - Yapıları ağacın tepesinden çalıştırır. Bu kullanışlıdır çünkü make komutunu alt dizinlerden çalıştırabilirsiniz. TOP ortam değişkenine sahipseniz, bunu kullanır. Bunu yapmazsanız, ağacın tepesini bulmaya çalışarak geçerli dizinden ağaca bakar. Ya çalıştırarak tüm kaynak kodu ağacı oluşturabilirsiniz m isimlerini belirterek argümanlar veya yapı belirli hedefler olmadan.
  • mma - Geçerli dizindeki tüm modülleri ve bunların bağımlılıklarını oluşturur.
  • mmma - Sağlanan dizinlerdeki tüm modülleri ve bunların bağımlılıklarını oluşturur.
  • croot - ağacın tepesine cd .
  • clean - m clean , bu yapılandırma için tüm çıktı ve ara dosyaları siler. Bu, rm -rf out/ aynıdır.

Diğer sözde hedeflerin m sağladığını görmek için m help komutunu çalıştırın.

Derlemeyi çalıştırma

Yapınızı bir emülatörde çalıştırabilir veya bir cihazda flaş edebilirsiniz. Yapı hedefinizi lunch zaten seçtiğiniz için, inşa edildiğinden farklı bir hedef üzerinde koşma olasılığı düşüktür.

Fastboot ile yanıp sönüyor

Bir cihazı fastboot , başarılı bir fastboot sonra yolunuza dahil edilmesi gereken fastboot kullanın. Talimatlar için bkz. Cihazın yanıp sönmesi .

Bir Android cihazı taklit etme

Öykünücü, oluşturma işlemi tarafından otomatik olarak yolunuza eklenir. Öykünücüyü çalıştırmak için şunu yazın:

emulator

Derleme parmak izlerini anlama

Belirli bir Android yapısına bağlı sorunları izlemek ve bildirmek için derleme parmak izini anlamak önemlidir. Derleme parmak izi, her derleme için verilen üretici bilgilerini içeren benzersiz, insan tarafından okunabilir bir dizedir. Kesin sözdizimi için Android Uyumluluk Tanım Belgesinin (CDD) Oluşturma Parametreleri bölümündeki PARMAK İZİ açıklamasına bakın.

Derleme parmak izi, belirli bir Android uygulamasını ve revizyonunu temsil eder. Bu benzersiz anahtar, uygulama geliştiricilerinin ve diğerlerinin belirli ürün yazılımı sürümleriyle ilgili sorunları bildirmesine olanak tanır. Android sorun bildirme süreci için Hataları Bildirme bölümüne bakın.

Derleme parmak izi, tüm Android uygulama ayrıntılarını içerir:

  • API'ler: Android ve yerel, yanı sıra yazılım API davranışları
  • Çekirdek API ve bazı sistem kullanıcı arayüzü davranışları
  • CDD'de tanımlanan uyumluluk ve güvenlik gereksinimleri
  • Beklenen gereksinimleri karşılayan cihazları hedeflemek için uygulamalar tarafından kullanılan ürün özellikleri ve kullanım özelliği ayarı
  • Donanım ve yazılım bileşenlerinin uygulamaları

Tüm ayrıntılar için CDD'ye ve tamamen yeni bir Android cihaz oluşturmayla ilgili talimatlar için Yeni Bir Cihaz Ekleme'ye bakın.

Yaygın derleme hatalarını giderme

Yanlış Java sürümü

Eğer Java, sürümü ile tutarsız bir Android sürümünü kurmak çalışıyorsanız make gibi bir mesaj ile iptal:

************************************************************
You are attempting to build with the incorrect version
of java.

Your version is: WRONG_VERSION.
The correct version is: RIGHT_VERSION.

Please follow the machine setup instructions at
    https://source.android.com/source/initializing.html
************************************************************

Olası nedenler ve çözümler şunlardır:

Büyük / küçük harfe duyarlı olmayan dosya sistemi

MacOS'ta bir HFS dosya sistemi üzerine inşa ediyorsanız, aşağıdaki gibi bir hatayla karşılaşabilirsiniz:

************************************************************
You are building on a case-insensitive filesystem.
Please move your source tree to a case-sensitive filesystem.
************************************************************

Büyük / küçük harfe duyarlı bir disk görüntüsü oluşturma bölümündeki talimatları izleyin.

USB izni yok

Çoğu Linux sisteminde varsayılan olarak, ayrıcalıksız kullanıcılar USB bağlantı noktalarına erişemez. İzin verilmedi hatası görürseniz, USB erişimini yapılandırma bölümündeki talimatları izleyin.

ADB zaten çalışıyorsa ve bu kuralları ayarladıktan sonra cihaza bağlanamıyorsa, adb kill-server ile onu adb kill-server . Bu komut, ADB'nin yeni yapılandırmayla yeniden başlamasına neden olur.