บางครั้งบริการ Google Play อาจรวมหรือใช้ไลบรารีโอเพนซอร์ส ในฐานะนักพัฒนาแอป คุณมีหน้าที่รับผิดชอบในการแสดงประกาศอย่างเหมาะสมสำหรับไลบรารีโอเพนซอร์สที่แอปของคุณใช้ เพื่อปฏิบัติตามข้อกำหนดของใบอนุญาตสำหรับไลบรารีโอเพนซอร์ส
บริการ Google Play มีชุดเครื่องมือที่ออกแบบมาเพื่อให้นักพัฒนาแอปแสดงประกาศเกี่ยวกับซอฟต์แวร์โอเพนซอร์สของไลบรารีที่ใช้ในแอปได้ง่ายขึ้น เครื่องมืออย่างหนึ่งคือปลั๊กอิน Gradle ที่รวบรวมข้อกำหนดของใบอนุญาตจากไลบรารีที่รวมไว้ตามที่ประกาศไว้ในไฟล์ POM และสร้างกิจกรรมที่ใช้แสดงข้อกำหนดเหล่านี้ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่เครื่องมือค้นหาและจัดแพ็กเกจข้อมูลใบอนุญาต
เพิ่มปลั๊กอิน Gradle
ในไฟล์บิลด์ระดับรูท ให้ทําดังนี้
- ใส่ที่เก็บ Maven ของ Google
- เพิ่มปลั๊กอิน
oss-licenses
ลงใน Dependency
ข้อมูลโค้ดต่อไปนี้แสดงขั้นตอนเหล่านี้
Kotlin DSL
buildscript { repositories { ... google() // maven { url("https://maven.google.com") } for Gradle <= 3 } dependencies { ... classpath("com.google.android.gms:oss-licenses-plugin:0.10.6") } }
Groovy DSL
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
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
Groovy DSL
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
คุณดูโค้ดของปลั๊กอินนี้ได้ใน GitHub
เพิ่มคลังลงในแอป
ในส่วน dependencies
ของไฟล์บิลด์ระดับแอป ให้เพิ่มการอ้างอิงไลบรารี oss-licenses
ดังนี้
Kotlin DSL
implementation("com.google.android.gms:play-services-oss-licenses:17.1.0")
Groovy DSL
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>
วิธีกำหนดรายการใบอนุญาต
ในเวลาคอมไพล์ พารามิเตอร์ Plugin ของ Gradle จะสแกน Dependency ของ POM ในโปรเจ็กต์ของแอป เมื่อ Maven POM มีอยู่สําหรับการพึ่งพาโดยตรงของแอป ปลั๊กอินจะประมวลผลองค์ประกอบ <licenses>
แต่ละรายการและฝังลิงก์และชื่อของใบอนุญาตแต่ละรายการในเนื้อหา Android ที่รวมอยู่กับแอป