본문 바로가기
[android] CONNECTIVITY_ACTION deprecated 에 대한 이야기 - Connectivity 가 변경되었을 때 받을 수 있는 broadcast 는 ConnectivityManager.CONNECTIVITY_ACTION 가 있었다. 그러나 이 녀석은 API 28 (POS) 부터 deprecated 되었다. - 사실 이 녀석은 이미 deprecated 의 징조를 띄고 있었다. targetSdk 24 (NOS) 부터 static receiver 로 받을 수 없게 되었고, targetSdk 26 (OOS) 부터는 background restriction 정책으로 이 녀석을 포함한 다른 녀석들도 static receiver 로 받을 수 없게 되었다. 그리고 결국 API 28 (POS) 부터는 deprecated 된 것이다. deprecated 가 되었기 때문에 사실 target.. 2019. 4. 9.
[android] WakefulBroadcastReceiver 를 알아보자! [android] WakefulBroadcastReceiver 를 알아보자! https://developer.android.com/reference/android/support/v4/content/WakefulBroadcastReceiver -우선 시작하기에 앞서 이 녀석은 26.1.0 에서 deprecated 되었으며 그 이유는..Android O 에서 background restriction 이 생겼기 때문이다.그래서 이 녀석 대신 JobScheduler 를 사용하는 것이 권장된다. -이 녀석은 원래 BroadcastReceiver 의 한 형태로, device wakeup event 를 받아서 그 작업 처리를 Service 에 넘기는 역할을 했던 녀석이다. 또한 그 과정중에 device 가 sleep.. 2018. 12. 1.
[Objective-C] 객체 복사와 저장 [Objective-C] 객체 복사와 저장출처 : OS X 구조를 이해하면서 배우는 Objective-C Chap 12. Notice : 정리자(돼지왕 왕돼지)가 remind 하고 싶은 내용이나 모르는 내용 기반으로 정리하는 것이기 때문에 구체적인 내용은 책을 사서 보시기를 권장드립니다. 13.1. 객체 복사 * 13.1.1. 얕은 복사와 깊은 복사 * 13.1.2. 존이란 -Cocoa 에서 이전에는 동적으로 확보된 메모리 관리를 할 때 존(zone)이라고 부르는 영역을 이용했다.현재(Objective-C 2.0 또는 가비지 컬렉션을 사용할 때) 사용하지 않지만 copyWithZone: 과 같은 함수들의 인수 형태로 형식적으로 남아 있다. -동적으로 메모리 영역이 확보되는 힙(heap)영역에는 주소 공간.. 2018. 1. 5.
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #41 ~ #48 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #41 ~ #48 출처 : Effective Objective-C #41 : 동기화에는 락보다는 디스패치 큐를 사용하라 동기화 문법을 제공하기 위해 디스패치 큐를 사용할 수 있다. 그리고 그냥 간단하게 @synchronized 블록이나 NSLock 객체를 이용해 동기화를 제공할 수도 있다. 동기화와 비동기화 디스패치를 함께 사용하는 것은 일반적인 락으로 하는 동기화와 동일한 기능을 제공할 수 있지만, 스레드에서 비동기 디스패치로 호출하면 잠금 없이 호출한다. 병렬 큐와 배리어 블록을 이용하면 동기화를 좀 더 효율적으로 할 수 있다. #42 : performSelector 메서드군보다는 .. 2017. 10. 16.
[Effective Objective-C] #46 dispatch_get_current_queue 사용을 피하라 [Effective Objective-C] #46 dispatch_get_current_queue 사용을 피하라 출처 : Effective Objective-C -GCD 를 사용하면서 특히 여러 큐에 디스패칭할 때 어떤 큐가 현재 실행되고 있는지 알아내야 하는 경우가 흔히 있다.dispatch_queue_t dispatch_get_current_queue() 이 함수가 하는 일은 현재 실행되고 있는 큐를 반환하는 것이라고 문서에 나와 있다.그러나 주의 깊게 다루어야 한다.사실 이 함수는 iOS 6.0 에서 공식적으로 폐기되었다.그러나 맥 OS X 10.8에서는 폐기되지 않았다.그렇다 하더라도 맥 OS X 에서도 사용을 피해야 한다. -이 메서드를 흔히 사용하게 되는 전형적인 안티패턴(anti patter.. 2017. 10. 13.
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #33 ~ #40 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #33 ~ #40 출처 : Effective Objective-C #33 : Weak 참조를 사용하여 리테인 순환을 피하라. 참조를 weak 로 만들면 리테인 순환을 피할 수 있다. weak 참조는 자동으로 nil 로 채워질 수도, 채워지지 않을 수도 있다. 자동으로 nil 로 설정되는 것은 ARC 에서 소개된 새로운 기능이다. 그리고 런타임에서 구현되었다. 자동으로 nil 로 채워지는 weak 참조를 읽는 것은 항상 안전하다(반드시 정상 객체가 아니면 nil 이기 때문). 그 말은 절대로 할당 해제되는 참조를 포함하지 않는다는 것이다. #34 : 오토릴리스 풀을 사용하여 최고 메모리 .. 2017. 10. 5.
[Effective Objective-C] #33 weak 참조를 사용하여 리테인 순환을 피하라 [Effective Objective-C] #33 weak 참조를 사용하여 리테인 순환을 피하라 출처 : Effective Objective-C -객체들끼리 서로를 어떠한 방법으로 참조하여 순환을 이루고 있는 객체 그래프(object graph)에서 순환이 발생하는 것을 흔히 볼 수 있다.순환이 발생하면 특정 지점에서 메모리 누수가 발생할 것이다.순환을 이루는 모든 객체가 결국엔 순환 밖에 있는 객체들에 의해 참조되지 않기 때문이다.그렇게 되면 순환 내의 객체에 접근할 수 있는 방법이 더는 없게 된다.그뿐 아니라 순환 내의 객체들은 서로를 할당 해제하지 않을 것이다.서로가 서로를 살아 있게 유지하기 때문이다. -리테인 순환 중 가장 간단한 것은 객체 두 개가 서로를 참조하는 것이다. -리테인 순환 내의 .. 2017. 9. 27.
[Effective Objective-C] #29 참조 세기를 이해하라 [Effective Objective-C] #29 참조 세기를 이해하라 출처 : Effective Objective-C -메모리 관리는 오브젝티브-C 같은 객체 지향 언어에서 중요한 개념이다.어떠한 객체 지향 언어든 그 언어의 메모리 관리 모델을 깊이 이해하고 있으면 메모리를 효과적으로 사용하고 버그가 없는 코드를 작성할 수 있다.이 법칙을 이해하고 나면 오브젝티브-C 의 메모리 관리가 더는 복잡하지 않고 ARC 를 쉽게 사용할 수 있을 것이다.ARC 는 거의 모든 메모리 관리에 대한 결정을 컴파일러에 넘긴다.그래서 개발자는 비지니스 로직에만 집중할 수 있다. -오브젝티브-C 는 메모리 관리를 위해 reference count 를 사용한다.객체가 계속 살아 있길 원하면 count 수를 올리고, 그 객체의.. 2017. 9. 22.
[android] Android 6.0(MOS) SDK 에서 바뀐 것들!! [android] Android 6.0(MOS) SDK 에서 바뀐 것들!! https://commonsware.com/blog/2015/08/17/random-musings-android-6p0-sdk.html -ACTION_INSTALL_PACKAGE 를 사용하면서 targetSdkVersion 이 22 이상이면 REQUEST_INSTALL_PACKAGE permission 이 반드시 있어야 한다. -PendingIntent 는 FLAG_IMMUTABLE 이라는 option 이 있다.이것은 PendingIntent 를 invoke 할 때 변형되지 않게 하는 것으로 security 측면에서 좋다. -새로운 Setting screen 들을 Settings 의 action string 을 통해 접근할 수 있.. 2017. 9. 18.
반응형