[운영체제] CPU 스케줄링 알고리즘
·
공부/운영체제
CPU 스케줄링 알고리즘 CPU 스케줄링 (CPU Scheduling) CPU core가 하나라면 한 번에 하나의 프로세스만 가능 CPU 이용율을 극대화하기 위해서는 멀티 프로그래밍이 필요함 이 때 필요한 것이 CPU 스케줄링 언제 어떤 프로세스에 CPU를 할당할지 결정하는 작업 목표 높은 CPU 이용률 주어진 시간에 많은 일 준비 큐에 있는 프로세스 적게 짧은 응답 시간 CPU 스케줄러가 스케줄링을 결정하는 경우 실행(running) 상태에서 대기(waiting) 상태로 전환(switching)될 때 실행(running) 상태에서 준비(ready) 상태로 전환(switching)될 때 대기(waiting) 상태에서 준비(ready) 상태로 전환(switching)될 때 종료(Terminated)될 때 ..
[Android/Kotlin] 다른 Activity 종료
·
공부/안드로이드
현재 Activity(액티비티)가 아닌 다른 Activity(액티비티)를 종료하고 싶을 때 1. 지우고픈 Activity(액티비티)에 변수 추가 나는 StartActivity를 지우고 싶으니 StartActivity에 아래 코드를 추가했다. companion object { lateinit var _startActivity: StartActivity } 2. 다른 Activity(액티비티)에서 지우고픈 Activity(액티비티) 종료 StartActivity를 종료하게할 액티비티에서 StartActivity 종료 코드를 넣는다. 예를 들어 MyActivity에서 StartActivity를 종료하고 싶으면 MyActivity에 아래 코드를 추가하면 된다. 단, 아래 코드는 내게 맞춤용이며 액티비티명과 변수..
[Android/Kotlin] 복사하기 기능
·
공부/안드로이드
val clipboard: ClipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager val clip = ClipData.newPlainText("코드", "복사하는 문자 내용입니다.") clipboard.setPrimaryClip(clip)
[Android/Kotlin] API 연결
·
공부/안드로이드
팀 프로젝트 하면서 사용했던 여러 api 연결 방법들 * 공통적으로 Header를 사용했으나 다른 곳에서는 사용하지 않을 수 있음 1. Parameter (파라미터) 없는 경우 DTO data class SigninDTO ( val status: Int, val isSuccess: Boolean, val accessToken: String?, val has: Boolean?, val message: String? ) Interface interface SigninInterface { @POST("링크") fun getSignin( @Header("Authorization") accessToken: String ): Call } Service class SigninService { val retrofit ..
[Android/Kotlin] 음성 녹화
·
공부/안드로이드
1. 변수 세팅 private var outputPath: String? = null// 녹화한 파일 저장 경로 private var mediaRecorder : MediaRecorder? = null private var state : Boolean = false// 녹음 상태 private var hasRecorded : Boolean = false// 녹화되었는지 여부 private var timerHandler: Handler? = null// 초수 증가용 타이머 private var timerRunnable: Runnable? = null private var secondsElapsed: Int = 0// 타이머 초 2. 녹음 시작 2-1. 녹음 버튼 클릭 // 녹음 시작 버튼 binding.r..
[Android/Kotlin] 음성 재생/일시정지
·
공부/안드로이드
음성 재생 val myUri: Uri = Uri.parse("링크") if (mediaPlayer == null) { // 일지정지한 적 없을 때 mediaPlayer = MediaPlayer().apply { setAudioStreamType(AudioManager.STREAM_MUSIC) setDataSource(context, myUri) prepare() start() // 음성 실행 완료 시 (다시 초기화) setOnCompletionListener { mediaPlayer?.reset() mediaPlayer = null } } } else if (isMediaPaused) { mediaPlayer?.start() isMediaPaused = false } 음성 일시정지 // 음성 일시정지 i..
[Android/Kotlin] 카카오 로그인/회원가입
·
공부/안드로이드
나는 이렇게 Access Token만 발급 받고 검증은 백엔드측에 넘겼다. 순서는 아래와 같다. 카카오 로그인/회원가입 요청한다. 카카오 측에서 이미 회원일 경우 로그인 처리, 회원이 아닐 경우 회원가입 처리 후 Access Token을 발급하여 전달한다. 받은 Access Token을 백엔드(서버)로 전달한다. 백엔드(서버)측이 전달받은 Access Token을 통해 다시 카카오를 통해서 검증을 하고 사용자 정보를 전달한다. 받은 정보를 jwt에 저장한다. 3~5번은 사람마다 다르게 작업하기 때문에 1~2번까지만 설명을 하겠다. 카카오 문서에 설정이 잘 나와있으니 보며 그대로 따라하면 된다. https://developers.kakao.com/docs/latest/ko/kakaologin/android..
[Android/Kotlin] Custom Dialog (팝업)
·
공부/안드로이드
이렇게 내가 원하는 형태로 다이얼로그를 변경하고 싶으면 custom dialog를 사용하면 된다. 1. 원하는 Dialog (팝업) xml을 layout에서 만든다. fragment_dialog_letter.xml 2. 클릭 시 보여질 Dialog (팝업) fragment를 만든다. DialogLetterFragment.kt import android.app.Dialog import android.content.Context import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.view.LayoutInflater import android.view.Window import com.umc.andd..