Açık kaynak bildirimlerini dahil et

Google Play Hizmetleri SDK'ları bazen açık kaynak kitaplıklar içerir veya bunlara bağlıdır. Açık kaynak kitaplıkların lisans şartlarına uymak için geliştirici olarak uygulamanızın kullandığı açık kaynak kitaplıkların bildirimlerini uygun şekilde göstermek sizin sorumluluğunuzdadır.

Google Play Hizmetleri, geliştiricilerin uygulamalarında kullanılan kitaplıkların açık kaynak yazılım (OSS) bildirimlerini daha kolay ifade etmelerini sağlamak için tasarlanmış bir dizi araç içerir. oss-licenses-plugin ve Google Play Hizmetleri oss-licenses SDK'sı, dahil edilen kitaplıklardan lisans şartlarını POM dosyalarında beyan edildiği şekilde toplar ve bu şartları görüntülemek için kullanılabilecek bir etkinlik oluşturur. Aracın lisans bilgilerini nasıl bulduğu ve paketlediği hakkında daha fazla bilgi edinin.

Gradle eklentisini ekleme

Proje ayarlarınızın pluginManagement bölümünde aşağıdakileri yapın:

  1. Google Maven deposunu ekleyin.
  2. PluginManagement uygulamasında oss-licenses eklentisini çözün.

Aşağıdaki kod snippet'inde bu adımlar gösterilmektedir:

Kotlin DSL

settings.gradle.kts

pluginManagement {
  repositories {
    ...
    google()
  }
  resolutionStrategy {
    eachPlugin {
      if (requested.id.id == "com.google.android.gms.oss-licenses-plugin") {
        useModule("com.google.android.gms:oss-licenses-plugin:0.13.0")
      }
    }
  }
}

Groovy DSL

build.gradle

pluginManagement {
  repositories {
    ...
    google()
  }
  resolutionStrategy {
    eachPlugin {
      if (requested.id.id == "com.google.android.gms.oss-licenses-plugin") {
        useModule("com.google.android.gms:oss-licenses-plugin:0.13.0")
      }
    }
  }
}

Uygulama düzeyindeki derleme dosyanızda, dosyanın üst kısmındaki mevcut com.android.application eklentisi beyanının altına aşağıdaki satırı ekleyerek eklentiyi uygulayın:

Kotlin DSL

app/build.gradle.kts

plugins {
    id("com.android.application")
    id("com.google.android.gms.oss-licenses-plugin")
}

Groovy DSL

app/build.gradle

plugins {
    id 'com.android.application'
    id 'com.google.android.gms.oss-licenses-plugin'
}

Bu eklentinin kodunu GitHub'da görüntüleyebilirsiniz.

play-services-oss-licenses kitaplığını uygulamanıza ekleme

Uygulama düzeyindeki derleme dosyanızın dependencies bölümünde play-services-oss-licenses kitaplığına bir bağımlılık ekleyin:

Kotlin DSL

build.gradle.kts

implementation("com.google.android.gms:play-services-oss-licenses:17.5.3")

Groovy DSL

build.gradle

implementation 'com.google.android.gms:play-services-oss-licenses:17.5.3'

Lisans bilgilerini göster

Uygulamanız derlenirken Gradle eklentisi lisansları işler ve uygulamanızın kaynaklarına ekler. Lisansı kolayca görüntülemek için aşağıdaki kod snippet'inde gösterildiği gibi, uygulamanızın uygun bir noktasında play-services-oss-licenses kitaplığı tarafından sağlanan bir etkinliği başlatabilirsiniz:

Kotlin

import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity
...

// When the user selects an option to see the licenses:
startActivity(Intent(this, OssLicensesMenuActivity::class.java))

Java

import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity;
...

// When the user selects an option to see the licenses:
startActivity(new Intent(this, OssLicensesMenuActivity.class));

Etkinlik başlatıldığında, Şekil 1'de gösterildiği gibi, uygulamanızda derlenen açık kaynak kitaplıkların (uygulama tarafından kullanılan kitaplıklar dahil) bir listesi görüntülenir. Kullanıcılar, bir kitaplığın adını dokunarak o kitaplıkla ilgili ek lisans bilgilerini görüntüleyebilir.

Her öğenin bir açık kaynak kitaplığının adını içerdiği liste görünümü

Şekil 1. Lisanslar menüsü etkinliği, bir uygulamanın kullandığı açık kaynak kitaplıkların seçilebilir bir listesini gösterir.

Etkinlik başlığını ayarlama

Varsayılan olarak, gösterilen etkinliğin başlığı "Açık kaynak lisansları"dır. Aşağıdaki kod snippet'inde gösterildiği gibi setActivityTitle() yöntemini çağırarak etkinliğin başlığını özelleştirebilirsiniz:

Kotlin

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))

Java

OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));

Etkinliğe tema uygulama

Uygulamanızın Material 3 veya XML tabanlı temalar kullanmasına bağlı olarak OssLicensesMenuActivity için tema uygulamanın farklı yolları vardır.

Material 3'ü kullanan uygulamalar

Material 3 kullanan uygulamalarda, aşağıdaki kod snippet'inde gösterildiği gibi etkinliğe özel bir tema uygulamak için setTheme() yöntemini çağırabilirsiniz:

Kotlin

import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity
...

OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography)
startActivity(Intent(this, OssLicensesMenuActivity::class.java))

Java

import com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity;
...

OssLicensesMenuActivity.setTheme(lightColorScheme, darkColorScheme, typography);
startActivity(new Intent(this, OssLicensesMenuActivity.class));

XML temaları kullanan uygulamalar

XML temaları kullanan uygulamalarda, uygulamanızın diğer etkinliklerinde kullanılan temayla eşleşmesi için manifest dosyasındaki etkinliğe bir tema uygulayabilirsiniz. Bunu yapmak için aşağıdaki kod snippet'inde gösterildiği gibi, açık kaynak lisans etkinliğini uygulamanızın manifest dosyasındaki bir <activity> öğesine ekleyin:

<application android:theme="@style/AppTheme" ...>
    <activity
        android:name="com.google.android.gms.oss.licenses.v2.OssLicensesMenuActivity"
        tools:replace="android:theme"
        android:theme="@style/AppTheme" />
</application>

Lisans listesinin belirlenme şekli

Derleme süresinde Gradle eklentisi, uygulamanızın projesinin POM bağımlılıklarını tarar. Uygulamanın doğrudan bağımlılığı için bir Maven POM mevcut olduğunda eklenti, her <licenses> öğesini işler ve her lisansın bağlantısını ve başlığını uygulamanıza dahil edilen bir Android öğesine yerleştirir.