반응형
meta-data
설명
- 안드로이드 내부 데이터 중 디컴파일시 노출되면 안될 데이터를 관리하는 방법
- meta-data에 하드코딩으로 데이터 설정시에 디컴파일시 노출될 위험이 있어 string 리소스로 사용하면 노출 위험을 줄일 수 있다
- meta-data는 application, activity, service에 포함하여 사용할 수 있다.
코드
res/values/strings.xml<resources>
<string name="app_name">android-example</string>
<string name="secret_key">ABCDEFG123456!@#$%^</string>
</resources>
AndroidManifest.xml
<application>
...
<meta-data android:name="secret_key" android:value="@string/secret_key"/>
</application>
MainActivity
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater).apply {
setContentView(root)
lifecycleOwner = this@MainActivity
}
}
fun onClickShow(view: View) {
val applicationInfo = packageManager.getApplicationInfo(packageName, PackageManager.GET_META_DATA)
val metaData = applicationInfo.metaData
val secretKey = metaData.getString("secret_key")
Toast.makeText(this, secretKey, Toast.LENGTH_SHORT).show()
}
}
참고
반응형
'Development > Android' 카테고리의 다른 글
[Android] LifecycleObserver (0) | 2021.02.10 |
---|---|
[Android] BuildConfig (0) | 2021.02.09 |
[Android] Kotpref (0) | 2021.02.09 |
[Android] SharedPreferences (0) | 2021.02.09 |
[Android] Build APK (0) | 2021.02.09 |