전체 글 151

[Android] Didn't find class "androidx.core.app.CoreComponentFactory"

Java 에서 Kotlin 변환 작업중 이상한 에러 로그가 발생되었다. 이런 로그가 발생되면 세상 신경 많이 쓰이는 듯 하다. 검색 도중 아래와 같이 proguard-rules.pro 파일에 한줄 추가하였더니 발생하지 않았다. 파일명 : proguard-rules.pro 소스 추가 -keep class androidx.core.app.CoreComponentFactory { *; } Loading... proguard-rules.pro E/LoadedApk: Unable to instantiate appComponentFactory java.lang.ClassNotFoundException: Didn't find class "androidx.core.app.CoreComponentFactory" on p..

안드로이드 2020.02.27

[Android] ConstraintLayout 이해해 보자

Android 개발자들의 고난인 이놈의 레이아웃! 해결책? ConstraintLayout이 나왔다. Google에서 최적화 되어 최고의 속도를 낼수 있을거라고 하며, RelativeLayout을 자주 사용하신 분들은 무조건 교체 작업을 진행하신다면 좋을것 같습니다. 저는 Linear Layout을 주로 사용하여 레이아웃을 많이 사용하였어서 변경한 결과 확실히 XML 소스가 많이 줄어 들었으며, ConstraintLayout이 웹 처럼 반응형 레이아웃도 가능하다 하는데 솔직히 아직은 어떻게 활용해야 할지는 모르겠다. 연결 고리를 하단으로 한다면 계속 그 밑으로 따라다닌다 정도? :) 그리고 단점이 연결 고리를 넣다보면 소스가 더 길어 질수도 있으며 특정 레이아웃은 힘들 수 있다. 추후 시간 될때 저도 제가..

안드로이드 2020.02.07

[Android] 리젝 Intent Scheme Hijacking

앱 업로드 리젝 사유 Intent Scheme HijackingYour app(s) are using a WebView that is vulnerable to Intent scheme hijacking.To address this issue, follow the steps in this Google Help Center article. Google 가이드 문서https://support.google.com/faqs/answer/9101196 처리 방안은 1. 해당 옵션이 true라면 False로 설정android:usesCleartextTraffic="false" 2. Intent 로 URL을 받아 WEBView에 세팅한다면 해당 부분을 http 를 체크하여 https로 변환 설정

안드로이드 2020.01.13

[Android] Kotlin Rxjava

언젠가는 좀 편하게 공부하며 즐기면서 일할것 같았지만 더 공부할게 계속 나타난다... 아키텍처 및 알고리즘도 설계가 가능해 져야할텐데... 저는 이 일이 천직이 아니였나보네요. 다들 열공 하시길 Kotlin 넘어오면서 필수로 공부해야 할 내용 같습니다. https://github.com/ReactiveX/RxJava/tree/2.x불러오는 중입니다... https://github.com/ReactiveX/RxAndroid/tree/2.x ReactiveX/RxAndroid RxJava bindings for Android. Contribute to ReactiveX/RxAndroid development by creating an account on GitHub. github.com implementat..

안드로이드 2020.01.12

[Android] retrofit + okhttp 공부하라

요즘 통신은 retrofit + okhttp 를 무조건 활용하라. 엄청난 어싱크태스크 만들고 쇼하던 시대는 사라진듯 하다. 싱글톤으로 알아서 백그라운드 스레드를 사용하여 처리해주기 때문에 개발이 편해졌다. 추후 어노테이션 관련하여 찾아서 검색도 해보시면 좋을 듯 하다. 추천 https://square.github.io/retrofit/ Retrofit A type-safe HTTP client for Android and Java square.github.io implementation 'com.squareup.retrofit2:retrofit:2.7.1' implementation 'com.squareup.retrofit2:converter-gson:2.7.1'

안드로이드 2020.01.12

[Android] 해시키 확인

카카오톡 SDK / 페이스북 SDK에 등록시 필요한 해시키 개발시에는 debugkey의 해시태그로 등록하여 작업했다. Kotlin 소스 fun getHashKey(context: Context): String? {try { if (Build.VERSION.SDK_INT >= 28) { val packageInfo = getPackageInfo(context, PackageManager.GET_SIGNING_CERTIFICATES) val signatures = packageInfo.signingInfo.apkContentsSigners val md = MessageDigest.getInstance("SHA") for (signature in signatures) { md.update(signature.t..

안드로이드 2018.11.14

[Android] AlarmManager

반복적인 작업을 알림을 사용하여 해결해 볼까 하여 찾다가 좋은 정보가 있어 공유 합니다. 출처 : https://medium.com/marojuns-android/scheduling-repeating-alarms-c36d1a9314cbAlarmManager 클래스에 기반한 알람은 앱의 생명주기 이외의 상황에서도 작업을 수행할 수 있는 방법을 제공한다. 예를 들어, 일기예보 앱처럼 날씨정보를 다운받기 위해 하루에 한 번 구동 하는 앱을 실행하는데 사용될 수 있다. 알람은 다음과 같은 특징을 갖고있다: 특정 시간이나 인터벌에 인텐트를 작동시킬 수 있다. 서비스를 시작하고 작업을 실행하기 위해 브로드캐스트 리시버와 함께 사용할 수 있다. 앱 밖에서도 작동되기 때문에, 단말 자체가 sleep 모드이거나 앱이 구..

안드로이드 2018.03.26

[Android] 주소록 가져오기

package com.zetta.businessgps.util; import android.content.Context; import android.database.Cursor; import android.provider.ContactsContract; import android.util.Log; import java.util.ArrayList; import java.util.HashMap; import java.util.regex.Pattern; public class ContactsList { final private Context ctx; private boolean needMobPhone = true; /** 중복또한 제거한다. [null이나 빈값을 포함할경우 중복을 제거하면 기준이 애매해지기 때..

안드로이드 2018.03.23