Đôi khi, Dịch vụ Google Play bao gồm hoặc phụ thuộc vào các thư viện nguồn mở. Để tuân thủ các yêu cầu về giấy phép của thư viện nguồn mở, bạn với tư cách là nhà phát triển có trách nhiệm hiển thị các thông báo cho thư viện nguồn mở mà ứng dụng của bạn sử dụng một cách thích hợp.
Dịch vụ Google Play bao gồm một bộ công cụ được thiết kế nhằm giúp nhà phát triển dễ dàng hơn trong việc thể hiện thông báo phần mềm nguồn mở của các thư viện dùng trong ứng dụng. Một trong những công cụ này là một trình bổ trợ Gradle thu thập các điều khoản cấp phép từ các thư viện đi kèm, như được khai báo trong các tệp POM và tạo một hoạt động có thể dùng để hiển thị các điều khoản này. Tìm hiểu thêm về cách công cụ tìm và thông tin giấy phép gói.
Thêm trình bổ trợ Gradle
Trong tệp bản dựng cấp cơ sở, hãy làm như sau:
- Thêm kho lưu trữ Google Maven.
- Thêm trình bổ trợ
oss-licenses
vào các phần phụ thuộc.
Đoạn mã sau đây cho thấy các bước sau:
Kotlin DSL
Hàm 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 Groovy
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' } }
Trong tệp bản dựng cấp ứng dụng, hãy áp dụng trình bổ trợ bằng cách thêm dòng sau trong phần khai báo hiện có của trình bổ trợ com.android.application
ở đầu tệp:
Kotlin DSL
app/build.gradle.kts
plugins { id("com.android.application") id("com.google.android.gms.oss-licenses-plugin") }
DSL Groovy
app/build.gradle
plugins { id 'com.android.application' id 'com.google.android.gms.oss-licenses-plugin' }
Bạn có thể xem mã cho trình bổ trợ này trên GitHub.
Thêm thư viện vào ứng dụng
Trong phần dependencies
của tệp bản dựng cấp ứng dụng, hãy thêm phần phụ thuộc vào thư viện oss-licenses
:
Kotlin DSL
Hàm build.gradle.kts
implementation("com.google.android.gms:play-services-oss-licenses:17.0.1")
DSL Groovy
build.gradle
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.1'
Hiển thị thông tin giấy phép
Khi ứng dụng được xây dựng, trình bổ trợ Gradle sẽ xử lý các giấy phép và thêm chúng vào tài nguyên của ứng dụng. Để dễ dàng hiển thị giấy phép, bạn có thể chạy một hoạt động do thư viện play-services-oss-licenses
cung cấp tại một điểm thích hợp trong ứng dụng, như minh hoạ trong đoạn mã sau:
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));
Khi khởi chạy, hoạt động này hiển thị một danh sách các thư viện nguồn mở được biên dịch thành ứng dụng, bao gồm cả các thư viện thuộc Dịch vụ Google Play, như minh hoạ trong hình 1. Người dùng có thể nhấn vào tên của thư viện để xem thông tin giấy phép bổ sung cho thư viện đó.
Hình 1. Hoạt động trình đơn giấy phép cho thấy một danh sách có thể chọn các thư viện nguồn mở mà một ứng dụng sử dụng.
Đặt tiêu đề hoạt động
Theo mặc định, hoạt động được hiển thị có tiêu đề "Giấy phép nguồn mở". Bạn có thể tuỳ chỉnh tiêu đề của hoạt động bằng cách gọi setActivityTitle()
, như trong đoạn mã sau:
Kotlin
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title))
Java
OssLicensesMenuActivity.setActivityTitle(getString(R.string.custom_license_title));
Áp dụng giao diện cho hoạt động
Bạn có thể áp dụng một giao diện cho hoạt động để khớp với giao diện dùng trong các hoạt động khác của ứng dụng. Để thực hiện việc này, hãy đưa hoạt động cấp phép nguồn mở vào phần tử <activity>
vào tệp kê khai của ứng dụng, như minh hoạ trong đoạn mã sau:
<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>
Cách xác định danh sách giấy phép
Tại thời điểm biên dịch, trình bổ trợ Gradle sẽ quét các phần phụ thuộc POM của dự án ứng dụng. Khi có một POM Maven cho phần phụ thuộc trực tiếp của ứng dụng, trình bổ trợ sẽ xử lý từng phần tử <licenses>
và nhúng đường liên kết cũng như tiêu đề của từng giấy phép vào thành phần Android đi kèm với ứng dụng.