일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Data Binding
- EditText
- JetPack
- Andorid
- 3rd framework
- Mac
- 고금리
- 새마을금고
- 용산 호반써밋 에이디션
- CHAT GPT
- 예금
- arm-linux-androideabi
- ndk r24
- ChatGPT
- 달러예금
- kotlin
- RETROFIT
- Android Studio
- BindingAdapter
- audio record
- 청약
- ndkVersion
- KB
- gradle
- MG더뱅킹정기예금
- 사전청약
- Android
- java
- Swift
- ios
- Today
- Total
목록android (33)
pear
fun createExtenalUrl(resultLauncher: ActivityResultLauncher){ val filename = "test.pcm" val saf = SAFManager() val uriSeparator = "%2F" val path = "test${uriSeparator.toString()}sub" saf.oepnExplore(path, filename, resultLauncher) } fun onActivityResult(activityesult: ActivityResult, activity: AppCompatActivity){ println("[File]onActivityResult(${activityesult.resultCode})") println("[File]onAct..

standard - android API / targetSdkVersion val targetSdkVersion: Int = applicationContext.applicationInfo.targetSdkVersion android9(28 or less) WRITE_EXTERNAL_STORAGE android10(29) WRITE_EXTERNAL_STORAGE android11(30 over) READ_EXTERNAL_STORAGE MediaStore SFA(Storage Access Framework) ACTION_OPEN_DOCUMEN ACTION_CREATE_DOCUMENT OR 모든파일액세스 val resultLauncher:ActivityResultLauncher = registerForActi..
Legacy External Storage(OLD) targetSdk API Level 29 이하 WRITE_EXTERNAL_STORAGE 권한이 구분 없이 외부저장소부터 대부분의 공간에 접근하고 쓰기가 가능했습니다. val file = File(Environment.getExternalStorageDirectory(), "test.txt") Scoped Storage(NEW) targetSdk API Level 30이상 Media 유형 다른앱과 공유되는 영역의 미디어 파일은 모두 MediaStore를 이용하여 생성해야 합니다. // Scoped Storage val resolver = applicationContext.contentResolver val audio = MediaStore.Audio.Me..
오래된 외부 라이브러리를 사용 할때 androidx.core 와 Duplicate 문제가 발생 할 때가 있다. gradle.properties 파일에 옵션을 추가해주면 해결 될 때가 있다. android.enableJetifier=true android.enableJetifier: 이 플래그가 true로 설정되면 Android 플러그인에서 자동으로 기존 타사 라이브러리를 이전하여 바이너리를 다시 작성해 AndroidX 종속 항목을 사용합니다. 지정하지 않으면 플래그는 기본적으로 false입니다. 원인은 구버전과 충돌이 발생하는데 enableJetifier 플래그를 사용하면 빌드시 최신 버전만 남기는 마이그래션을 지원하여 해결되는 것으로 보인다. Duplicate class android.support.v..
Okhttp HTTP 통신을 간편하게 구현할 수 있도록 다양한 기능을 제공해주는 라이브러리 입니다. Retrofit Okhttp를 사용하여 rest server와 통신을 간편하게 구현할 수 있도록 다양한 기능을 제공해주는 라이브러리 입니다. Type-Safe Response에 대한 Type을 정의 할수 있음 async-thread-safe network 동작에 대한 편리한 interface 제공 HTTP Method interface Builder interface DTO(Data Transfer Object) - 이름과 같이 계층 간 데이터 교환을 위해 사용하는 객체다. *여기서 말하는 계층이란, View - Controller - Service - DAO와 같은 각 계층을 말한다. - VO와 혼용되어..

Handler 핸들러는 핸들러 객체를 만든 스레드와 해당 스레드의 message queue 에 바인딩된다. Message queue 는 핸들러가 전달하는 message 를 보관하는 FIFO(First In First Out) 방식의 큐이다. 다른 스레드에게 메시지를 전달하려면 메시지를 전달하려는 스레드에서 생성한 핸들러의 post() 와 sendMessage() 등의 함수를 사용해야한다. 그래야 수신대상 message queue 에 메시지가 저장되기 때문이다. message queue 에 저장된 message 나 runnable 은 Looper 가 들어온 순서대로 꺼내서 핸들러에게 전달해준다. 그러면 핸들러는 handlerMessage() 메서드를 이용하여 Looper 에게서 받은 message 나 ru..
List View와 Recycler View의 차이 리스트뷰와 리사이클러뷰는 모두 스크롤 가능한 리스트 형식의 레이아웃을 구현할 때 사용. 리스트뷰는 스크롤할 때 나오는 아이템을 끊임없이 새로 만들어 메모리 성능에 부담이 갈 수 있음. 반면, 리사이클러뷰는 처음 만들어지는 아이템의 개수는 정해져있고, 뷰홀더를 통해 들어가는 뷰의 재사용을 가능하게 함. Recycler View에서 에러를 겪어본 적이 있는지

Life Cycle 액티비티 액티비티가 시작하는 순간부터 종료되는 순간까지의 주기를 말한다. onCreate(): 액티비티가 시작될 때 레이아웃을 구성하면서 한 번 실행 onStart(): 액티비티가 사용자에게 보이기 직전에 실행. BroadcastReceiver 실행 onResume(): 사용자가 액티비티와 상호작용하는 기능을 넣는 곳으로, 무조건 실행되어야 하는 기능이 들어감 onPause(): 포커스를 잃어 화면이 부분적으로는 보이지만 곧 사라질 때 실행 onStop(): 사용자에게서 화면이 완전히 사라지고, 다른 액티비티가 보여질 때 호출 onDestroy(): (화면회전 혹은)화면이 완전히 종료되기 직전에 호출 프래그먼트 onCreate(), onStart(), onResume(), onPaus..