본문 바로가기

개발(Development)/Android(안드로이드)62

[안드로이드] "Google Play 정책: 데이터 보안 양식 잘못됨" 해결 방법(Feat. 애드몹) # Google Play 정책을 준수하지 않음 - "데이터 보안 양식 잘못됨" 해결 방법 애드몹(AdMob) 광고를 탑재한 안드로이드 앱을 서비스 중에 구글 플레이에서 아래와 같은 메일을 받았다. 조치 필요: 앱이 Google Play 정책을 준수하지 않음 발견된 문제: 데이터 보안 양식 잘못됨 Play Console에서 앱의 데이터 보안 양식을 검토한 결과 데이터 보안 양식의 내용과 앱의 사용자 데이터 수집 및 공유 방식이 일치하지 않음이 확인되었습니다. 모든 앱은 데이터 보안 양식을 정확하게 작성하여 데이터 수집 및 공유 관행을 공개해야 합니다. 이 요구사항은 앱에서 사용자 데이터를 전혀 수집하지 않는 경우에도 적용됩니다. 앱의 데이터 보안 양식에서 수집하는 사용자 데이터임을 명시하지 않은 사용자 데.. 2022. 9. 18.
[안드로이드] TabLayout 속성 설정 총정리: Text color/size, Tab height/backgroundColor, Indicator line width/color, Icon 등 # 안드로이드 TabLayout 속성 설정 총정리 1. Tab 텍스트 색상/크기/스타일(볼드체) 2. Tab 높이/배경색 3. Tab Indicator(밑줄) 두께/색깔/위치 4. Tab 아이콘 5. TabLayout 너비 화면 채우기 6. Tab 선택시 Ripple 효과 제거 방법 # TabLayout Text 설정 1. 텍스트 색상(Text Color) 기본 텍스트 색상과, 탭이 선택되었을 때의 텍스트 색깔을 설정할 수 있다. - 기본 텍스트 색상(레이아웃 XML파일 > TabLayout 태그) app:tabTextColor="색상" - 선택된 텍스트 색상(레이아웃 XML파일 > TabLayout 태그) app:tabSelectedTextColor="색상" 2. 텍스트 사이즈(Text Size) + .. 2021. 9. 2.
[안드로이드] TextView 임시 텍스트 설정 방법(tools:text): 개발시에만 노출, 런타임 비노출 안드로이드 개발 시, 런타임에는 표시되면 안 되는 값들이 있을 수 있다. 예를 들어 서버에서 데이터를 받아와 TextView에 표시하는 경우, 통신 딜레이로 인해 기존에 가라(?)로 입력해둔 값이 노출되는 문제가 발생한다. 하지만 개발 작업의 편의와 대략적인 레이아웃 파악을 위해서는 가라 데이터를 입력해두는게 필요할 때가 있다. 이러한 니즈를 충족시키기 위해 안드로이드는 tools:text 네임스페이스:속성을 통해 아래의 기능을 지원한다. 1. 안드로이드 스튜디오의 미리보기(Preview: Design 모드)에는 노출된다. 2. 단, 실제 앱 실행(런타임)시에는 노출되지 않는다. # tools:text 사용방법 1. tools 네임스페이스 추가: xmlns:tools=" 2021. 9. 1.
[안드로이드] 커스텀뷰: Paint 적용된 텍스트 너비, 높이(width, height) 확인 방법 안드로이드 커스텀뷰(CustomView)에서 Paint로 텍스트 사이즈를 설정하고, Canvas로 텍스트(drawText())를 그렸을 때, Canvas를 통해 그려진 텍스트의 너비와 높이를 파악해야 할 경우가 있다. 텍스트의 너비(가로)/높이(세로)를 고려하여 다른 뷰를 그려야하는 경우 등등. 방법은 대략 2종류가 있는 것 같다. 1. 텍스트 width만 체크하는 방법 2. 텍스트 widht, height 모두 체크하는 방법 1. 텍스트 너비(Width)만 체크하는 방법 1) Paint.measureText(text: String) : text의 너비를 Float로 반환 2) Paint.measureText(text: String, start: Int, end: Int) : text의 start인덱스부.. 2021. 8. 31.
[안드로이드] TextView 텍스트 문자열 일부 색상/크기/스타일 변경 설정 방법: Spannable 안드로이드에서 TextView 사용시, TextView 내부의 텍스트 글자마다 서로 다른 스타일(색깔, 크기, 볼드체 등)을 적용해야 할 때가 있다. 물론 글자마다 각각 TextView를 생성해서 처리해 주어도 되긴 한다. 하지만 TextView를 하나만 사용하면서 내부의 각 문자열들을 따로 처리할 수 있다면 더욱 효율적일 것이다. 안드로이드는 SpannableStringBuilder를 통해 이런 기능을 지원해준다. # SpannableStringBuilder 사용방법 1. TextView의 text를 SpannableStringBuilder로 변환 2. 스타일/크기/색상 Span 객체 생성 3. SpannableStringBuilder에 Span 적용 4. TextView의 text에 Spannable.. 2021. 8. 30.
[안드로이드] 앱 버전 업데이트 빌드 및 배포 방법(구글 플레이) 구글플레이스토어에 이미 출시되어 있는 앱의 버전을 업데이트 하는 방법을 정리한다. (자주 하는 일이 아니라 할 때마다 조심스러워서 정리해둔다) 1. 안드로이드 앱 버전을 업데이트하여 빌드하는 방법 2. 구글플레이에 앱 업데이트 버전 배포하는 방법 # 안드로이드 앱 버전 업데이트 빌드 방법 안드로이드 스튜디오 상에서, 앱의 버전을 업데이트하여 빌드하는 방법을 정리한다. 1. build.gradle(Module) 파일의 Version 정보 업데이트 1) 버전 정보 수정 - versionCode: 기존 값보다 큰 정수 설정(1단위로 수정하면 된다) - versionName: 기존 값보다 크게 X.X.X 형식으로 설정 2) SyncNow 클릭 2. 앱 빌드 1) Generate Signed Bundle/APK .. 2021. 8. 29.
[안드로이드] getDimension() vs. getDimensionPixelSize() 차이 안드로이드는 dimens.xml 파일에 정의해둔 사이즈 크기 값을 코드 상에서 참조할 수 있도록 Resources 클래스를 통해 아래의 2가지 메서드를 제공한다. 두 메서드가 반환하는 값에 약간의 차이가 있어서 정리해 둔다. 1. getDimension() - 자바: public float getDimension (int id) - 코틀린 : open fun getDimension(id: Int): Float - 반환값: dimen.xml에 정의한 dp값을 기기에 맞게 px로 변환하여 소수점까지 Float 로 반환한다. 2. getDimensionPixelSize() - 자바: public int getDimensionPixelSize (int id) - 코틀린: open fun getDimensionP.. 2021. 8. 27.
[안드로이드] 안드로이드 폰 장치 OS 버전 체크 방법(Build.VERSION.SDK_INT) 최신 버전의 API를 사용하면, minSdkVersion에서 지원하지 않는 API라는 경고가 노출될 때가 있다. minSdkVersion 버전의 OS까지 지원하기로 설정해 두고, 이 버전에서 지원되지 않는 최신 버전 OS에서만 제공되는 API를 사용하기 때문에 발생하는 경고다. 해결 방법은 2가지다. 1. minSdkVersion을 높인다. - 최신 버전의 OS가 탑재된 스마트폰만 지원하는 방식이다. - 구버전의 OS가 탑재된 스마트폰은 지원하지 못한다. 2. 스마트폰의 OS 버전을 체크하여 분기 처리한다. - 최신 버전의 OS가 탑재된 스마트폰은 최신 API를 사용하도록 설계하고, - 구 버전의 OS가 탑재된 스마트폰은 다른 대체 코드를 사용한다. 여기서는 2번째 방법을 정리한다. # 안드로이드 장치 .. 2021. 8. 26.
[구글 플레이 스토어] "App bundle 유형과 연결된 가독화 파일이 없습니다" 경고 해결 방법 안드로이드 구글 플레이 스토어(Google Play Stroe)에 APK/AAB 파일을 업로드 했는데, 아래와 같은 오류, 경고 메시지가 노출될 수 있다. --- 이 App Bundle 유형과 연결된 가독화 파일이 없습니다. 난독화된 코드(R8/proguard)를 사용하는 경우 가독화 파일을 업로드하면 비정상 종료 및 ANR을 더 쉽게 분석하고 디버그할 수 있습니다. R8/proguard를 사용하면 앱 크기를 줄이는 데 도움이 됩니다. --- --- This App Bundle contains Java/Kotlin code, which might be obfuscated. We recommend you upload a deobfuscation file to make your crashes and ANRs.. 2021. 8. 26.