[Android] 오픈소스 라이선스 목록 보여주기 - OssLicensesMenuActivity
Android

[Android] 오픈소스 라이선스 목록 보여주기 - OssLicensesMenuActivity

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("오픈소스 라이선스")
            }
        }
    }
}

 

 

 

OssLicensesMenuActivity

 

OssLicenseActivity

 

 

테마 변경

 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

 

tkdgusl94/blog-source

https://leveloper.tistory.com/ 에서 제공하는 예제 source. Contribute to tkdgusl94/blog-source development by creating an account on GitHub.

github.com

 

참고

https://developers.google.com/android/guides/opensource

 

Include open source notices  |  Google Play services  |  Google Developers

Google Play services sometimes includes, or depends upon, open source libraries. To comply with the license requirements of open source libraries, you as a developer are responsible for appropriately displaying the notices for the open source libraries tha

developers.google.com

 

728x90