본문 바로가기

#android

[Java] WeakReference, SoftReferernce, StrongReference 제가 생각 하는 WeakReference, SoftReference, StrongReference에 대해 공유 하고자 합니다. GC가 메모리를 확보하게 위해 쓰레기 취급 하는 동급 형태WeakReference > SoftReference > StrongReferece 1. WeakReference - GC가 언제든지 쓰레기 취급 할 수 있는 Reference : 따라서 메모리 처리에 크게 신경 쓸 필요가 없다. - new WeakReference(new Object()); 형태 2. SoftReference - GC가 메모리가 부족(OutOfMemory 상태 가기 직전) 일 경우, 쓰레기 취급 해버리는 Reference - new SoftReference(new Object()); 형태 3. String.. 더보기
[Kotlin] Kotlin을 사용하기 위한 기본 설정 Kotlin을 android studio에서 사용하기 위해 gradle 기본 설정을 어떻게 해야 하는지 공유 하고자 합니다. 이 설정은 Android Studio에서 Empty Project를 먼저 만든 상태에서 gradle을 설정 하는 부분만 추가한 소스 입니다.참고로 현재 블로그에 올린 소스는 Android Studio 2.2.3. 버전 입니다. 0. Android Studio에서 Kotlin 플러그인 설치 File -> Settings 를 선택 합니다. Plugins -> Install JetBrains plugin... 버튼을 클릭 합니다. Kotlin으로 검색 한 후 Kotlin 을 선택 합니다.Install 버튼을 누르면 설치가 되고Android Studio를 Restart 하면 플러그인 설치.. 더보기
[Kotlin] Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter intent Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter intent 혹시 Kotlin을 쓰시다가 위와 같은 에러를 보신적 있으신가요?? 내용을 보면 Parameter 중에 Notnull 인데 null이 넘어 온다는 의미 네요.그리고 그 Parameter는 intent 라는 이야기 입니다. 에러가 발생한 부분은 Service 에서 아래 함수 때문이네요.override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int { return super.onStartCommand(intent, flags.. 더보기
[Android] Fragment 에서 getActivity를 사용시 NullpointerException 발생 Fragment에서 getActivity 함수를 이용할 수가 있습니다.Fragment는 Activity 내부에서 UI를 다양하게 표현하기 위한 용도 이므로,당연히 중요한 함수 입니다. 하지만, 가끔 getActivity 함수에서 NullPointerException이 발생 합니다. 저같은 경우는 onCreateView 함수에서 getActivity 함수를 이용 했었습니다. 테스트 시, 거의 발생 하지 않는 에러 입니다. 하지만, 앱을 등록 하고 사용자가 많아지면서 자주 눈에 띄게 됩니다. 그럼.. 어떻게 해야 할까요?? 아래는 StackOverFlow에서 나오는 답변 입니다. http://stackoverflow.com/a/40426450 onCreateView 대신 onActivityCreated 함수.. 더보기
[Kotlin] kotlin 프로젝트 생성 시, 참조할 만한 소스 Kotlin으로써 새로운 프로젝트를 시작하고자 할 때,참조할만한 괜찮은 소스가 있어서 공유 하고자 합니다. https://github.com/Plastix/Kotlin-Android-Boilerplate 소스 형태는 아래와 같다고 쓰여 있네요.LibrariesDagger 2 -> 의존 관계 주입(Dependency Injection) 라이브러리RxJava 2 and RxAndroid -> 요새 화두가 되고 있는 Reactive 라이브러리Retrofit 2 -> 네트워크 통신 라이브러리Picasso -> 이미지 로드 라이브러리 (전 Glide로 교체할 예정)Google Support Libraries -> 구글에서 지원해주는 라이브러리Testing LibrariesJUnitMockitoRequirement.. 더보기
[Android] WebView 상에서 Intent Uri 실행 public class CustomWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("tel:")) { Intent call_phone = new Intent(Intent.ACTION_CALL); call_phone.setData(Uri.parse(url)); startActivity(call_phone); } else if (url.startsWith("sms:")) { Intent i = new Intent(Intent.ACTION_SENDTO, Uri.parse(url)); startActivity(i); } .. 더보기
[Android][Kotlin] public static final -> const val Java에서 public static final 을 kotlin 에서는 const val로 사용하면 똑같이 사용 할 수 있습니다. Contants.javapackage com.test.kotlin; public class Contants { public static final int CONTANTS_INT_ID_1 = 100; public static final int CONTANTS_INT_ID_2 = 101; public static final int CONTANTS_INT_ID_3 = 102; public static final int CONTANTS_INT_ID_4 = 103; } Contants.kt@file:JvmName("Contants") package com.namuon.ringq.dat.. 더보기
[Android] VectorDrawable 테스트 사이트 Android Lollipop 이후 버전 부터 VectorDrawable 를 사용할 수 있게 되었습니다. VectorDrawable은 이미지가 아닌 Path 데이터만을 가지고 아이콘을 그릴 수 있습니다.그리고 아이콘에 애니메이션을 줄 수도 있죠. 그래서 앱 크기를 줄일 수 있을 뿐더러서로 다른 화면 사이즈에 대응도 쉽게 할 수 있습니다. Android VectorDrawable : https://www.youtube.com/watch?v=8e3I-PYJNHg 위 동영상을 보면 Asset Studio에 기본적인 아이콘을 제공해 주고 있습니다. 혹시, 기본적인 아이콘이 아니라 커스텀하게 만들고 싶으신 분들에게 좀 도움이 될 사이트를 공유합니다. https://romannurik.github.io/Androi.. 더보기