27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main
yerine android-latest-release
kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
Android platform testi
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Android Açık Kaynak Projesi (AOSP), uygulamanızın çeşitli bölümlerini test etmek için çeşitli araçlar ve test paketleri sağlar. Bu bölümdeki sayfaları kullanmadan önce aşağıdaki terimler hakkında bilgi sahibi olmanız gerekir:
- Android uyumlu cihaz
- Android SDK'sını ve NDK'yı kullanarak üçüncü taraf geliştiriciler tarafından yazılan tüm üçüncü taraf uygulamalarını çalıştırabilen bir cihaz. Android uyumlu cihazlar, Uyumluluk Tanımlama Belgesi (CDD)'nin koşullarına uymalı ve Uyumluluk Test Paketi (CTS)'nden geçmelidir. Android uyumlu cihazlar, Google Play'in olası lisansı, Google Mobil Hizmetleri (GMS) uygulama ve API paketinin olası lisansı ve Android ticari markasının kullanımı da dahil olmak üzere Android ekosistemine katılmaya uygundur. Android kaynak kodunu herkes kullanabilir ancak bir cihazın Android ekosisteminin bir parçası olarak kabul edilebilmesi için Android uyumlu olması gerekir.
- yapı
- Yerel sorun gidermeyi sağlayan, derlemeyle ilgili bir günlük.
- Uyumluluk Tanımlama Belgesi (CDD)
- Android uyumlu bir cihazın yazılım ve donanım şartlarını belirten bir doküman.
- Uyumluluk Test Paketi (CTS)
AOSP'de ikili veya kaynak olarak indirilebilen, ticari sınıfa ait ücretsiz bir test paketi. CTS, günlük iş akışınıza entegre edilmek üzere tasarlanmış bir birim testi grubudur. CTS'nin amacı, uyumsuzlukları ortaya çıkarmak ve yazılımın geliştirme süreci boyunca uyumlu kalmasını sağlamaktır.
CTS ve platform testleri birlikte kullanılabilir. Aşağıda bazı genel yönergeler verilmiştir:
- Bir test, çerçeve API işlevlerinin veya davranışlarının doğruluğunu doğruluyorsa ve test OEM iş ortakları genelinde uygulanacaksa CTS'de olmalıdır.
- Platform geliştirme sırasında geriye gidişleri yakalamayı amaçlayan ve yürütülmesi için ayrıcalıklı izin gerektiren ve uygulama ayrıntılarına (AOSP'de yayınlandığı şekilde) bağlı olabilecek bir test, platform testi olmalıdır.
- Google Mobil Hizmetleri (GMS)
Cihazlara önceden yüklenebilir Google uygulamaları ve API'leri koleksiyonu.
- GoogleTest (GTest)
C++ test ve taklit çerçevesi. GTest ikili dosyaları genellikle daha düşük düzey soyutlama katmanlarına erişir veya çeşitli sistem hizmetlerine karşı ham IPC gerçekleştirir. GTest'in test yaklaşımı genellikle test edilen hizmetle sıkı bir şekilde bağlıdır. CTS, GTest çerçevesini içerir.
- enstrümantasyon testi
am instrument
komutu tarafından başlatılan özel bir test yürütme ortamı. Bu ortamda, hedeflenen uygulama işlemi yeniden başlatılır ve temel uygulama bağlamıyla başlatılır. Ayrıca, uygulama işlemi sanal makinesinin içinde bir enstrümantasyon iş parçacığı başlatılır. CTS, araç testlerini içerir.
- Logcat
Cihazın hata verdiğinde oluşan yığın izlemeleri ve uygulamanızdan Log
sınıfıyla yazdığınız mesajlar da dahil olmak üzere sistem mesajlarının günlüğünü oluşturan bir komut satırı aracı.
- logging
Hatalar gibi bilgisayar sistemi etkinliklerini takip etmek için günlük kullanma Android'de günlük kaydı, Logcat aracında birleştirilen standartların karışımı nedeniyle karmaşıktır.
- postsubmit test
Ortak bir çekirdek dalına yeni bir yama bağlandığında gerçekleştirilen bir Android testi. Kısmi dal adı olarak aosp_kernel
yazarak, mevcut sonuçları içeren çekirdek dallarının listesini görebilirsiniz. Örneğin, android-mainline
için sonuçları https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid adresinde bulabilirsiniz.
- ön gönderim testi
Ortak çekirdeklere hataların girmesini önlemek için kullanılan bir test.
- Ticaret Federasyonu
Android cihazlarda test çalıştırmak için tasarlanmış sürekli bir test çerçevesi olan Tradefed olarak da bilinir. Örneğin, Tradefed, Compatibility Test Suite ve Vendor Test Suite testlerini çalıştırmak için kullanılır.
- Satıcı Test Paketi (VTS)
Android testi için kapsamlı bir özellik grubu, test odaklı geliştirme sürecini destekleme ve donanım soyutlama katmanı (HAL) ile OS çekirdek testini otomatikleştirme.
Platform testi türleri
Platform testi genellikle Android sistem hizmetlerinden veya HAL katmanlarından biriyle veya daha fazlasıyla etkileşime geçer, test edilen öznenin işlevlerini çalıştırır ve test sonucunun doğruluğunu onaylar. Platform testleri:
- (1. Tür) Android çerçevesini kullanarak çerçeve API'lerini çalıştırın. Kullanılan belirli API'ler şunlardır:
- Üçüncü taraf uygulamalarına yönelik herkese açık API'ler
- Ayrıcalıklı uygulamalara yönelik gizli API'ler (ör. sistem API'leri veya özel API'ler (
@hide
, protected
, package private
))
- (2. Tür) Android sistem hizmetlerini doğrudan ham bağlayıcı veya IPC proxy'lerini kullanarak çağırın.
- (3. Tür) Düşük düzey API'ler veya IPC arayüzleri kullanarak doğrudan HAL'lerle etkileşim kurun.
1. ve 2. tür testler genellikle enstrümantasyon testleri, 3. tür testler ise genellikle GTest'lerdir.
Sırada ne var?
Daha ayrıntılı bilgi için okuyabileceğiniz dokümanların listesi aşağıda verilmiştir:
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-27 UTC."],[],[],null,["# Android platform testing\n\nAndroid Open Source Project (AOSP) provides several tools and test suites\nfor testing various parts of your implementation. Before using the pages in this\nsection, you should be familiar with the following terms:\n\n*Android-compatible device*\n: A device that can run any third-party app written by third-party developers\n using the Android SDK and NDK. Android-compatible devices must adhere to the\n requirements of the\n [Compatibility Definition Document (CDD)](#CDD) and pass the\n [Compatibility Test Suite (CTS)](#cts). Android-compatible\n devices are eligible to participate in the Android ecosystem, which includes\n potential licensure of Google Play, potential licensure of the\n [Google Mobile Services (GMS)](#gms) suite of\n app and APIs, and use of the Android trademark. Anyone is welcome to\n use the Android source code, but to be considered part of the Android ecosystem,\n a device must be Android compatible.\n\n*artifact*\n: A build-related log that enables local troubleshooting.\n\n*Compatibility Definition Document (CDD)*\n: A document that enumerates the software and hardware requirements for an\n Android-compatible device.\n\n*Compatibility Test Suite (CTS)*\n\n: A free, commercial-grade test suite, available for download as a binary or as\n source in AOSP. The CTS is a set of unit tests designed to be integrated into\n your daily workflow. The intent of CTS is to reveal incompatibilities, and\n ensure that the software remains compatible throughout the development process.\n\n CTS and platform tests aren't mutually exclusive. Here are some general\n guidelines:\n\n - If a test is asserting correctness of framework API functions or behaviors, and the test should be enforced across OEM partners, it should be in CTS.\n - If a test is intended to catch regressions during platform development, and might require privileged permission to carry out, and might be dependent on implementation details (as released in AOSP), it should be a platform test.\n\n*Google Mobile Services (GMS)*\n\n: A collection of Google apps and APIs that can be preinstalled on devices.\n\n*GoogleTest (GTest)*\n\n: A C++ testing and mocking framework. GTest binaries typically\n access lower-level abstraction layers or perform raw IPC against various system\n services. The testing approach for GTest is usually tightly coupled with the\n service being tested. CTS contains the GTest framework.\n\n*instrumentation test*\n\n: A special test execution environment\n launched by the `am instrument` command, where the targeted app process\n is restarted and initialized with basic app context, and an\n instrumentation thread is started inside the app process virtual\n machine. CTS contains instrumentation tests.\n\n*Logcat*\n\n: A command-line tool that creates a log of system messages, including\n stack traces of when the device throws an error and messages that you have\n written from your app with the `Log` class.\n\n*logging*\n\n: Using a log to keep track of computer system events, such\n as errors. Logging in Android is complex due to the mix of standards used that\n are combined in the Logcat tool.\n\n*postsubmit test*\n\n: An Android test that is performed when a new patch is committed to a\n common kernel branch. By entering `aosp_kernel` as a partial branch name, you\n can see a list of kernel branches with results available. For example, results\n for `android-mainline` can be found at\n \u003chttps://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid\u003e.\n\n*presubmit test*\n\n: A test used to prevent failures from being introduced into the\n common kernels.\n\n*Trade Federation*\n\n: Also called Tradefed, a continuous test\n framework designed for running tests on Android devices. For example,\n Tradefed is used to run Compatibility Test Suite and Vendor Test Suite tests.\n\n*Vendor Test Suite (VTS)*\n\n: A set of extensive capabilities for\n Android testing, promoting a test-driven development process, and automating\n hardware abstraction layer (HAL) and OS kernel testing.\n\nPlatform test types\n-------------------\n\nA platform test typically interacts with one or more of the Android system\nservices or HAL layers, exercises the\nfunctionalities of the subject under test, and asserts correctness of the\ntesting outcome. A platform test might:\n\n- (Type 1) Exercise framework APIs using Android framework. Specific APIs being exercised can include:\n - Public APIs intended for third-party apps\n - Hidden APIs intended for privileged apps, namely system APIs or private APIs (`@hide`, or `protected`, `package private`)\n- (Type 2) Invoke Android system services using raw binder or IPC proxies directly.\n- (Type 3) Interact directly with HALs using low-level APIs or IPC interfaces.\n\nType 1 and 2 tests are typically instrumentation tests, while type 3 tests are\nusually GTests.\n\nWhat's next?\n------------\n\nHere is a list of documents that you can read for more detailed information:\n\n- If you haven't studied Android architecture, see\n [Architecture overview](/docs/core/architecture).\n\n- If you're creating an Android-compatible device, see\n the [Android compatibility program overview](/docs/compatibility/overview).\n\n- To integrate instrumentation, functional, metric, and JAR host tests\n into a platform continuous testing service, see\n [Test development workflow](/docs/core/tests/development).\n\n- To detect and harden your devices against vulnerabilities,\n see [Security testing](/docs/security/test/fuzz-sanitize).\n\n- To learn about testing your HAL and kernel implementations, see\n [Vendor Test Suite (VTS) and infrastructure](/docs/core/tests/vts).\n\n- For app testing, read\n [Fundamentals of testing Android\n apps](https://developer.android.com/training/testing/fundamentals)\n and conduct the [Advanced Android in Kotlin 05.1:Testing\n Basics](https://codelabs.developers.google.com/codelabs/advanced-android-kotlin-training-testing-basics/index.html)\n using the\n [samples](https://github.com/android/testing-samples) provided.\n\n- Learn about the basic presubmit testing available to you through repo hooks.\n These hooks can be used to run linters, check formatting, and trigger unit\n tests before proceeding, such as uploading a commit. These hooks are disabled\n by default. For further information, see [AOSP Preupload\n Hooks](https://android.googlesource.com/platform/tools/repohooks/+/refs/heads/android16-release/README.md).\n\n- To read more about logging, see [Understand logging](/docs/core/tests/debug/understanding-logging).\n\n- To understand how to debug Android code, see\n [Debug native Android platform code](/docs/core/tests/debug)."]]