본문 바로가기
Coroutine 과 놀아보기 #1 Coroutine 과 놀아보기 #1 - android studio 에서 coroutine 관련된 것들을 인식 못한다. android 3.2.1 버전으로 업그레이드 하니 해결되었다. 해당 버전 이상으로 환경 세팅을 하고 시작하자! - 이 글은 내가 coroutine 을 학습한 후에 약간 까리한 부분들을, 테스트 코드를 짜서 실험한 결과를 공유하는 글이다. runBlocking? 새로운 coroutine 을 수행하며, 작업이 끝날 때까지 현재 thread 를 block 시킨다. (interrupt 가능하다.) - 다음과 같은 테스트를 해보았다. btn.setOnClickListener{ runBlocking{ startLogPrinting() // mainHandler 에서 50ms 마다 “logPrinti.. 2019. 5. 22.
[android] JobScheduler 호출 flow 분석 [android] JobScheduler 호출 flow 분석 JobScheduler(JobSchedulerImpl ) -JobScheduler 는 abstract class실제 안드로이드 구현체는 JobSchedulerImpl 이며, 이는 constructor 에 전달된 binder 를 통해 통신을 한다. -JobShcedulerImpl 에 전달되는 Binder 는 JobSchedulerService 의 inner class 로 있는 JobSchedulerStub 이다.Stub 에서는 JobSchedulerService 의 여러 함수로 역할을 위임(delegate) 시킨다. JobService-JobService 도 abstract class 로 startJob, stopJob 을 구현하는 Binder .. 2018. 4. 30.
Efficient Android Threading #4 메모리 관리 Efficient Android Threading #4 메모리 관리 이 글은 Efficient Android Threading 의 일부 내용만 발췌한 내용입니다.자세한 내용은 책을 구입해서 보세용.6.1. 가비지 컬렉션 -각 프로세스(결과적으로 각 앱)는 자신만의 VM 과 가비지 컬렉터를 가진다. -진저브레드까지 안드로이드의 가비지 컬렉션은 메모리가 회수되는 동안 앱 실행이 중지되는 순차적 실행이었다.이는 UI rendering 의 일시적 멈춤으로 이어질 수 있었다.허니컴부터 GC 는 앱 스레드를 중지하지 않고 자체 스레드에서 동시적으로 실행된다. -달빅 GC 는 mark & swap 이라는 일반적인 두 단계 메커니즘을 사용한다.마크 단계는 객체 트리를 탐색하고 다른 객체에 의해 참조되지 않는 모든 미사.. 2018. 3. 20.
[android] RxAndroid 맛보기 [android] RxAndroid 맛보기 http://www.vogella.com/tutorials/RxJava/article.htmlhttps://code.tutsplus.com/tutorials/getting-started-with-reactivex-on-android--cms-24387https://realm.io/kr/news/rxandroid/ -Observable.just() 는 Observable 을 생성한다.이렇게 생성된 Observable 에 subscribe 가 붙으면 곧바로 just() 에 전달된 녀석이 onNext() 로 전달된다.List list = Arrays.asList(“Android”, “Ubuntu”, “Mac OS”);Observable listObservable = .. 2018. 3. 10.
[ios] beginBackgroundTaskWithExpirationHandler: 에 대한 연구 [ios] beginBackgroundTaskWithExpirationHandler: 에 대한 연구 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/index.html#//apple_ref/occ/instm/UIApplication/beginBackgroundTaskWithExpirationHandler: -- (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void (^)(void))handler -오래 진행될 새로운 background task 를 마크하는 작업을 한다.( 마크하는 것만으로 BG 상황에서 task .. 2018. 2. 16.
[iOS Study] 병렬 프로그래밍 가이드 ( dispatch source ) [iOS Study] 병렬 프로그래밍 가이드 ( dispatch source ) https://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/GCDWorkQueues/GCDWorkQueues.html#//apple_ref/doc/uid/TP40008091-CH103-SW1 About dispatch source -dispatch source 는 low-level system event 를 처리하기 위한 data type 이다. -Timer dispatch source 는 주기적인 noti 를 만든다. -Signal dispatch source 는 UNIX signal 이 도착하면 not.. 2017. 7. 3.
[Django] 파이썬 웹 프로그래밍 - Django 의 핵심 기능 #2 [Django] 파이썬 웹 프로그래밍 - Django 의 핵심 기능 #2 * 4.4.1. HTML 에서의 폼 -HTTP 프로토콜 중 폼에서 사용할 수 있는 HTTP 메소드는 GET 과 POST 뿐이다.장고는 이 중에서도 폼 처리에는 POST 방식만을 사용하고 있다.추가적으로 장고는 보안을 강화하기 위해 CSRF 방지 기능을 제공한다. * 4.4.2. 장고의 폼 기능 -장고는 폼 처리를 위해 다음 3가지 기능을 제공한다. 폼 생성에 필요한 데이터를 폼 클래스로 구조화하기 폼 클래스의 데이터를 랜더링하여 HTML 폼 만들기 사용자로부터 제출된 폼과 데이터를 수신하고 처리하기 -장고의 모델 클래스가 데이터베이스 테이블의 논리적인 구조 및 동작 기능, 우리에게 보여지는 방식들을 기술.. 2016. 12. 15.
[Django] 파이썬 웹 프로그래밍 - 파이썬 웹 표준 라이브러리 [Django] 파이썬 웹 프로그래밍 - 파이썬 웹 표준 라이브러리 - 책을 읽으며 Remind 하는 내용, 핵심 내용, 모르던 내용을 정리한 것입니다. 예문 및 자세한 설명은 책을 구매하여 보세요~ - 파이썬을 설치하면 기본적으로 같이 설치되는 표준 라이브러리가 있는데, 크게 웹 클라이언트 프로그래밍이냐 웹 서버 프로그래밍이냐에 따라 사용하는 라이브러리 모듈이 달라진다. - urllib 패키지에는 웹 클라이언트를 작성하는 데 사용되는 모듈들이 있으며, 가장 빈번하게 사용하는 모듈이다. http 패키지는 크게 서버용과 클라이언트용 라이브러리로 나누어 모듈을 담고 있고, urllib 에 비해 저수준의 API 를 제공한다. - 서버 프로그래밍에서는 http.cookie, .. 2016. 12. 8.
[android] Toast( 토스트 ) 이야기 안드로이드, Toast( 토스트 ) 이야기 Toast 의 특이한 점. Toast 생성은 메인 스레드에서만 가능하지만, show() 함수는 아무 스레드에서나 호출할 수 있다.이는 Toast 가 안에서 handler 를 사용하기 때문이다.생성할 때는 Handler 를 main thread 에서 생성해야 하기 때문에 main thread 에서 생성해야 하고, 그 외 함수들 호출은 아무데서나 해도 된다. Toast 는 독립적인 Window Window 들은 PhoneWindowManagerService 에서 관리한다. status bar, input method, activity 모두 window 이다. Toast 들은 여러 앱에서 동시에 불러도 하나씩 순차적으로 뜨는데, 그 이유는 NotificationMan.. 2013. 8. 14.
반응형