Google Play Hizmetleri SDK'ları bazen açık kaynak kitaplıklar içerir veya bu kitaplıklara bağlıdır. Açık kaynak kitaplıklarının lisans şartlarına uymak için geliştirici olarak, uygulamanızın kullandığı açık kaynak kitaplıklarıyla ilgili bildirimleri uygun şekilde göstermek sizin sorumluluğunuzdadır.
Google Play Hizmetleri, geliştiricilere uygulamalarında kullanılan kitaplıkların açık kaynak yazılım (OSS) bildirimlerini daha kolay bir şekilde ifade etmelerini sağlamak için tasarlanmış bir dizi araç içerir. oss-licenses-plugin ve Google Play Hizmetleri oss-licenses SDK'sı, POM dosyalarında belirtildiği gibi dahil edilen kitaplıklardan lisans şartlarını toplar ve bu şartları görüntülemek için kullanılabilecek bir etkinlik oluşturur. Aracın lisans bilgilerini nasıl bulup 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.
oss-licenseseklentisiniPluginManagementiçinde çö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.12.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.12.0") } } } }
Uygulama düzeyindeki derleme dosyanızda, dosyanın en üst kısmındaki com.android.application eklentisinin mevcut bildiriminin 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 ekleyin
Uygulama düzeyindeki derleme dosyanızın dependencies bölümüne play-services-oss-licenses kitaplığına bağımlılık ekleyin:
Kotlin DSL
build.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.5.1")
Groovy DSL
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.5.1'
Lisans bilgilerini gösterme
Uygulamanız oluşturulurken Gradle eklentisi lisansları işler ve uygulamanızın kaynaklarına ekler. Lisansı kolayca göstermek için aşağıdaki kod snippet'inde gösterildiği gibi, uygulamanızda uygun bir noktada play-services-oss-licenses kitaplığı tarafından sağlanan bir etkinlik 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, uygulama tarafından kullanılan kitaplıklar da dahil olmak üzere uygulamanıza derlenen açık kaynak kitaplıkların bir listesini gösterir. Kullanıcılar, bir kitaplığın adını tıklayarak o kitaplığa ait ek lisans bilgilerini görüntüleyebilir.
Şekil 1. Lisanslar menüsü etkinliği, bir uygulamanın kullandığı seçilebilir açık kaynak kitaplıklarının 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() işlevini ç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ı kullanıp kullanmadığına bağlı olarak OssLicensesMenuActivity teması uygulamak için farklı yöntemler 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ını kullanan uygulamalar
XML temalarını kullanan uygulamalarda, uygulamanızın diğer etkinliklerinde kullanılan temayla eşleşmesi için manifest dosyasındaki etkinliğe 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 listesi nasıl belirlenir?
Gradle eklentisi, derleme sırasında uygulamanızın projesinin POM bağımlılıklarını tarar. Uygulamanın doğrudan bağımlılığı için bir Maven POM varsa 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.