본문 바로가기

프로그래밍 놀이터/안드로이드, Java1095

[android] Android SDK-tools, SDK Build-tools, Platform-tools SDK-toolshttps://developer.android.com/studio/releases/sdk-tools.html 개발과 디버깅을 위한 tool 들을 담고 있다.Android studio 안에 담겨져 있으며, ddms 등이 여기에 속한다. SDK Build-toolshttps://developer.android.com/studio/releases/build-tools.html Android app 을 build 하기 위한 tools 를 이야기한다.aidl, aapt, dexdump, dx 등과 같은 것들이 포함되며 ADT (Android Development Tools) 라고 부른다.이 녀석은 그냥 최신 상태로 맞춰 놓는 것이 웬만해서는 좋다. Platform-toolshttps://devel.. 2020. 8. 2.
[android] Gradle 에 쫄지 말아라 (gradle 잘 이용하자) https://medium.com/@cesarmcferreira/gradle-tips-tricks-to-survive-the-zombie-apocalypse-3dd996604341 Project and build specific global variables -gradle 을 사용하면 BuildConfig class 가 자동으로 생성된다.그리고 우리는 그 안에 추가적인 field 를 넣을 수 있다. defaultConfig { buildConfigField "String", "TWITTER_TOKEN", '"SDASJHDKAJSK"'} buildTypes { debug { buildConfigField "String", "API_URL", '"http://api.dev.com/"' buildConfigF.. 2020. 8. 1.
[android] custom lint 만들기 http://jeremie-martinez.com/2015/12/15/custom-lint-rules 왜 custom lint 를 만들어야 하는가?1. librady/SDK 를 개발할 때 custom lint 를 넣어주면, 사용자들이 제대로 사용하도록 가이드를 하는 역할을 한다. 2. 프로젝트 진행시 새로운 개발자에게 convention 을 자연스럽게 전달할 수 있다. 예제를 통해 배워보자. Custom Lint 는 새로운 module 로 정의되어야만 한다. Gradle -apply plugin: 'java' targetCompatibility = JavaVersion.VERSION_1_7 sourceCompatibility = JavaVersion.VERSION_1_7 configurations { l.. 2020. 7. 31.
[android] Direct Share since MOS https://www.bignerdranch.com/blog/implementing-android-marshmallow-direct-share - MOS 부터 사용 가능하다. Content 를 다른 앱 안에 있는 target 에 바로 전달하는 것이다. 예를 들어 어떤 text 를 전달할 때 카카오톡 안의 “어머니”를 바로 선택할 수 있다는 것이다. (기존에는 앱(카카오톡)을 먼저 선택하고, 카카오톡 앱이 사람(어머니)을 선택하는 기능을 제공하는 형태였다.) - app 에서 direct share 를 제공하기 위해서는 아래와 같이 ChooserTargetService extends 한 녀석을 만들고 onGetChooserTargets 를 통해 ChooserTarget list 를 전달해주어야 한다. cla.. 2020. 7. 30.
[android] RecyclerView 에서 Drag 와 Swipe 구현하기 https://medium.com/@ipaulpro/drag-and-swipe-with-recyclerview-b9456d2b1aaf - View.OnDragListener, GestureDetectors, onInterceptTouchEvent 등을 활용하는 방법이 주로 사용되고 있다. 하지만 이들은 복잡하다. - ItemTouchHelper 라는 녀석이 있다. 이 녀석은 Android Support Lib 에서 제공해주는 녀석으로 이 녀석을 쓰면 Drag&Drop, Swipe to dismiss 등을 아주 쉽게 구현할 수 있다. ItemTouchHelper 는 RecyclerView.ItemDecoration 의 subclass 이다. ItemDecoration 을 상속했다는 것은 LayoutMana.. 2020. 7. 29.
[Java] Generational Concurrent GC 에 대해 알아보자 https://www.ibm.com/support/knowledgecenter/en/SSB23S_1.1.0.2019/com.ibm.java.vm.80.doc/docs/mm_gc_generational.html -Generational Concurrent Garbage Collection 전략은 짧은 기간동안만 존재하는 object 가 많은 앱에 적합하다. --Xgcpolicy:gencon command line option 으로 해당 GC 를 activate 시킬 수 있다. -Java heap 은 두 영역으로 나뉜다.하나는 새로운(new or nursery) 영역, 그리고 다른 하나는 오래된(old or tenured(재임)) 영역이다.new area에 생성된 objects 들이 오랜 기간동안 참조를 유.. 2020. 7. 28.
[android] ART 의 JIT (Just-In-Time) Compiler 에 대해 알아보자 https://source.android.com/devices/tech/dalvik/jit-compiler -Android runtime (ART) 는 Just-in-time (JIT) compiler 를 사용하여 안드로이드 앱이 동작할 때 지속적으로 빨라질 수 있게 프로파일링 하고 개선한다. (돼왕: NOS 부터 둘을 같이 사용)JIT compiler 는 ART 의 현재 ahead-of-time (AOT) compiler 를 보조하여, 실행 성능을 개선하고, 저장 공간을 줄이며, system update 를 빠르게 한다. (돼왕 : 최초 설치시에는 dex2oat 로 compile 하지 않고, 자주 사용하는 앱들에 대해 추후 compile 을 진행하는 방식)이는 앱 자동 업데이트나 OTA 를 통한 업데이.. 2020. 7. 27.
[android] App 이 kill 되면 Alarm 이나 Job 은 어떻게 될끼? https://github.com/evernote/android-job/wiki/FAQ#what-happens-with-jobs-after-the-app-was-forced-killed -앱이 recent app list 등에서 swipe 를 통해 force kill 당하면, 안드로이드는 AlarmManager 에 등록되어 있는 Pending alarm 들을 모두 clear 시켜버린다.그래서 앱이 다시 launch 할 때 또는 boot_complete 등의 broadcast 를 받아서 새로 job 을 등록해줘야 한다. JobScheduler 나 GcmNetworkManager 등에 등록된 Job 들은 force kill 에 영향을 받지 않는다. -필자의 경험에 의한 확인 결과, 앱 설정(Applicati.. 2020. 7. 26.
[android] Recent app 에서 swipe 로 app 을 죽이면 process kill 이 될까? -Recent app 에서 app 을 swipe 해서 kill 시켰을 때 동작에 대한 공식 doc 은 발견하지 못했다.doc 으로 명시하기에는 조건이 너무 까다롭거나, 혹은 유연하게 변경하기 위함이라고 추정된다. -그래서 구글링을 해보았다.대부분의 결론은 이렇다.Recent app 에서 app kill 시키는 것은 process kill 과 다르다.Activity stack 을 모두 날려버리는 것으로 생각하는 것이 좋다.음악 서비스가 돌고 있을 때 Recent app 에서 swipe 로 죽인다고 음악이 멈추지는 않는걸 생각해봐라. -그런가보다... 하고 실제 테스트를 해보았다.일단 bg service 같은 거 없이 그냥 "Hello World!" 를 표시하는 Activity 를 하나 띄워놓고, recen.. 2020. 7. 25.
반응형