บางครั้งบริการ Google Play รวมหรือขึ้นอยู่กับไลบรารีโอเพนซอร์ส คุณในฐานะนักพัฒนาซอฟต์แวร์มีหน้าที่ต้องแสดงประกาศสําหรับไลบรารีโอเพนซอร์สที่แอปใช้อย่างเหมาะสม เพื่อให้เป็นไปตามข้อกําหนดของใบอนุญาตของไลบรารีโอเพนซอร์ส
บริการ Google Play มีชุดเครื่องมือที่ออกแบบมาเพื่อช่วยให้นักพัฒนาแอปแจ้งไลบรารีซอฟต์แวร์โอเพนซอร์สของแอปที่ใช้ในแอปของตนได้ง่ายขึ้น หนึ่งในเครื่องมือเหล่านี้คือปลั๊กอิน Gradle ที่รวบรวมข้อกําหนดของใบอนุญาตจากไลบรารีที่รวมอยู่ ตามที่ประกาศในไฟล์ POM ของตน และสร้างกิจกรรมที่ใช้แสดงข้อกําหนดเหล่านี้ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่เครื่องมือค้นพบและข้อมูลแพ็กเกจใบอนุญาต
เพิ่มปลั๊กอิน Gradle
ในไฟล์บิวด์ระดับรูท ให้ทําดังนี้
- รวมที่เก็บ Google Maven
- เพิ่มปลั๊กอิน
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") } }
Groovy 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
แอป/build.gradle.kts
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
Groovy DSL
แอป/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.0")
Groovy DSL
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.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 ที่รวมอยู่ในแอป