분류 전체보기
[안드로이드] 서비스 startCommand에 관하여
안드로이드는 사용자에게 보이지 않는 기능들을 구현할 수 있도록 Service를 제공합니다. 서비스는 백그라운드 서비스(Background Service), 포그라운드 서비스(Foreground Service), 바인딩 서비스(Bound Service)로 나눌 수 있습니다. 1. 백그라운드 서비스는 UI의 뒤에서 실행되는 서비스를 말하며 사용자에게 실행 여부가 보이지는 않습니다. 개별의 애플리케이션 구성 요소로 동작하며 앱이 실행 중에는 종료되지 않으나 Background 상태로 진입시 서비스의 동작을 보장하지는 않습니다. 안드로이드의 메모리 정책에 의해 종료될 수 있습니다. 2. 포그라운드 서비스의 동작은 백그라운드 서비스와 동일하게 사용자에게 보이지 않는 서비스를 제공하나 Notification 을 통..
[안드로이드] 애니메이션 Interpolator 에 관하여
안드로이드는 자체적으로 애니메이션을 지원합니다. 그 중 Interpolator는 보간 즉 시작지점과 종료지점을 연결하는 효과를 말합니다. https://developer.android.com/reference/android/view/animation/BaseInterpolator BaseInterpolator | Android Developers developer.android.com 1. AccelerateInterpolator : 시작지점에서 가속하여 종료지점에 도달합니다. 2. AnticipateInterpolator : 시작지점의 뒤쪽으로 이동한 다음 종료지점에 도달합니다. 3. OvershootInterpolator : 시작지점에서 시작해 종료지점을 지나쳐 다시 종료지점에 도달합니다. 4. Bo..
[안드로이드] Android studio Arctic Fox 버전 이후 gradle allprojects 추가방법
안드로이드 스튜디오 버전을 업데이트하고 신규 프로젝트파일을 생성했습니다. 라이브러리 추가가 필요해서 jcenter와 jitpack.io 레포지토리 등록을 평소처럼 프로젝트 단위의 build.gradle에서 추가하고 Sync하는데 아래와 같은 오류 메시지와 함께 빌드 되지 않았습니다. [build.gradle - project] . . allprojects { repositories { google() mavenCentral() maven { url "https://jitpack.io" } jcenter() // Warning: this repository is going to shut down soon } } . . > Build was configured to prefer settings reposit..
[AWS Lightsail-ubuntu] 메모리가 부족해서 MYSQL이 설치가 안된다?
sudo fallocate -l 1G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile # /etc/fstab /swapfile none swap sw 0 0 sudo reboot #재시작 후 스왑메모리 생성확인 swapon -s 참고 : https://www.nemonein.xyz/2019/10/2587/ AWS Lightsail, 설치(소감?) – 바깥 세상으로 www.nemonein.xyz 덕분에 장장 6시간만의 삽질이 끝이났습니다.
[안드로이드] 앱 재시작 방법 (Android app restart programmatically)
데이터베이스 복원이나 언어설정 등 환경변수의 변경으로 앱 자체를 완전히 재시작해야 하는 경우가 있습니다. 이럴때 아래 코드를 이용하여 앱을 재시작할 수 있습니다. PackageManager packageManager = getPackageManager(); Intent intent = packageManager.getLaunchIntentForPackage(getPackageName()); ComponentName componentName = intent.getComponent(); Intent mainIntent = Intent.makeRestartActivityTask(componentName); startActivity(mainIntent); System.exit(0);
[안드로이드] String객체 null Check
JAVA 기준 String str; 1. if(str != null) 또는 2. if(TextUtils.isEmpty)를 사용해서 Null Check 할 수 있습니다. TextUtils.isEmpty 은 Null 뿐만 아니라 공백인지까지 검사합니다.
[안드로이드] JCenter Deprecated
안드로이드 스튜디오에서 빌드 작업 중 JCenter 지원이 종료된다는 빌드 메시지를 확인했습니다. 관련 자료를 확인해 보았는데, 2022년 2월 1일까지는 JCenter를 사용할 수 있고 그 뒤에는 JCenter에 올라와 있는 라이브러리를 다운로드할 수 없다고 합니다. 제가 빌드하고 있는 앱의 라이브러리 중에서는 JCenter에서 다운로드하는 라이브러리가 많아서 아직 삭제하지 못하고 있습니다. 아마도 대부분의 개발자분들이 그럴 것이라 생각합니다. jcenter()를 사용하지 않는다면 bulid.gradle에서 모든 jcenter() 항목을 삭제해주면 빌드 메시지가 더 이상 나타나지 않습니다. 참고 : http://developer.android.com/studio/build/jcenter-migratio..
[안드로이드] GreenDao - Could not init DaoConfig 디버그
저는 보통 SQLITE DAO로 greenDao를 이용합니다. 이때까지 큰 문제가 없었는데, 새로운 앱에 proguard를 새로 적용하면서 문제가 발생했습니다. proguard-rules.pro 에 아래와 같은 코드를 삽입하여 문제를 해결합니다. # greenDao -keepclassmembers class * extends org.greenrobot.greendao.AbstractDao { *; } -keep class **$Properties { *; } 참고 : https://stackoverflow.com/questions/42023703/only-using-proguard-could-not-init-daoconfig-arrayindexoutofboundsexception Only using Pr..