'Android/Basic' 카테고리의 글 목록 — SH's Devlog

Android/Basic

Android/Basic

[Android] Gradle 빌드시에 Signing key로 서명하도록 설정하기

이번 포스트에서는 Gradle 빌드시에 Signing key를 서명하도록 설정하는 방법을 정리하겠습니다. Play store에 앱을 업로드하려면 Bundle 혹은 APK에 앱 서명을 해야합니다. 그래서 서명하기 위한 일반적인 방법으로는 [Build]-[Generate Signed Bundle / APK]에서 keystore 정보를 입력해주는 방법이 존재하지만 이 방법은 APK 생성할때마다 매번 입력해주어야 하므로 꽤 번거롭습니다. 또한, keystore에 대한 정보는 깃과 같은 외부 저장소에 올려서 노출되어서는 안되므로 주의해야 합니다. 그래서 이번 포스트에서는 Gradle의 sIgningConfings 설정을 통해 빌드시에 keystore로 안전하게 앱 서명을 하는 방법을 정리하겠습니다. gradle..

Android/Basic

[Android] BuildConfig과 ProductFlavors로 빌드 변형 구성하기 (Configure Build Variants)

이번에는 Gradle 빌드 변형 구성에 대해 알아보겠습니다. 먼저, 현재 빌드정보를 담고있는 buildConfig에 필드를 추가하는 방법 필드의 정보들을 불러오는 방법을 알아보겠습니다. 그리고 BuildType, ProductFlavors마다 BuildConfig을 변형 구성하는 방법과 Source Set을 바꿔서 구성하는 방법을 알아보겠습니다. BuildType이란? buildType은 일반적으로 개발자가 새 모듈을 생성하면 debug와 release 두 가지를 생성합니다. debug는 빌드 유형을 선언하지 않더라도 Android Studio에서는 debuggable true를 default값으로 구성하며 이 속성 덕분에 Android 기기에서 앱을 디버깅할 수 있습니다. release는 출시용 bui..

Android/Basic

[Android] Gradle 프로젝트에 remote 라이브러리 대신 외부 모듈 불러오기

이번 포스트에서는 Android, Spring 혹은 다른 Gradle 빌드 시스템을 사용하는 프로젝트에서 외부 모듈을 불러오는 방법을 알아보겠습니다. 외부 저장소에서 라이브러리를 불러올 때의 문제점 안드로이드는 공식 빌드 도구로 Gradle을 사용합니다. 라이브러리를 불러와 빌드 구성을 할 때에는 Gradle 빌드 시스템 상의 module 수준의 빌드 파일에서 수행되며 jitpack, maven central같은 외부 저장소에서 implementation 키워드를 통해서 불러올 수 있습니다. 하지만, 위와 같이 외부저장소에서 라이브러리를 불러오는 경우에는 당연하게도 외부 저장소에 있는 소스코드이다보니 라이브러리를 즉각적인 수정을 하여 사용하기에는 무리가 있을 수 있습니다. 이러한 상황을 해결하기 위한 방..

Android/Basic

[Android] Multidex 설정하기, Proguard 난독화로 앱 용량 줄이고 빌드속도 줄이기

빌드 에러 메시지 The number of method references in a .dex file cannot exceed 64K. 혹은 아래와 같은 런타임 에러 메시지 java.lang.NoSuchMethodError: No virtual method getScanFilter()Lcom/aasd/BleScanFilter; in class Lcom/abcd$Companion; or its super classes (declaration of 'com.abcd' appears in /data/data/com.abcd/code_cache/.overlay/base.apk/classes2.dex) 코딩을 하다보면 위와 같은 빌드 에러메시지가 발생하는 경우가 있습니다. 안드로이드 프로젝트 같은 경우 기본적으로..

Android/Basic

[Android] Service 정리

1. Service 란? Service는 안드로이드 4대 컴포넌트 중 하나이며 사용자에게 인터페이스를 제공하지 않고 백그라운드에서 오래 실행되는 작업을 수행할 수 있는 애플리케이션 구성 요소 다른 애플리케이션 구성 요소가 서비스를 시작할 수 있고, 다른 앱을 전환하더라도 백그라운드에서 계속 실행됩니다. 또한 앱 구성요소와 서비스를 바인딩하여 서비스와 상호작용 할 수 있고, 프로세스 간 통신(IPC)도 실행할 수 있습니다. 2. Service 종류 포그라운드 서비스: 알림창을 통해 서비스가 실행중인 것을 나타내줍니다. 대신, 시스템에 의해서 강제종료 당하지 않습니다. 백그라운드 서비스: 사용자에게 보이지 않고 작업을 수행합니다. 대신, 시스템에서 리소스가 부족할 경우 강제종료 당할 수 있습니다. (API ..

Android/Basic

[Android] TextInputLayout Style Custom하기(밑줄 색, Hint, Error)

안녕하세요. 오늘은 TextInputLayout에 대해 정리하겠습니다. 1. 라이브러리 설정 먼저, TextInputLayout은 Material 라이브러리에 속해있으므로, 라이브러리를 추가해야합니다. implementation 'com.google.android.material:material:1.2.1' 2. xml 선언 xml에 TextInputLayout과 style을 지정해 줍니다. Hint, Helper, Icon, Error, Counter의 속성들은 TextInputLayout의 속성을 변경해주면 되고, EditText에 있는 글씨나 배경색은 TextInputEditText의 속성을 변경해주면 됩니다. [text_input_layout_fragment.xml] 3. Style 선언 중요한 ..

Android/Basic

[Android] WebView 속성 정리

WebView Settings 속성 webView.apply { webChromeClient = WebChromeClient() // 크롬환경에 맞는 세팅을 해줌. 특히, 알람등을 받기위해서는 꼭 선언해주어야함 (alert같은 경우) settings.apply { javaScriptEnabled = true javaScriptCanOpenWindowsAutomatically = false // window.open() 동작 허용 loadsImagesAutomatically = true // 웹뷰에서 앱에 등록되어있는 이미지 리소스를 사용해야 할 경우 자동으로 로드 여부 cacheMode = WebSettings.LOAD_NO_CACHE // LOAD_NO_CACHE -> 캐시 사용 x 네트워크로만 호출,..

Android/Basic

[Android] Dp to Px

레이아웃에서 뷰의 크기와 위치를 설정할 때는 px보다는 dp를 이용하는 것이 좋다. 왜냐하면 dp를 사용하면 큰 화면, 작은 화면에 상관 없이 동일한 비율로 나타내준다. 하지만 자바코드에서는 dp를 사용할 수 없다. 픽셀 값만 인자로 받기도 하지만 가장 큰 이유는 자바 코드에서는 실행하는 기기의 해상도를 모르므로 런타임 시에 해상도에 맞게 dp를 px로 변환하여 사용한다. val resources = resources val px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 200f, resources.displayMetrics) 200dp를 px로 변환하려면 위에 코드처럼 변환하여 setMargins()나 setWidth()등에 넣어주면 된다.

Android/Basic

[Android] 안드로이드 스튜디오에서 gradle.properties(Global)이 안보일 때 확인해야 하는 것

gradle.properties가 존재하는지 확인 home 경로에 gradle.properties가 존재하는지 확인해줍니다. 예를 들어, 제 맥북에서의 경로는 /Users/seunghwan(home)/.gradle 였습니다. Gradle user home 위치 확인 AndroidStudio -> Preferences -> Build, Execution, Deployment -> Gradle의 Gradle user home 위치를 확인해줍니다.

Android/Basic

[Android] Color ARGB Opacity 적용법

적용방법 컬러만 적용하고 싶다면 아래와 같이 hex 값 6자리를 입력해주면 됩니다. RGB -> android:textColor="#FFFFFF" 투명도를 적용하고 싶다면 맨앞 두자리에 hex값을 추가해주면 됩니다. ex) 투명도 50%의 ARGB를 적용하고자 한다면 ARGB -> android:textColor="#80FFFFFF" Opacity에 따른 hex값 100% — FF 95% — F2 90% — E6 85% — D9 80% — CC 75% — BF 70% — B3 65% — A6 60% — 99 55% — 8C 50% — 80 45% — 73 40% — 66 35% — 59 30% — 4D 25% — 40 20% — 33 15% — 26 10% — 1A 5% — 0D 0% — 00

반응형
seunghwaan
'Android/Basic' 카테고리의 글 목록