Android Oluşturma

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

Çevreyi kurmak

İle çevreyi başlatın envsetup.sh komut:

source build/envsetup.sh

veya

. build/envsetup.sh

Komut dosyasını Bkz platformu / yapı / envsetup.sh dahil ilgili komutlar, açıklamaları için öğle cihaz hedeflerini ve seçilmesi için tapas gibi ayrıştırılmış uygulamaları, bina referans TV uygulaması .

Her sonra bu komutu yeniden gerekir repo sync o komut herhangi bir değişiklik almaya. O değiştirilmesi Not source ile . (tek nokta) birkaç karakter kaydeder ve kısa biçim daha çok dokümantasyonda kullanılır.

envsetup.sh bu örnekte kullanılan komutları içeren Android kaynak kodu ile çalışmak sağlayacak komut ithalatı birkaç komut.

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

hmm

Bir hedef seçme

öğle yemeği

İle inşa etmek hangi hedef seçin lunch . lunch product_name - build_variant seçer product_name bir yapı için bir ürün olarak ve build_variant yapı için varyant ve mağaza ortamında bu seçimleri olarak müteakip çağrıları tarafından okunabilir m ve benzeri diğer komutlar.

Tam yapılandırma bir argüman olarak iletilebilir. Örneğin, aşağıdaki komut, tüm hata ayıklama etkinleştirilmiş olarak öykünücü için eksiksiz bir derlemeye başvurur:

lunch aosp_arm-eng

Hiçbir değişkeni ile çalıştırırsanız, lunch menüden bir hedef seçmek için yönlendirir. Bkz Bir aygıt yapı seçilmesi tüm mevcut cihazların yapı yapılandırmaları için.

Tüm yapı hedefleri formu almak BUILD-BUILDTYPE , BUILD belirli özellik kombinasyonuna atıfta bir kod adıdır. BUILDTYPE aşağıdakilerden biridir.

yapı türü Kullanmak
kullanıcı Sınırlı erişim; üretim için uygun
kullanıcı hata ayıklama Kullanıcı gibi ama kök erişimi ve hata ayıklama özelliği var; hata ayıklama için tercih edilen
ingilizce Ek hata ayıklama araçlarıyla geliştirme yapılandırması

Kullanıcı hata ayıklama derlemesi, normalde platformun güvenlik modelini ihlal eden ek hata ayıklamayı etkinleştirme yeteneğiyle, kullanıcı derlemesiyle aynı şekilde davranmalıdır. Bu, kullanıcı hata ayıklamasının daha iyi tanılama yetenekleriyle kullanıcı testi için iyi olmasını sağlar. Userdebug yapı ile geliştirirken, izleyin userdebug kurallarına .

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

Gerçek donanım üzerinde için inşa ve çalıştırma hakkında daha fazla bilgi için bkz Yanıp sönen Cihazları .

tapas

tapas yapılandıran ayrıştırılmış uygulamaların yapı komutu. Android derleme sistemi tarafından oluşturulacak uygulamaları tek tek seçer. Aksine lunch , tapas bir cihaz için görüntülerin binayı istemez.

Run tapas help komutu hakkında daha fazla bilgi için.

Kodu oluşturma

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

İle Yapı herşey m . m bir paralel görevleri işleyebilir -jN argüman. Bir girmezseniz -j argüman, yapı sistemi otomatik bu sistem için en uygun olduğunu düşündüğü bir paralel görev sayımını seçer.

m

Yukarıda açıklandığı gibi, kendi adlarını listeleyerek yerine tam cihaz görüntünün belirli modüller inşa edebilirsiniz m komut satırı. Buna ek olarak, m özel amaçlar için bazı pseudotargets sağlar. Bazı örnekler:

  • droid - m droid Normal oluşturmak. Bu hedef, varsayılan hedef bir ad gerektirdiği için burada.
  • all - m all o şeyi inşa m droid yok mu, artı her şeyi droid etiketi. Yapı sunucu emin ağacında ve bir olduğunu her şeyi yapmak için bu çalışır Android.mk dosya oluşturur.
  • m - çalıştırır ağacın tepesinden oluşturur. Çalıştırabileceğiniz çünkü yararlıdır make alt dizinleri içinden. Eğer varsa TOP ortam değişkeni kümesi, o kullanır. Bunu yapmazsanız, mevcut dizinden ağacı arar ve ağacın tepesini bulmaya çalışır. 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 modüllerin tüm oluşturur ve bunların bağımlılıkları.
  • mmma - sağlanan dizinleri modüllerin tüm oluşturur ve bunların bağımlılıkları.
  • croot - cd ağacın üstüne.
  • clean - m clean bütün bu yapılandırma için çıktı ve ara dosyaların siler. Bu aynıdır rm -rf out/ .

Run m help diğer pseudotargets ne olduğunu görmek için m sağlar.

Derlemeyi çalıştırma

Derlemenizi bir emülatörde çalıştırabilir veya bir cihazda flaş edebilirsiniz. Zaten ile inşa hedef seçtikten Çünkü lunch , bunun için inşa edilmiş farklı bir hedef üzerinde çalıştırmak için düşüktür.

Fastboot ile yanıp sönme

Bir cihazı yanıp için kullanmak fastboot başarılı bir yapý sonra yoluna dahil edilmelidir. Bkz bir cihaz sönen talimatlar için.

Bir Android cihazını taklit etme

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

emulator

Yapı parmak izlerini anlama

Belirli bir Android derlemesine bağlı sorunları izlemek ve bildirmek için derleme parmak izini anlamak önemlidir. Yapı parmak izi, her yapıya verilen üretici bilgilerini içeren benzersiz, insan tarafından okunabilir bir dizedir. İçinde FINGERPRINT açıklamasına bakın Yapı Parametreleri kesin sözdizimi için Android Uyumluluk Tanımı Belgesi (CDD) bölümünde.

Yapı 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ı bildirmelerine olanak tanır. Bkz Bugs Raporlama Android konu raporlama süreci için.

Bir yapı parmak izi, tüm Android uygulama ayrıntılarını kapsar:

  • API'ler: Android ve yerel, ayrıca yumuşak API davranışları
  • Çekirdek API ve bazı sistem kullanıcı arabirimi davranışı
  • CDD'de tanımlanan uyumluluk ve güvenlik gereksinimleri
  • Ürün özellikleri ve kullanımları-özelliği beklenen şartları yerine hedef cihazlara uygulamalar tarafından kullanılan ayar
  • Donanım ve yazılım bileşenlerinin uygulamaları

Bkz CDD tüm ayrıntılar için ve bir Yeni Cihaz Ekleme tamamen yeni bir Android cihazı oluşturma konusunda talimatlar için.

Sık karşılaşılan 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
************************************************************

İşte olası nedenler ve çözümler:

  • Belirtilen doğru JDK yüklemek için Başarısızlık JDK gereksinimleri . Yap emin adımlar izlediyseniz ortamı oluşturulması ve hedef seçme .
  • Yolunuzda görünen, önceden yüklenmiş başka bir JDK. Yolunuzun başına doğru JDK'yı ekleyin veya sorunlu JDK'yı kaldırın.

USB izni yok

Çoğu Linux sisteminde varsayılan olarak, ayrıcalığı olmayan kullanıcılar USB bağlantı noktalarına erişemez. Bir reddedildi hatası görürseniz, yönergeleri izleyin USB erişiminin yapılandırılması .

Eğer ADB zaten çalışıyor ve kurmak bu kuralları aldıktan sonra cihaza bağlanmak edemez, onu öldürebilir adb kill-server . Bu komut, ADB'nin yeni yapılandırmayla yeniden başlatılmasına neden olur.