Araç özelikleri referansı

Android Studio, tools ad alanında, bir parçada hangi düzenin gösterileceği veya XML kaynaklarınıza hangi daraltma modunun uygulanacağı gibi derleme zamanı davranışları gibi tasarım zamanı özelliklerini etkinleştiren çeşitli XML özelliklerini destekler. Uygulamanızı derlerken, derleme araçları bu özellikleri kaldırır. Böylece APK boyutu veya çalışma zamanı davranışı üzerinde bir etkisi olmaz.

Bu özellikleri kullanmak için tools ad alanını, aşağıda gösterildiği gibi, kullanmak istediğiniz her XML dosyasının kök öğesine ekleyin:

<RootTag xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" >

Hata işleme özellikleri

Aşağıdaki özellikler, hata analizi uyarı mesajlarının gizlenmesine yardımcı olur:

tools:ignore

Amacı: Herhangi bir öğe

Kullanan: Lint

Bu özellik, araçların bu öğede veya alt öğelerinde yoksaymasını istediğiniz lint sorun kimliklerinin virgülle ayrılmış listesini kabul eder.

Örneğin, araçlara MissingTranslation hatasını yoksaymasını söyleyebilirsiniz:

<string name="show_all_apps" tools:ignore="MissingTranslation">All</string>

tools:targetApi

Kullanım amacı: Herhangi bir öğe

Kullanan: Lint

Bu özellik, Java kodundaki @TargetApi ek açıklamasıyla aynı şekilde çalışır. Bu öğeyi destekleyen API düzeyini (tam sayı veya kod adı olarak) belirtmenize olanak tanır.

Bu değer, söz konusu öğenin ve alt öğelerinin yalnızca belirtilen API düzeyinde veya daha üst düzeylerde kullanıldığını düşündüğünüz araçlara bildirir. Bu işlem, söz konusu öğe veya özellikleri minSdkVersion olarak belirlediğiniz API düzeyinde mevcut değilse lint'in sizi uyarmasını durdurur.

Örneğin, GridLayout yalnızca API düzeyi 14 ve sonraki sürümlerde kullanılabildiği için bu özelliği kullanabilirsiniz. Ancak bu düzenin, daha düşük sürümler için kodunuzda kullanılmadığını bilirsiniz:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:targetApi="14" >

(Bununla birlikte, destek kitaplığından GridLayout kullanmanızı öneririz.)

tools:locale

Amacı: <resources>

Kullanan: Lint, Android Studio düzenleyicisi

Bu, yazım denetleyicisinin uyarılarını önlemek için araçlara belirtilen <resources> öğesindeki kaynaklar için varsayılan dilin veya yerel ayarın ne olduğunu bildirir. Aksi takdirde araç, dilin İngilizce olduğunu varsayar.

Değer geçerli bir yerel ayar niteleyici olmalıdır.

Örneğin, varsayılan dizeler için kullanılan dilin İngilizce yerine İspanyolca olduğunu belirtmek için bunu varsayılan values/strings.xml dosyanıza ekleyebilirsiniz:

<resources xmlns:tools="http://schemas.android.com/tools"
    tools:locale="es">

Tasarım zamanı görünüm özellikleri

Aşağıdaki özellikler, yalnızca Android Studio düzen önizlemesinde görünen düzen özelliklerini tanımlar.

android: yerine tools:

Amacı: <View>

Kullanan: Android Studio düzen düzenleyicisi

Android çerçevesinden herhangi bir <View> özelliğiyle android: yerine tools: önekini kullanarak düzen önizlemenize örnek veriler ekleyebilirsiniz. Bu, özelliğin değeri çalışma zamanına kadar doldurulmadığında ve düzen önizlemesinde efekti görmek istediğinizde yararlı olur.

Örneğin, android:text özellik değeri çalışma zamanında ayarlandıysa veya düzeni varsayılandan farklı bir değere sahip görmek istiyorsanız yalnızca düzen önizlemesinde bir metin belirtmek için tools:text ekleyebilirsiniz.

Tools:text özelliği, düzen önizlemesinin değeri olarak Google Voice&#39;u ayarlar
Şekil 1. tools:text özelliği, düzen önizlemesinin değerini "Google Voice" olarak ayarlar.

Hem çalışma zamanında kullanılan android: ad alanı özelliğini hem de yalnızca düzen önizlemesinde çalışma zamanı özelliğini geçersiz kılan eşleşen tools: özelliğini ekleyebilirsiniz.

Yalnızca düzen önizlemesinde bir özellik ayarını geri almak için tools: özelliğini de kullanabilirsiniz. Örneğin, iki alt öğesi olan FrameLayout adlı bir cihazınız varsa ancak düzen önizlemesinde yalnızca bir alt öğe görmek istiyorsanız alt öğelerden birini, aşağıda gösterildiği gibi düzen önizlemesinde görünmez olacak şekilde ayarlayabilirsiniz:

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="First" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Second"
    tools:visibility="invisible"  />

Tasarım görünümünde Düzen Düzenleyici'yi kullanırken Özellikler penceresi, bazı tasarım zamanı görünümü özelliklerini düzenlemenize olanak tanır. Her tasarım zamanı özelliği, aynı ada sahip gerçek özellikten ayırt edilebilmesi için özellik adının yanında bir İngiliz anahtarı simgesi İngiliz anahtarı
simgesi ile gösterilir.

tools:context

Amacı: Herhangi bir kök <View>

Kullanan: Lint, Android Studio Layout Düzenleyici

Bu özellik, bu düzenin varsayılan olarak hangi etkinlikle ilişkilendirildiğini tanımlar. Bu, Şekil 2'de gösterildiği gibi, düzenleyicide veya düzen önizlemesinde, önizlemede düzen temasının ne olduğu ve hızlı düzeltmeden oluşturulan onClick işleyicilerin nereye ekleneceği gibi etkinlik bilgisi gerektiren özellikleri etkinleştirir.

onClick özelliği için hızlı düzeltme yalnızca tool:context&#39;i ayarladıysanız çalışır.
Şekil 2. onClick özelliği için hızlı düzeltme yalnızca tools:context özelliğini ayarladıysanız çalışır.

Etkinlik sınıfı adını, manifest dosyasındakiyle aynı nokta ön ekini kullanarak (tam paket adı hariç) belirtebilirsiniz.

Örneğin:

<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity" >

tools:itemCount

Amacı: <RecyclerView>

Kullanan: Android Studio Layout Düzenleyici

Belirli bir RecyclerView için bu özellik, Düzen Düzenleyici'nin Önizleme penceresinde oluşturması gereken öğe sayısını belirtir.

Örneğin:

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:itemCount="3"/>

tools:layout

Amacı: <fragment>

Kullanan: Android Studio Düzen Düzenleyici

Düzen önizlemesi, normalde düzeni uygulayan etkinlik kodunu yürütemediği için bu özellik, düzen önizlemesinin parçanın içinde hangi düzeni çizmesini istediğinizi tanımlar.

Örneğin:

<fragment android:name="com.example.main.ItemListFragment"
    tools:layout="@layout/list_content" />

tools:listitem, tools:listheader tools:listfooter

Amacı: <AdapterView> (ve <ListView> gibi alt sınıflar)

Kullanan: Android Studio Düzen Düzenleyici

Bu özellikler, bir listenin öğeleri, üst bilgileri ve alt bilgileri için düzen önizlemesinde hangi düzenin gösterileceğini belirtir. Düzendeki tüm veri alanları, liste öğelerinin tekrarlanmaması için "Öğe 1" gibi sayısal içeriklerle doldurulur.

Örneğin:

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:listitem="@layout/sample_list_item"
    tools:listheader="@layout/sample_list_header"
    tools:listfooter="@layout/sample_list_footer" />

tools:showIn

Amacı: <include> tarafından referans verilen bir düzendeki herhangi bir kök <View>

Kullanan: Android Studio Düzen Düzenleyici

Bu özellik, <include> kullanarak bu düzeni kullanan bir düzene işaret etmenize olanak tanır. Böylece bu dosyayı üst düzenine yerleştirildiğinde göründüğü şekilde önizleyebilir ve düzenleyebilirsiniz.

Örneğin:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:text="@string/hello_world"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:showIn="@layout/activity_main" />

Şimdi düzen önizlemesi, bu TextView düzenini activity_main düzeninin içinde göründüğü gibi gösteriyor.

tools:menu

Amacı: Herhangi bir kök <View>

Kullanan: Android Studio Düzen Düzenleyici

Bu özellik, düzen önizlemesinin uygulama çubuğunda hangi menüyü gösterdiğini belirtir. Değer, @menu/ veya benzer bir kimlik ön eki ve .xml uzantısı olmadan virgülle ayrılmış bir veya daha fazla menü kimliğidir.

Örneğin:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:menu="menu1,menu2" />

tools:minValue, tools:maxValue

Amacı: <NumberPicker>

Kullanan: Android Studio Düzen Düzenleyici

Bu özellikler, bir NumberPicker görünümü için minimum ve maksimum değerleri ayarlar.

Örneğin:

<NumberPicker xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/numberPicker"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:minValue="0"
    tools:maxValue="10" />

tools:openDrawer

Amacı: <DrawerLayout>

Kullanan: Android Studio Düzen Düzenleyici

Bu özellik, önizlemede bir DrawerLayout açmanızı sağlar.

Aşağıdaki değerlerden birini aktararak da Düzen Düzenleyici'nin düzeni oluşturma şeklini değiştirebilirsiniz:

Tablo 1. Düzen Düzenleyici'nin bir DrawerLayout öğesini oluşturma şeklini değiştirecek değerler

SabitDeğerAçıklama
end800005Nesneyi, boyutunu değiştirmeden kapsayıcının sonuna itin.
left3Nesneyi, boyutunu değiştirmeden kapsayıcısının soluna itin.
right5Nesneyi, boyutunu değiştirmeden kapsayıcının sağına itin.
start800003Nesneyi, boyutunu değiştirmeden kapsayıcının başına itin.

Örneğin:

<androidx.drawerlayout.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:openDrawer="start" />

"@tools:sample/*" kaynak

Kullanım amacı: Kullanıcı arayüzü metinleri veya resimleri destekleyen tüm görünümler

Kullanan: Android Studio Layout Düzenleyici

Bu özellik, görünümünüze yer tutucu verileri veya resimler eklemenizi sağlar. Örneğin, uygulamanız için kullanıcı arayüzü metnine son halini vermeden önce düzeninizin metinle nasıl davrandığını test etmek için aşağıdaki gibi yer tutucu metni kullanabilirsiniz:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:text="@tools:sample/lorem" />

Aşağıdaki tabloda, düzenlerinize ekleyebileceğiniz yer tutucu veri türleri açıklanmaktadır:

Tablo 2. Düzenler için yer tutucu verileri

Özellik değeriYer tutucu verilerin açıklaması
@tools:sample/full_names @tools:sample/first_names ve @tools:sample/last_names kombinasyonundan rastgele oluşturulan tam adlar
@tools:sample/first_names Sık kullanılan adlar
@tools:sample/last_names Sık kullanılan soyadı
@tools:sample/cities Dünyanın her yerinden şehirlerin adları
@tools:sample/us_zipcodes Rastgele oluşturulmuş ABD posta kodları
@tools:sample/us_phones Şu biçimde rastgele oluşturulmuş telefon numaraları: (800) 555-xxxx
@tools:sample/lorem Latince yer tutucu metin
@tools:sample/date/day_of_week Belirtilen biçim için rastgele tarihler ve saatler
@tools:sample/date/ddmmyy
@tools:sample/date/mmddyy
@tools:sample/date/hhmm
@tools:sample/date/hhmmss
@tools:sample/avatars Profil avatarı olarak kullanabileceğiniz çizim çizimleri
@tools:sample/backgrounds/scenic Arka plan olarak kullanabileceğiniz resimler

Kaynak daraltma özellikleri

Aşağıdaki özellikler, sıkı referans kontrollerini etkinleştirmenizi ve kaynak daraltma yöntemini kullanırken belirli kaynakları saklamanızı mı yoksa sileceğinizi belirtmenizi sağlar.

Kaynak daraltmayı etkinleştirmek için build.gradle dosyanızda shrinkResources özelliğini true, kod daraltma için de minifyEnabled olarak ayarlayın.

Örneğin:

Modern

android {
    ...
    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
    }
}

Kotlin

android {
    ...
    buildTypes {
        getByName("release") {
            isShrinkResources = true
            isMinifyEnabled = true
            proguardFiles(
                getDefaultProguardFile("proguard-android.txt"),
                "proguard-rules.pro"
            )
        }
    }
}

tools:shrinkMode

Amacı: <resources>

Kullanan: Kaynak küçültme ile araç geliştirme

Bu özellik, derleme araçlarının aşağıdakileri kullanıp kullanmayacağını belirtmenize olanak tanır:

  • Güvenli mod: Açıkça belirtilen ve Resources.getIdentifier() çağrısıyla dinamik olarak referans gösterilebilecek tüm kaynakları koruyun.
  • Yüksek düzey mod: Yalnızca kodda veya diğer kaynaklarda açıkça belirtilen kaynakları koruyun.

Varsayılan değer güvenli mod (shrinkMode="safe") kullanmaktır. Bunun yerine yüksek düzey modu kullanmak için <resources> etiketine burada gösterildiği gibi shrinkMode="strict" ekleyin:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:shrinkMode="strict" />

Yüksek düzey modunu etkinleştirdiğinizde, kaldırılan ancak gerçekten istediğiniz kaynakları saklamak için tools:keep, daha fazla kaynağı da açıkça kaldırmak için tools:discard kullanmanız gerekebilir.

Daha fazla bilgi edinmek için Kaynaklarınızı azaltma bölümüne bakın.

tools:keep

Amacı: <resources>

Kullanan: Kaynak küçültme ile araç geliştirme

Kullanılmayan kaynakları kaldırmak için kaynak küçültme özelliğini kullandığınızda bu özellik, genellikle çalışma zamanında dinamik olarak oluşturulmuş bir kaynak adını Resources.getIdentifier()'e iletmek gibi dolaylı bir şekilde referans alındıkları için saklanacak kaynakları belirtmenize olanak tanır.

Kullanmak için kaynaklar dizininizde <resources> etiketiyle bir XML dosyası oluşturun (ör. res/raw/keep.xml) ve tools:keep özelliğinde tutulacak her kaynağı virgülle ayrılmış liste olarak belirtin. Yıldız karakterini joker karakter olarak kullanabilirsiniz.

Örneğin:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:keep="@layout/used_1,@layout/used_2,@layout/*_3" />

Daha fazla bilgi edinmek için Kaynaklarınızı azaltma bölümüne bakın.

tools:discard

Amacı: <resources>

Kullanan: Kaynak küçültme ile araç geliştirme

Kullanılmayan kaynakları kaldırmak için kaynak küçültme özelliğini kullandığınızda bu özellik, manuel olarak silmek istediğiniz kaynakları belirtmenize olanak tanır. Bunun nedeni genellikle kaynağa referans verilmesi ancak uygulamanızı etkilemeyecek şekilde olması veya Gradle eklentisinin kaynağın referans verildiğini yanlış bir şekilde belirlemesidir.

Kullanmak için kaynak dizininizde <resources> etiketiyle bir XML dosyası oluşturun (ör. res/raw/keep.xml) ve tools:discard özelliğinde silinecek her bir kaynağı virgülle ayrılmış liste olarak belirtin. Yıldız karakterini joker karakter olarak kullanabilirsiniz.

Örneğin:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
    tools:discard="@layout/unused_1" />

Daha fazla bilgi edinmek için Kaynaklarınızı azaltma bölümüne bakın.