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:
- Google Maven deposunu ekleyin.
PluginManagementuygulamasındaoss-licenseseklentisini çö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.
Ş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.