본문 바로가기
Coroutine first launch slow.. Coroutine first launch slow.. -android coroutine 1.1.1 기준 각 dispatcher 당 처음 launch 에 대해 매우 느린 현상이 있다. 예를 들어 GlobalScope.launch(Dispatchers.Main){ } 으로 코드를 실행시킬 경우 300ms 정도 이상이 걸리곤 한다.이는 first launch 에만 해당하며, 이후에는 process kill 되기 전까지는 0~1ms 의 속도를 낸다. -이는 각 dispatcher 별 첫 launch 에 모두 해당하며, Main 이 특히 오래 걸리고, 하나의 trial 이 다른 dispatcher 의 first launch 에 긍정적 영향은 미치지만, 그래도 여전히 오래 걸리는 이슈가 있다. -https://gi.. 2019. 4. 26.
[coroutine] exception 을 이해해보자 #1 ( in my coroutine scope ) -이 글은 coroutine exception 에 대한 일종의 심화과정이라고 볼 수 있다.기본 exception 에 대한 내용을 먼저 이해한 후 이곳의 글을 보자![coroutine] Exception handling -class MainActivity : Activity() { private val coroutineScope = CoroutineScope(Dispatchers.Main) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) findViewById(R.id.btn).setOnClickListener { try { co.. 2019. 3. 5.
[android] Gradle Tutorial #2 Dependency, Android Libraries and Multi-project setup -external library jar 를 사용하려면 compile configuration 을 사용하면 된다. dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) // api 와 implementation 으로 바뀌었다.} android { ...} -compile 은 main app 을 compile 한다.compile 되는 모든 것은 compile classpath 로 잡히고, final APK 에 포함이 된다. 다음과 같은 compile configuration 을 추가할 수 있고,buildType 을 추가하면 자동으로 compile 이 .. 2018. 10. 5.
[android 보안] 권한 #1 [android 보안] 권한 출처 : Android Security Internals 2장개요 목차 2. 권한 2.1. 권한의 본질 2.2. 권한 요청 2.3. 권한 관리 2.4. 권한 보호 수준 2.4.1. normal 2.4.2. dangerous 2.4.3. signature 2.4.4. signatureOrSystem 2.5.권한 할당 2.5.1. 권한과 프로세스 속성 2.5.2. 프로세스 속성 할당 2.6. 권한 적용 2.6.1. 커널 수준 적용 2.6.2. 네이티브 데몬 수준 적용 2.6.3. 프레임워크 수준 적용 2.7. 시스템 권한 2.7.1. signature 권한 2.7.2. development 권한 2.8. 공유 사용자 ID 2.9. 커스텀 권한 2.10. 공개 컴포넌트와 비공개 컴.. 2018. 4. 16.
[android] Resource Merging 에 대한 이야기.. [android] Resource Merging 에 대한 이야기.. http://tools.android.com/tech-docs/new-build-system/resource-merging-Gradle build 에서는 resource merge 에 대해 새로운 규칙이 적용된다. 기존의 build system 에서는 resource folder list 를 aapt(Android Asset Packaging Tool) 에 전달하며,나중에 전달된 것이 overlay 로 작동한다. ( 옵션을 통해서 override 가 아닌 새로운 추가로 작동할 수도 있었다. )overlay 로 작동한다는 것은 새로운 resource 에 대해서 추가되는 방식이다. Gradle 에서는 aapt 에 전달하기 전에 single,.. 2018. 3. 6.
[Android] Overview screen 을 꾸며보세요. [Android] Overview screen 을 꾸며보세요. http://www.bignerdranch.com/blog/polishing-your-Android-overview-screen-entry - Overview Screen( Home key long press 혹은 multi tasking button ) 을 Lollipop 부터는 꾸밀 수 있게 되었다.새로운 API 를 이용해 icon, title, top bar 색상 등을 수정할 수 있다. - 별다른 설정을 하지 않으면 android:icon, android:label, android:theme 을 통해 icon, title, top bar color 가 각각 정해진다. 이 값들은 base activity( launch, main ) 로부터.. 2017. 4. 11.
[android] Thread Scheduling 에 대한 이야기 [android] Thread Scheduling 에 대한 이야기 -Thread 에는 priority 값을 주어 CPU 사용량을 조절할 수 있다. ( Process#setThreadPriority( int ), Thread#setPriority( int ) ) 이 Priority 에 들어가는 값은 Nice value 라 부르는데, 다른 Thread 에 대해 얼마나 Nice 한가를 나타내는 값이다. Nice 값이 높다는 것은 다른 Thread 에게 많이 양보하는 착한(?)놈이라는 의미. 즉 Nice 값이 높을수록 우선순위가 낮아 CPU 활용이 적어진다. - Android 에서는 Main ( UI ) Thread 가 우선순위가 보통 가장 높아야 한다. BG 에서 도는 Thread 들의 Nice Value 가.. 2015. 12. 22.
Objective-C 의 기본 ( Basic Objective-C ) Object-C 의 기본 ( Basic Objective-C ) 출처 : http://www.tutorialspoint.com/objective_c/ > - OOP 언어로 Smalltalk-style 을 C 언어 에 가미한 언어이다. Apple 의 OSX 와 iOS 에서 공식적으로 사용되는 언어이다. > - Object-C 는 OOP 의 4가지 조건 ( Encapsulation, Data hiding, Inheritance, Polymorphism ) 을 모두 만족시키는 언어이다. - Foundation Framework 는 아래 명시된 기능들을 비롯해 많은 기능을 제공한다. * NSArray, NSDictionary, NSSet 과 같은 data type 을 제공 * file, string 등 많은 u.. 2015. 6. 16.
[android] thread 들의 정체에 대해 알아보자. 안드로이드, thread 들의 정체에 대해 알아보자. 출처 : 휴휴님 블로그. MainHeapWorkerSignal CatcherJDWPBinder Thread # HeapWorker 는 Dalvik 상에서 GC 를 수행하는 스레드. GC가 HeapWorker 를 깨워서 자바 Object 의 finalizeAPI 를 호출해준다고 한다. HeapWorker 가 작업수행하는데 너무 오랜 시간이 걸리면 앱을 종료시키기도 한다고 한다. 그래서 finalize 를 피하는 게 좋다. ( finalize 는 왠만하면 쓰지 말라고 권고된다 ) Singal Catcher 는 시그널이 발생했을 때 무슨 일을 하는 녀석. 예를 들어 Dump 파일 생성, GC 수행 등의 작업을 수행하는 것으로 알려져 있다. JDWP 는 디버.. 2013. 12. 6.
반응형