รวมประกาศโอเพนซอร์ส

บางครั้งบริการ Google Play มีหรือขึ้นอยู่กับไลบรารีโอเพนซอร์ส ในการปฏิบัติตามข้อกำหนดเกี่ยวกับใบอนุญาตของไลบรารีโอเพนซอร์ส คุณซึ่งเป็น จะต้องแสดงประกาศสำหรับ ไลบรารีแหล่งที่มาที่แอปของคุณใช้

บริการ Google Play มีชุดเครื่องมือที่ออกแบบมาเพื่อให้ การแสดงประกาศซอฟต์แวร์โอเพนซอร์สของไลบรารีที่ใช้ใน แอปของตนได้ หนึ่งในเครื่องมือเหล่านี้คือปลั๊กอิน Gradle ที่รวบรวมข้อกำหนดของใบอนุญาต จากไลบรารีที่รวม ตามที่ประกาศไว้ในไฟล์ POM และสร้าง กิจกรรม ที่ใช้เพื่อแสดงคำเหล่านี้ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่เครื่องมือค้นหา และแพ็กเกจ

เพิ่มปลั๊กอิน Gradle

ในไฟล์บิลด์ระดับราก ให้ทำดังนี้

  1. รวมถึง Google Maven ที่เก็บ
  2. เพิ่มปลั๊กอิน oss-licenses ไปยังทรัพยากร Dependency

ข้อมูลโค้ดต่อไปนี้จะแสดงขั้นตอนเหล่านี้

Kotlin DSL

build.gradle.kts

buildscript {
  repositories {
    ...
    google()  // maven { url("https://maven.google.com") } for Gradle <= 3
  }
  dependencies {
    ...
    classpath("com.google.android.gms:oss-licenses-plugin:0.10.6")
  }
}

DSL กรูฟฟี่

build.gradle

buildscript {
  repositories {
    ...
    google()  // maven { url "https://maven.google.com" } for Gradle <= 3
  }
  dependencies {
    ...
    classpath 'com.google.android.gms:oss-licenses-plugin:0.10.6'
  }
}

ในไฟล์บิลด์ระดับแอป ให้ใช้ปลั๊กอินโดยเพิ่มบรรทัดต่อไปนี้ ภายใต้การประกาศที่มีอยู่ของปลั๊กอิน com.android.application ที่ ด้านบนของไฟล์:

Kotlin DSL

app/build.gradle.kts

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

DSL กรูฟฟี่

app/build.gradle

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

คุณสามารถดู สำหรับกรณีนี้ ใน GitHub

เพิ่มไลบรารีลงในแอป

ในส่วน dependencies ของไฟล์บิลด์ระดับแอป ให้เพิ่มทรัพยากร Dependency ในไลบรารี oss-licenses ดังนี้

Kotlin DSL

build.gradle.kts

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

DSL กรูฟฟี่

build.gradle

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

แสดงข้อมูลใบอนุญาต

เมื่อคุณสร้างแอป ปลั๊กอิน Gradle จะประมวลผลใบอนุญาตและเพิ่มใบอนุญาตลงใน ทรัพยากรของแอปคุณ เพื่อให้แสดงใบอนุญาตได้ง่าย คุณสามารถเปิดกิจกรรม ที่ไลบรารี play-services-oss-licenses มีให้ที่ ชี้ในแอปของคุณ ดังที่แสดงในข้อมูลโค้ดต่อไปนี้

Kotlin

import com.google.android.gms.oss.licenses.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.OssLicensesMenuActivity;
...

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

เมื่อเปิดขึ้น กิจกรรมนี้จะแสดงรายการไลบรารีโอเพนซอร์สที่ ที่คอมไพล์ไว้ในแอปของคุณ รวมถึงไลบรารีที่เป็นส่วนหนึ่งของ Google Play บริการ ดังที่แสดงในรูปที่ 1 ผู้ใช้สามารถแตะชื่อห้องสมุดเพื่อดู ข้อมูลใบอนุญาตเพิ่มเติมสำหรับไลบรารีดังกล่าว

มุมมองรายการที่มีแต่ละเอลิเมนต์ที่มีชื่อของโอเพนซอร์ส
คลัง

รูปที่ 1 กิจกรรมเมนูใบอนุญาตแสดงรายการเปิดที่เลือกได้ ไลบรารีแหล่งที่มาที่แอปใช้

ตั้งชื่อกิจกรรม

โดยค่าเริ่มต้น กิจกรรมที่แสดงจะมีชื่อว่า "ใบอนุญาตโอเพนซอร์ส" คุณสามารถ กำหนดชื่อกิจกรรมเองโดยการเรียก setActivityTitle() ดังที่แสดงในข้อมูลโค้ดต่อไปนี้

Kotlin

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

Java

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

ใช้ธีมกับกิจกรรม

คุณสามารถใช้ธีมกับกิจกรรมเพื่อให้ตรงกับธีมที่ใช้ในแอป กิจกรรมอื่นๆ ในการดำเนินการนี้ ให้ใส่กิจกรรมใบอนุญาตโอเพนซอร์สไว้ใน องค์ประกอบ <activity> ภายในไฟล์ Manifest ของแอปตามที่แสดงในข้อมูลต่อไปนี้ ข้อมูลโค้ด:

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

วิธีกำหนดรายการใบอนุญาต

ขณะคอมไพล์ ปลั๊กอิน Gradle จะสแกนทรัพยากร Dependency ของ POM ของแอปคุณ เมื่อมี Maven POM สำหรับทรัพยากร Dependency โดยตรงของแอป ประมวลผล <licenses> และฝังลิงก์และชื่อของใบอนุญาต แต่ละรายการในเนื้อหา Android ที่ ที่รวมอยู่ในแอปของคุณ