manifestPlaceholders는 Gradle의 build.gradle 파일에서 AndroidManifest.xml에 값을 동적으로 주입할 수 있게 해줍니다. AndroidManifest.xml에는 android:value="${MY_CUSTOM_VALUE}"와 같은 형태로 placeholder를 사용할 수 있습니다. 이러한 placeholders를 manifestPlaceholders라고 부릅니다. Gradle은 이러한 placeholders를 build.gradle 파일에 지정된 key-value pairs로 대체합니다. android { defaultConfig { // ... manifestPlaceholders = [ MY_CUSTOM_VALUE: "myCustomValue", ANOTHE..
ArrayList의 기본적인 추가와 삭제 방법입니다. // 변수 선언 val items = ArrayList() // 추가 items.add("A") // {"A"} items.add("B") // {"A", "B"} items.add("C") // {"A", "B", "C"} items.add("A") // {"A", "B", "C", "A"} // 삭제 items.remove("A") // {"B", "C", "A"} 사용 중에 이런 상황에서 A를 삭제했을 때 원하는 결과 값이 {"B", "C", "A"} 가 아닌 {"A", "B", "C"} 라면 removeAt으로 해당 위치의 데이터를 삭제할 수 있습니다. items.removeAt(3) // {"A","B","C"} 다만 이런 경우에 직접 값을 ..
보편적으로 사용하는 Glide에서도 gif 로드를 지원하지만 Glide 4.2.0 버전 이후부터 특정 디바이스에서는 버벅거리는 현상이 발생하는 것을 확인했습니다. https://github.com/bumptech/glide/issues/2471 GIFs animate slowly with Glide 4.2 · Issue #2471 · bumptech/glide Here is a screen capture of two gifs playing w/ Glide 3.7: Here is a screen capture of the same two gifs playing w/ Glide 4.2: GlideApp.with(context) .load(url) .diskCacheStrategy(DiskCacheStrate..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bcqDwI/btrXWKFqjJO/WLcUqoGj3LgAk8qIz4RYpk/img.png)
화면에 시간을 표시해주고 싶을 때 예전에는 TextView에 Thread를 사용하여 1초씩 sleep을 걸면서... 했던 기억이 납니다. 하지만 TextClock을 이용하면 너무 쉽습니다. 사용방법은 아주 간단합니다. format은 사용자의 스마트폰이 12시간/24시간을 사용하냐에 따라 어떻게 보여줄 지 설정합니다. yyyy : 년 / MM : 월 / dd : 일 / a : 오전/오후 / hh : 시 / mm : 분 / ss : 초 TextView를 Extends 했기 때문에 textColor 변경 사이즈변경 폰트변경 다 가능합니다! 코드 중간에 속성을 변경하는게 아니라면 따로 코드에서 설정할 것도 없습니다. 시간 표시할 때 꼭 써보세요!
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/PZkaq/btrsSwqwkP9/U6jjbuI1AKVLAwYY5VM3A0/img.png)
APK파일 앱 서명이 다르면 패키지명 충돌로 인해 설치가 안되는 문제가 있습니다. 따라서, 같은 keystore파일로 빌드를 해야하는데요. 앱 서명을 하지 않은 APK파일은 APK를 만든 사용자나 PC에 따라 패키지명이 충돌하는 경우가 있습니다. 이런 경우는 확인이 안되니 keystore 파일을 이용하여 앱 서명을 하여 사용해야 합니다. 앱 서명은 Signed APK 메뉴를 이용하여 만들면 되고.. 여기서는 앱 서명을 확인하는 방법을 설명하도록 하겠습니다. 먼저 JAVA가 설치된 폴더에서 bin\keytool 파일을 확인합니다. cmd의 해당 경로에서 다음과 같이 입력합니다. keytool -printcert -jarfile [APK 파일 이름]
Project 수준 build.gradle 설정 buildscript { ext { kotlin_version = "1.5.31" dokka_version = "0.10.0" } repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:4.2.1" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.dokka:dokka-gradle-plugin:$dokka_version" } } App 수준 build.gradle 설정 plugins { id 'com.android.app..
현재 Insert 하려는 데이터가 없으면 Insert, 아니면 아무것도 처리하지 않고 싶을 경우 INSERT INTO table_name (column1, column2) SELECT 'data1', 'data2' FROM DUAL WHERE NOT EXISTS(SELECT * FROM table_name WHERE column1 = 'data1' AND column2 = 'data2'); table_name 이라는 테이블에 column1과 column2에 각각 data1, data2를 추가하고 싶은데 table_name 테이블에서 column1의 값이 data1인 데이터가 없을 때 삽입한다.
- Total
- Today
- Yesterday
- 리눅스
- e편한세상 부평역 센트럴파크
- 개별 빌드
- Insert
- kotlin
- 빌드 변형
- TextClock 상속
- 이미지 로딩 라이브러리
- TextClock Format
- yoyo
- TextClock 언어 변경
- TextClock
- Gif 로딩
- Database
- 이부센
- java
- mysql
- 안드로이드
- 언어 변환
- manifestPlaceholders
- Locale 변경
- 홈체크
- Coil 0.10.0
- removeAt
- Android
- 나중에 들어온 아이템 삭제
- 데이터베이스
- build variants
- 스마트폰
- 사전점검 대행
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |