รวมประกาศเกี่ยวกับโอเพนซอร์ส

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

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

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

ในไฟล์บิวด์ระดับราก ให้ดําเนินการดังนี้

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

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

DSL ของ Kotlin

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 ที่มีอยู่ที่ด้านบนของไฟล์

DSL ของ Kotlin

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 โดยทําดังนี้

DSL ของ Kotlin

build.gradle.kts

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

DSL ที่หลุม

build.gradle

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

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

เมื่อสร้างแอป ปลั๊กอิน 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 อยู่สําหรับการพึ่งพาแอปโดยตรง ปลั๊กอินจะประมวลผลองค์ประกอบ <licenses> แต่ละรายการและฝังลิงก์และชื่อใบอนุญาตแต่ละชุดลงในเนื้อหา Android ที่รวมอยู่ในแอป