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şam droid
yok mu, artı her şeyidroid
etiketi. Yapı sunucu emin ağacında ve bir olduğunu her şeyi yapmak için bu çalışırAndroid.mk
dosya oluşturur. -
m
- çalıştırır ağacın tepesinden oluşturur. Çalıştırabileceğiniz çünkü yararlıdırmake
alt dizinleri içinden. Eğer varsaTOP
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şturabilirsinizm
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ırrm -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.