Eski monkeyrunner aracı, API'yi kullanarak bir öğeyi denetleyen
    Android kodu dışındaki bir Android cihaz veya emülatör.
monkeyrunner aracı özellikle uygulamaları ve cihazları test etmek için tasarlanmıştır
    fonksiyonel/çerçeve seviyesinde ve birim test paketlerini çalıştırmak için
    başka amaçlar için kullanıyor. monkeyrunner ile Python programı yazabilirsiniz
    Android uygulaması veya test paketi yükleyen, çalıştıran, tuş vuruşu gönderen ve
    kullanıcı arayüzünün ekran görüntülerini alır ve ekran görüntülerini iş istasyonunda saklar.
    Dikkat: monkeyrunner API'si yönetilmiyor. Şunu kullanmanızı öneririz:
    Uygulama Tarayıcısı aracı veya
    Kullanıcı Arayüzü Otomatikleştirici
    test çerçevesi oluşturabilirsiniz.
    monkeyrunner aracı,
    Kullanıcı Arayüzü/Uygulama Alıştırması Yapan Maymun,
    monkey aracı olarak da bilinir. monkey aracı,
    adb kabuğu doğrudan
    kullanıcı ve sistem etkinliklerinin sözde rastgele akışları oluşturur. Buna kıyasla,
    monkeyrunner aracı bir iş istasyonundaki cihazları ve emülatörleri kontrol ederek
    API'den belirli komutlar ve etkinlikler.
    monkeyrunner aracı, Android testleri için şu özellikleri sağlar:
- 
        Birden fazla cihaz kontrolü: 
monkeyrunnerAPI bir veya daha fazla cihaz uygulayabilir birden fazla cihaz veya emülatörde test paketi oluşturabilirsiniz. Tüm cihazları fiziksel olarak bağlayabilirsiniz. veya tüm emülatörleri (ya da ikisini birden) aynı anda başlatıp sırasıyla her birine bağlayın yapabilir ve ardından bir veya daha fazla test çalıştırabilirsiniz. Bir emülatör de başlatabilirsiniz yapılandırma, bir veya daha fazla test çalıştırma ve ardından emülatörü kapatma. - 
        İşlevsel test: 
monkeyrunner, otomatik bir başlangıç - bitiş testi yapabilir test kullanıcısı yaptık. Tuş vuruşlarıyla veya dokunma etkinlikleriyle ve görünümle giriş değerleri sağlarsınız bunları ekran görüntüsü olarak kaydeder. - 
        Regresyon testi: 
monkeyrunner, ve çıkış ekran görüntülerini, kullandığı çok modlu akım ekran görüntüsüyle doğru. - 
        Genişletilebilir otomasyon: 
monkeyrunnerbir API araç seti olduğundan şunları yapabilirsiniz: Android cihazları yönetmek için Python tabanlı modül ve programlar içeren bir sistem geliştirme cihazlar.monkeyrunnerAPI'nin kendisini kullanmanın yanı sıra, Pythonosvesubprocessçağrılarını Android araçlarına çağırmak için Android Debug Bridge.Ayrıca
monkeyrunnerAPI'ye kendi sınıflarınızı da ekleyebilirsiniz. Bu daha ayrıntılı olarak Monkeyrunner'ı eklentilerle genişletin bölümü. 
    monkeyrunner aracı, 
    Jython, Java programlama dilini kullanan bir Python uygulamasıdır. Jython
    monkeyrunner API, Android çerçevesiyle kolayca etkileşime girer. Jython ile
    API'nin sabit değerlerine, sınıflarına ve yöntemlerine erişmek için Python söz dizimini kullanabilir.
Basit bir maymun avcısı programı
    Burada, bir cihaza bağlanarak yeni bir monkeyrunner oluşturmak için
    MonkeyDevice
    nesnesini tanımlayın. Program, MonkeyDevice nesnesini kullanarak bir Android uygulaması yükler
    bir etkinliği çalıştırır ve önemli etkinlikleri etkinliğe gönderir.
    Program daha sonra sonucun ekran görüntüsünü alır ve
    MonkeyImage nesne algılandı.
    Program, bu nesneden ekran görüntüsünü içeren bir PNG dosyası yazar.
# Imports the monkeyrunner modules used by this program.
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
# Connects to the current device, returning a MonkeyDevice object.
device = MonkeyRunner.waitForConnection()
# Installs the Android package. Notice that this method returns a boolean, so you can test
# whether the installation worked.
device.installPackage('myproject/bin/MyApplication.apk')
# Sets a variable with the package's internal name.
package = 'com.example.android.myapplication'
# Sets a variable with the name of an Activity in the package.
activity = 'com.example.android.myapplication.MainActivity'
# Sets the name of the component to start.
runComponent = package + '/' + activity
# Runs the component.
device.startActivity(component=runComponent)
# Presses the Menu button.
device.press('KEYCODE_MENU', MonkeyDevice.DOWN_AND_UP)
# Takes a screenshot.
result = device.takeSnapshot()
# Writes the screenshot to a file.
result.writeToFile('myproject/shot1.png','png')
monkeyrunner API'si
    monkeyrunner API,
    com.android.monkeyrunner paketi:
- 
        
MonkeyRunner:monkeyrunnerprogramları için bir yardımcı program yöntemleri sınıfı. Bu sınıf birmonkeyrunneröğesini bir cihaza veya emülatöre bağlama yöntemi. Ayrıcamonkeyrunnerprogramı için kullanıcı arayüzleri oluşturma ve yerleşik yardım. - 
        
MonkeyDevice: Bir cihazı veya emülatörü temsil eder. Bu sınıfta, yükleme ve paketleri kaldırma, bir Etkinlik başlatma ve klavye veya dokunma etkinliklerini uygulamasını indirin. Bu sınıfı test paketlerini çalıştırmak için de kullanırsınız. - 
        
MonkeyImage: Ekran görüntüsü sağlar. Bu sınıf, ekranları yakalamaya yönelik yöntemler sağlar, bit eşlem resimlerini çeşitli biçimlere dönüştürerek ikiMonkeyImagenesnesini karşılaştırır ve bir resim dosyası oluşturmuşsunuzdur. 
    Python programlarında her sınıfa Python modülü olarak erişirsiniz. monkeyrunner
    aracı bu modülleri otomatik olarak içe aktarmaz. Bir modülü içe aktarmak için
    Python from ifadesi:
from com.android.monkeyrunner import <module>
    Burada <module>, içe aktarmak istediğiniz sınıf adıdır. Daha fazla öğeyi içe aktarabilirsiniz
    birden fazla modülün adlarını birbirinden ayırarak aynı from
    virgül kullanarak yapabilirsiniz.
Monkeyrunner'ı çalıştır
    monkeyrunner programlarını bir dosyadan veya
    monkeyrunner ekstre
    ele alacağız. Her ikisini de monkeyrunner komutunu çağırarak yaparsınız.
    Bu URL, SDK dizininizin tools/ alt dizininde bulunur.
    Bağımsız değişken olarak bir dosya adı sağlarsanız monkeyrunner komutu
    dosyanın içeriğini bir Python programı olarak çalıştırır; Aksi takdirde etkileşimli bir oturum başlatır.
    Aşağıda monkeyrunner komutunun söz dizimi verilmiştir:
monkeyrunner -plugin <plugin_jar> <program_filename> <program_options>
Tablo 1'de monkeyrunner işaretleri ve bağımsız değişkenleri açıklanmaktadır.
  Tablo 1. monkeyrunner işaret ve bağımsız değişken
| Bağımsız değişken | Açıklama | 
|---|---|
            -plugin <plugin_jar>
             | 
        
            (İsteğe bağlı) Şu dosya için eklenti içeren bir JAR dosyasını belirtir:
            monkeyrunner
            monkeyrunner eklentileri hakkında daha fazla bilgi edinmek için
            Monkeyrunner'ı eklentilerle genişletin bölümünü.
            Birden fazla dosya belirtmek için bağımsız değişkeni birden çok kez ekleyin.
         | 
    
            <program_filename>
             | 
        
            Bu bağımsız değişkeni sağlarsanız monkeyrunner komutu içeriği çalıştırır
            dosyayı Python programı olarak kullanabilirsiniz. Aksi takdirde, komut
            inceleyeceğiz.
         | 
    
            <program_options>
         | 
        
            (İsteğe bağlı) <program_file> içindeki programın işaretleri ve bağımsız değişkenleri | 
    
monkeyrunner yerleşik yardım
    Aşağıdaki komutu çalıştırarak monkeyrunner için API referansı oluşturabilirsiniz:
monkeyrunner help.py <format> <outfile>
Bağımsız değişkenler şunlardır:
- 
            
<format>, düz metin çıkışı içintextdeğerine sahiptir veya HTML çıkışı içinhtml. - 
            
<outfile>, çıkış dosyası için yol nitelikli bir addır. 
Monkeyrunner'ı eklentilerle genişletme
    monkeyrunner API'yi, Java'da yazdığınız sınıflarla genişletebilirsiniz
    bir veya daha fazla JAR dosyası halinde oluşturabilirsiniz. Bu özelliği kullanarak
    kendi sınıflarınızla veya mevcut sınıfların kapsamını genişletmek için monkeyrunner API'yi kullanabilirsiniz. Siz
    bu özelliği monkeyrunner ortamını başlatmak için de kullanabilir.
    monkeyrunner işlevine eklenti sağlamak için monkeyrunner komutunu çağırın
    şu sayfada açıklanan -plugin <plugin_jar> bağımsız değişkeniyle:
    tablo 1.
    Eklenti kodunuzda ana monkeyrunner sınıflarını içe aktarabilir ve genişletebilirsiniz
    MonkeyDevice, MonkeyImage ve MonkeyRunner
    com.android.monkeyrunner (monkeyrunner API ile ilgili bölüme bakın).
    Eklentilerin Android SDK'ya erişmenize olanak sağlamadığını unutmayın. Paketleri içe aktaramazsınız
    com.android.app gibi. Bunun nedeni, monkeyrunner ürününün
    çerçeve API'leri seviyesinin altında olması gerekir.
Eklenti başlangıç sınıfı
    Bir eklentinin JAR dosyası, ilk olarak örneklenen bir sınıfı belirtebilir.
    komut dosyası işleme başlar. Bu sınıfı belirtmek için anahtarı ekleyin
    JAR dosyasına MonkeyRunnerStartupRunner
    manifest'ini kullanabilirsiniz. Değer için başlangıçta çalıştırılacak sınıfın adını kullanın. Aşağıdakiler
    snippet, bunun bir ant derleme komut dosyasında nasıl yapılacağını gösterir:
<jar jarfile="myplugin" basedir="${build.dir}">
<manifest>
<attribute name="MonkeyRunnerStartupRunner" value="com.myapp.myplugin"/>
</manifest>
</jar>
    Başlangıç sınıfı, monkeyrunner aracının çalışma zamanı ortamına erişmek için
    com.google.common.base.Predicate<PythonInterpreter>. Örneğin,
    sınıfı, varsayılan ad alanında bazı değişkenleri ayarlar:
Kotlin
package com.android.example
import com.google.common.base.Predicate
import org.python.util.PythonInterpreter
class Main: Predicate<PythonInterpreter> {
    override fun apply(anInterpreter: PythonInterpreter): Boolean {
        /*
         * Examples of creating and initializing variables in the monkeyrunner environment's
         * namespace. During execution, the monkeyrunner program can refer to the variables
         * "newtest" and "use_emulator"
         *
         */
        anInterpreter.set("newtest", "enabled")
        anInterpreter.set("use_emulator", 1)
        return true
    }
}
Java
package com.android.example;
import com.google.common.base.Predicate;
import org.python.util.PythonInterpreter;
public class Main implements Predicate<PythonInterpreter> {
    @Override
    public boolean apply(PythonInterpreter anInterpreter) {
        /*
        * Examples of creating and initializing variables in the monkeyrunner environment's
        * namespace. During execution, the monkeyrunner program can refer to the variables "newtest"
        * and "use_emulator"
        *
        */
        anInterpreter.set("newtest", "enabled");
        anInterpreter.set("use_emulator", 1);
        return true;
    }
}