반응형
rss 아이콘 이미지

[Android] 화면 회전 리로딩 막기

카테고리 없음 2023. 4. 5. 13:16 Posted by 법당오빠
반응형

AndroidManifast.xml

 

android:configChanges="orientation|keyboardHidden|screenSize" 추가

반응형

Swift 클로저 표현 (Closure Expressions)

카테고리 없음 2023. 3. 17. 11:07 Posted by 법당오빠
반응형
클로저 표현 (Closure Expressions)
클로저 표현은 인라인 클로저를 명확하게 표현하는 방법으로 문법에 초첨이 맞춰져 있습니다. 클로저 표현은 코드의 명확성과 의도를 잃지 않으면서도 문법을 축약해 사용할 수 있는 다양한 문법의 최적화 방법을 제공합니다.
정렬 메소드 (The Sorted Method)
Swift의 표준 라이브러리에 sorted(by:)라는 알려진 타입의 배열 값을 정렬하는 메소드를 제공합니다. 여기 by에 어떤 방법으로 정렬을 수행할 것인지에 대해 기술한 클로저를 넣으면 그 방법대로 정렬된 배열을 얻을 수 있습니다. sorted(by:)메소드는 원본 배열은 변경하지 않습니다. 아래와 같이 이름으로 구성된 names 배열을 sorted(by:)메소드와 클로저를 이용해 정렬해 보겠습니다.
 
let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"]
 
sorted(by:) 메소드는 배열의 콘텐츠와 같은 타입을 갖고 두개의 인자를 갖는 클로저를 인자로 사용합니다. name의 콘텐츠는 String 타입이므로 (String, String) -> Bool 의 타입의 클로저를 사용해야 합니다.
클로저를 제공하는 일반적인 방법은 함수를 하나 만드는 것입니다. 위 타입을 만족 시키는 함수를 하나 만들면 정렬에 인자로 넣을 수 있는 클로저를 만들 수 있습니다.
 
func backward(_ s1: String, _ s2: String) -> Bool {
 
return s1 > s2
 
}
 
var reversedNames = names.sorted(by: backward)
 
// reversedNames is equal to ["Ewa", "Daniella", "Chris", "Barry", "Alex"]
 
backward클로저를 만들고 그것을 names.sorted(by: backward)에 넣으면 원본 배열의 순서가 바뀐 배열을 정렬 결과로 얻을 수 있습니다. 비교하는 클로저를 사용하는데 제법 긴 코드를 사용했는데, 앞으로 클로저의 다양한 문법 및 사용에 대해 알아 보겠습니다.
반응형

Android 메모리 최적화 onTrimMemory

카테고리 없음 2023. 3. 8. 14:12 Posted by 법당오빠
반응형

https://developer.android.com/topic/performance/memory?hl=ko 

 

앱 메모리 관리  |  Android 개발자  |  Android Developers

Android용으로 개발할 때 사전에 메모리 사용량을 줄이는 방법을 알아봅니다.

developer.android.com

 

앱이 백그라운드에서 있다가 다시 포어그라운드로 올 때

앱이 재시작 될대  메모리 할당이 해제된 경우 사용하면 좋다

 

public static final int TRIM_MEMORY_BACKGROUND - Value : 40
=> 프로세스가 LRU리스트로 들어감. 사용자가 다시 앱으로 돌아왔을때 리소스를 정리함.

public static final int TRIM_MEMORY_COMPLETE - Value : 80
=> 프로세스가 LRU 리스트에 가까워짐. 충분한 메모리가 확보되지 않는 경우 바로 App 종료

public static final int TRIM_MEMORY_MODERATE - Value : 60
=> 프로세스가 LRU 리스트의 중간에 들어감. 시스템의 나은 성능을 위해 다른 프로세스에서 메모리를 확보시킴

public static final int TRIM_MEMORY_RUNNING_CRITICAL - Value : 15
=>실행중인 프로세스를 유지 할수 없는 메모리가 매우 부족한 상태. 중요하지 않은 메모리를 초기화시켜 메모리를 확보해야하는 상태

public static final int TRIM_MEMORY_RUNNING_LOW - Value : 10
=> 백그라운드 프로세스가 아니 장치 메모리 부족 상태. 실행중인 프로세스에서 사용할 메모리를 확보하기 위해 불필요한 메모리를 초기화 시켜야하는 상태

public static final int TRIM_MEMORY_RUNNING_MODERATE - Value : 5
=> 백그라운드 프로세스가 아닌 장치 메모리가 알맞은 상태. 부족해지는 경우 불필요한 메모리를 해제시키는 상태

public static final int TRIM_MEMORY_UI_HIDDEN - Value : 20
=> 사용자 인터페이스 더 이상 보여줄수 없음. (Activity 종료도 해당)

 

반응형