본문 바로가기

안드로이드

안드로이드 메모리 관리는 어떻게 ? (누수 예방법) 안드로이드 메모리 관리 (누수 방지 안녕하세요. 오늘은 안드로이드 메모리 관련 입니다. 기존에도 한번 썻던것 같은데요. 메모리가 언제 leak이 나더라...다시 생각해보니... 어느새 다 잊어버렸습니다.하하하ㅏㅎㅎㅎㅎ.... 안드로이드의 경우 자바의 피를 이어받아... 자바의 성향을 그대로 따릅니다. (당연;;) 그렇다면 언제 메모리 누수가 발생하느냐? 뭐 무수히 많은 경우가 있겠지만 안드로이드 기준으로 흔히 사용하게 되는 inner class 가 문제인 것입니다. 웹 개발할 당시는 inner class를 1년에 한번 쓸일이 있을까 말까 했습니다만 안드로이드 개발시에는 하루에도 수십번 사용합니다. 그것도 아주 무분별 하게... 그렇다면 왜 inner class 가 문제가 되냐? 에 대해 알아보겠습니다. .. 더보기
안드로이드 FCM 푸시서버 예제 안녕하세요. 지난번에 firebase 안드로이드 FCM 푸시 관련하여 알아보았습니다. 오늘은 밑도 끝도 없이 예제를 통해서 간단한 사용법을 배워보죠! ***htttp V1 사용법이 아닙니다. 구글에서 말하는 기존의 구형 원시 사용법입니다. 예제는 간단합니다. 1 2 3 4 5 //구글 인증 서버키 private final String AUTH_KEY_FCM = "AAAAlTG6ylg:APA91bHo8 ... "; private final String API_URL_FCM = "https://fcm.googleapis.com/fcm/send"; //기기별 앱 토큰 private String userDeviceIdKey = "d-tse-wQXDA:APA91bH ..."; cs 인증서버키를 가지고 있구요. 예.. 더보기
안드로이드 API 26 (8.0 오레오) 대비 하기 - 백그라운드 제한 안드로이드 API 26 - 강제 업데이트 대비하기 안녕하세요. 지난번에도 소개 했었던 안드로이드 API 26(안드로이드 8.0 오레오) 강제 업데이트를 위한 대비 관련하여 상당히 많은 부분을 수정하고 추가해야 하는데요. 하...(벌써 현기증이) 구글은 이미 한참전 부터 공지를 했었죠. 2018년 8월까지는 새로운 앱에 대해서, 2018년 11월 까지는 기존의 앱까지 통틀어서 강제로! 무조건 API level 26 으로 올려야 한다고 권고 하고 있습니다. 이는 이번 일회성에 그치지 않고 이후에 판올림이 일어날때 마다 (거의 매년) 이번일과 같은 강제적 업데이트를 해야한다고 하고 있습니다. 하...(왜 그러냐 너네들) 큰 틀에서는 64bit 지원을 위한 초석 이며 보안성을 높이기 위한 조치 라고 합니다. 6.. 더보기
코틀린 기초 공부 해보기 3 1. 루프문 사용 루프문의 사용도 뭐 비슷비슷하네요. 1 2 3 4 5 val items = listOf("apple", "banana", "kiwifruit") for (item in items) { println(item) } Colored by Color Scripter cs 여기서 listOf 가 궁금하실텐데요. 이건 java에서 리스트 객체를 생성한다고 생각하면 됩니다. for (item in items) { 여기서 돌리는거죠. 참 쉽죠잉 돌리면서 index가 필요할수 있으니 그럴때 이렇게 씁니다. 1 2 3 4 5 6 7 val items = listOf("apple", "banana", "kiwifruit") for (index in items.indices) { println("item a.. 더보기
코틀린 기초 공부해보기 2 1. 조건문의 사용 1 2 3 4 5 6 7 8 fun maxOf(a: Int, b: Int): Int { if (a > b) { return a } else { return b } } Colored by Color Scripter cs if문은 뭐. 그냥 보셔도 아시겠죠? : Int 이건 리턴형이 int라는 말입니다. 다음은 when 입니다. 자바에서 switch case 라고 생각하시면 좋을것같네요. 1 2 3 4 5 6 7 8 9 10 fun describe(obj: Any): String = when (obj) { 1 -> "One" "Hello" -> "Greeting" is Long -> "Long" !is String -> "Not a string" else -> "Unknown" } Col.. 더보기
코틀린 기초 같이 공부하기 1 안드로이드에서 코틀린을 공식언어로 지정해버렸죠. 자바에서 코틀린으로 완전히 넘어갈지 아닐지 그건 알수 없지만 현재로써는 코틀린도 공부해 둘 수 밖에 없겠습니다. 코틀린은 안드로이드 스튜디오의 뼈대인 intelliJ 를 만든 jetbrain 사에서 만들어 배포하고 있습니다. 구글에서 전폭적인 지지를 아끼지 않네요. 나온지는 꽤 되어서 이미 많은 앱에서 쓰이고 있습니다. 코틀린은 환경은 자바와 100% 호환이 된다고 합니다. 그들말로는... 이말은 즉 섞어서 쓸수 있다. 정도로 풀이 됩니다. 코틀린을 적용하더라도 기존의 자바라이브러리와 소스를 버리지 않아도 된다는 말이죠. 이 상황은 마치.. 아이폰 진영의 object C 와 swift를 짬뽕하는 코드를 보는것 같네요. * kotlin 공식사이트의 basic.. 더보기
안드로이드 프래그먼트 라이프 사이클(생명주기) 알고 쓰기~!! 안드로이드 플래그먼트 라이프사이클 입니다. 최근에는 플래그먼트를 지양하고자 하는 분들도 있지만 어쨋든 우리는 알아야 합니다. 플래그먼트 라이프 사이클은 액티비티와 다르게 조금 복잡합니다. 왜냐. 액티비티에서 시작되어 만들어진 객체이기 때문이죠. 액티비티에서 부터 순서대로 따라가다 보면 이해가 빠르실겁니다. 그럼 최대한 단순하게 로그를 찍어서 확인 해보죠. 우선 액티비티 를 만들어줍시다. 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 29 30 31 32 33 34 35 36 37 package com.example.test.mynewapplication; import android.support.v4.app.Fragm.. 더보기
안드로이드 웹뷰 기초 ~ 알아보기 안드로이드 웹뷰 기초 안녕하세요. 모바일과 웹은 우리 일상생활에서 필수가 되버린지 오래인 것 같네요. 안드로이드 개발시에도 역시나 웹은 필수 요소중 하나 이기도 합니다. 개발시 웹뷰 라는 객체를 활용하여 앱내에서도 기존의 모바일 브라우저 처럼 사용할 수 있습니다. 우리 앱내부에 브라우저를 심는다고 생각하면 편할 것 같네요. 그러나 웹 브라우저들의 막강한 기능을 다 지원하지는 않습니다. 그래도 대부분은 어떤 꼼수를 써서든 구현이 되긴 합니다^^;; 웹뷰 사용법 기초에 대해서 알아봅시다. #웹뷰 #웹뷰사용법 #웹뷰기초 안드로이드 웹뷰의 경우 초기에는 매우 제약적인 기능만 사용이 가능했습니다. 이는 우리가 원하는 하이브리드 웹과 거리가 멀었죠. 그러던 중 반가운 소식이 들려옵니다. 구글은 '안드로이드킷캣' 을.. 더보기