728x90
위의 사진은 카카오톡의 오픈소스 라이선스 페이지입니다. 안드로이드 프로젝트를 하며 라이선스에 따라 사용한 오픈소스 라이브러리를 명시해줘야 하는 경우가 있습니다. 보통 앱을 만들게 되면 여러 가지 오픈소스를 사용하게 되는데요, 이 많은걸 일일이 다 추가해주려면 굉장히 번거로운 일이 아닐 수 없습니다.
이러한 번거로움을 해결해주기 위해 안드로이드 프로젝트에서 사용한 라이브러리를 자동으로 관리해주는 라이브러리가 있습니다. Google Play services에서 제공하는 oss licenses plugin을 사용하면 간단하게 사용할 수 있습니다.
사용법
사용법은 굉장히 간단합니다. gradle plugin과 library를 추가해준 뒤, 액티비티만 실행시켜주면 자동으로 생성됩니다.
build.gradle (project 수준)
buildscript {
...
dependencies {
classpath "com.android.tools.build:gradle:4.2.1"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// oss licenses plugin 추가
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.4'
}
}
build.gradle (app 수준)
plugins {
id 'com.android.application'
id 'kotlin-android'
// plugin 추가
id 'com.google.android.gms.oss-licenses-plugin'
}
...
dependencies {
...
// library 추가
implementation 'com.google.android.gms:play-services-oss-licenses:17.0.0'
...
}
OssLicensesMenuActivity 실행
OssLicenseMenuActivity를 시작해주면 오픈소스 라이선스 화면이 나오게 됩니다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
findViewById<Button>(R.id.btn_opensource_license)?.let {
it.setOnClickListener {
startActivity(Intent(this, OssLicensesMenuActivity::class.java))
// ActionBar의 title 변경
OssLicensesMenuActivity.setActivityTitle("오픈소스 라이선스")
}
}
}
}
테마 변경
manifest 파일에서 theme를 추가해주면 테마를 변경할 수 있습니다.
<activity
android:name="com.google.android.gms.oss.licenses.OssLicensesMenuActivity"
android:theme="@style/Theme.Opensourcelicense"/>
<activity
android:name="com.google.android.gms.oss.licenses.OssLicensesActivity"
android:theme="@style/Theme.Opensourcelicense" />
예제 소스
https://github.com/tkdgusl94/blog-source/tree/master/open-source-license
참고
https://developers.google.com/android/guides/opensource
728x90
'Android' 카테고리의 다른 글
[Android] buildSrc를 통한 Dependency 관리 (0) | 2021.07.11 |
---|---|
[Android] Clean Architecture in Android (12) | 2021.07.03 |
[Android] Tree 구조를 RecyclerView로 만들어보자 - TreeAdapter (6) | 2021.07.03 |
[Android] Paging 3.0 Library 알아보기 - 1 (0) | 2021.06.27 |
[Android] Multi Module로 Android project 구성하기 (0) | 2021.06.20 |