1. Multi Process 하나의 프로그램을 여러개의 Process로 나누어 처리하는 방식 장점 : 하나의 Process가 잘못되어도 다른 Process가 처리하기 때문에 문제가 발생되지 않는다 단점 : Context Switching 비용이 발생한다 2. Multi Thread 프로그램을 여러개의 Thread로 구성하고 작업을 처리한다 장점 : 시스템 자원 소모 감소, 처리비용 감소(실행속도향상), 쓰레드간 자원 공유(stack을 제외한 영역) 단점 : 디버깅이 어렵다, 동기화 이슈발생, 하나의 쓰레드의 오류로 전체 프로세스 오류 3. Thread Safe 멀티 스레드 프로그래밍에서 일반적으로 어떤 함수나 변수, 혹은 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 없음을..
1. 구조 1. 작은 아이콘 : setSmallIcon() 2. 앱이름 : 앱 이름이 들어간다 3. 시간 : setShowWhen(false) 4. 큰 아이콘 : setLargeIcon() 5. 타이틀 : setContentTitle() 6. 메시지 : setContentText() 2. 구성 NotificationManager : 알림을 시스템에 발생시키는 SystemService Notification : 알림 구성 정보를 가지는 객체 NotificationCompat.Builder : 알림을 다양한 정보로 생성 NotificationChannel : 알림의 관리 단위(Android Oreo에서 추가) 3. 순서 NotificationManager 로 시스템서비스를 받아온다. 채널을 생성하여 해당 채..
File.mkdir()과 File.mkdirs()의 차이 Java API에서는 폴더 생성시 여러가지 방법이 있지만 그 중 File.mkdir()과 File.mkdirs()에 대해서 알아보자 File.mkdir()과 File.mkdirs()은 경로내에 디렉토리를 생성하는 기능을 한다. 경우에 따라 두가지의 경우로 나뉜다. 경로 디렉토리가 존재 하는경우, 존재하지 않는 경우 File.mkdir() : 상위경로에 디렉토리가 존재하지 않을경우 생성불가 File.mkdirs() : 상위경로에 디렉토리가 존재하지 않을경우 생성가능 상위 경로에 디렉토리가 존재하지 않을 경우 해당 경로에 디렉토리를 생성할 수 없으며 S가 붙으면 해당 상위 경로에 디렉토리가 없더라도 해당 상위 경로에 디렉토리를 생성하여 해당 경로까지 ..
1. Bitmap to Drawable Drawable drawable = getResources().getDrawable(R.drawable.my_image); // drawable to bitmap Bitmap bitmap = ((BitmapDrawable)drawable).getBitmap(); drawable 이미지를 가져와 Drawable에 생성한뒤 bitmap으로 형변환 하여 넣어준다 2. Drawable to Bitmap // bitmap to drawable Drawable drawable = new BitmapDrawable(bitmap); bitmap에서 가져와 drawable에 넣어 생성해준다. 때에 때라 여러가지 방법으로 drawable 혹은 bitmap을 사용하게 되는데 이미지를 ..
1. Gradle버전 확인 project단의 build.gradle의 build:gralde 버전을 확인한다. 버전이 너무 낮으면 실행되지 않을 수 있다. EX) classpath 'com.android.tools.build:gradle:3.2.1' -> 3.3+ 2. java 버전 확인 app 우클릭 -> Project Strucutre -> SDK Location -> Gradle settings에서 java 버전을 11 version 으로 맞춰주자 3. plugin과 gradle 맞추기 플러그인과 그래들의 버전을 맞춰야 실행이 된다. 원인 : AndroidX Jectpack Library가 Build Gradle ver 3.3+ 부터 적용되는 것으로 확인된다.