본문 바로가기

Android App/Java16

앱 화면이 항상 켜져있도록 유지 *앱 화면이 항상 켜져있도록 유지 -getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)은 안드로이드 앱에서 화면이 항상 켜져있도록 유지하는 설정을 하는 코드입니다. 안드로이드에서 기기의 화면은 일정 시간이 지나면 자동으로 꺼지는 기능이 있습니다. 이러한 동작은 전력 소모를 줄이고 배터리를 절약하기 위해 사용됩니다. 하지만 어떤 앱에서는 화면이 꺼지지 않고 계속 켜져 있어야 하는 경우가 있을 수 있습니다. 예를 들어, 동영상 재생 앱, 게임, 나침반 앱 등이 화면이 꺼지지 않아야 하는 상황입니다. getWindow.. 2023. 7. 18.
화면 풀스크린 적용(Full Screen) *화면 풀스크린 적용(Full Screen) -DecorView를 받아와서 원하는 설정값을 setSystemUiVisibility로 적용 -DecorView의 setSystemUiVisibility() 메소드를 통해 최상위 View를 어느정도 제어 가능함 -DecorView는 Top-Level View 중 하나이며 윈도우의 Background Drawable View를 담고 있는 객체인 셈임 1. HIDE_NAVIGATION : 하단 소프트키를 담고 있는 네비게이션 바를 숨겨주는 옵션 값 필요 빌드 버전 : ICE_CREAM_SANDWICH 2. FULLSCREEN : 상단 상태창(알림, 배터리등)을 숨겨주는 옵션 값 필요 빌드 버전 : JELLY_BEAN 3. IMMERSIVE_STICKY : HIDE.. 2023. 2. 26.
논리연산자(&&, ||, ^, !) *논리연산자(&&, ||, ^, !) -논리곱(&&), 논리합(||), 배타적 논리합(^), 논리 부정(!) 연산 수행 -흐름 제어문인 조건문(if), 반복문(for, while)에서 실행 흐름을 제어할 때 주로 사용 구분 연산자 설명 AND(논리곱) && 피연산자 모두가 true일 경우 true & OR(논리합) || 피연산자 중 하나만 true일 경우 true | XOR(배타적 논리합) ^ 피연산자가 하나는 true, 다른 하나는 false일 경우에만 true NOT(논리 부정) ! 피연산자의 논리값을 바꿈 -&&와 ||는 앞의 피연산자가 false라면 뒤의 피연산자를 평가하지 않고 바로 false를 산출함 -&와 |는 두 피연산자 모두를 평가해 산출함 -&,| 보다 &&, || 가 더 효율적으로 동.. 2023. 1. 21.
비교연산자(==, !=, <, <=, >, >=) *비교연산자(==, !=, =) -동등(==, !=) 또는 크기(=)를 평가해 true/false를 산출함 -흐름 제어문인 조건문(if), 반복문(for, while)에서 실행 흐름을 제어할 때 주로 사용 구분 연산자 설명 동등 비교 == 두 피연산자의 값이 같은지 검사 != 두 피연산자의 값이 다른지 검사 크기 비교 > 왼쪽 값이 큰지 검사 >= 왼쪽 값이 크거나 같은지 검사 2023. 1. 21.
나눗셈 연산 NaN(Not a Number), Infinity(무한대) *나눗셈 연산 NaN(Not a Number), Infinity(무한대) -나눗셈(/) 또는 나머지(%) 연산에서 피연산자가 실수인 0.0또는 0.0f이면 예외가 발생하지 않고 -NaN(Not a Number) 또는 Infinity(무한대)가 됨 -정수를 0으로 나누었을 경우에는 무한대 값은 정수로 표현할 수 없기 때문에 예외(ArithmeticException) 발생함 //좌측피연산자 정수, 우측피연산자 0 //예외 발생 int x = 5; int y = 0; int result = 5/0; //좌측피연산자 실수, 우측 피연산자 0.0 or 0.0f //무한대 또는 NaN 발생 result = 5/0.0 //Infinity result = 5/0.0 //NaN -Infinity와 NaN상태에서 계속 연.. 2023. 1. 18.
오버플로우와 언더플로우 *오버플로우와 언더플로우 -오버플로우(overflow) : 타입이 허용하는 최대값을 벗어나는 것 -언더플로우(underflow) : 타입이 허용하는 최소값을 벗어나는 것 -정수 타입 연산에서 오버플로우 또는 언더플로우 발생 시 실행에러가 발생하지 않고 해당 정수 타입의 최소값 또는 최대값으로 되돌아감 //정수형 타입(byte, short, int, long)모두 적용됨 //오버플로우와 언더플로우 예 //byte타입의 범위 : -128 ~127 //만약 byte타입 범위의 최대값을 초과하는 경우 //오버플로우 byte value = 127; value++; System.out.println(value); //결과 값: -128 //언더플로우 byte value = -128; value--; System.o.. 2023. 1. 18.
부호(+, -), 증감(++, --), 산술 연산자(+, -, *, /, %) *부호(+, -), 증감(++, --), 산술 연산자 *부호 연산자(+, -) -변수의 부호를 유지하거나 변경 -+연산자는 잘 사용되지 않고, -연산자는 변수값의 부호를 변경할 때 사용함 -부호 변경 시 타입을 주의해야 함 -정수 타입의 모든 연산 결과는 int타입이고 부호를 변경하는 것도 연산이기 때문에 int타입 변수에 대입해야 함 byte b = 100; byte result = -b //컴파일 에러 //정수(byte, short, int)의 연산결과는 //기본으로 int의 타입을 가지고 있음 //따라서 부호를 변경하는 부호연산도 int형에 대입해야함 byte b = 100; int result = -b; *증감연산자(++, --) -변수의 값을 1증가시키거나 1감소시키는 연산자 -변수 단독으로 증.. 2023. 1. 18.
변수(variable)-범위, 출력(print), 입력(Scanner) *변수(variable)-범위, 출력(print), 입력(Scanner) -변수 사용 범위 -콘솔로 변수값 출력 : print(), println(), printf() -키보드 입력 데이터 변수에 저장 : Scanner *변수 사용 범위 -중괄호 블록 {} 내에 선언된 변수는 중괄호 블록 내에서만 사용 가능 -메소드 블록 전체에서 사용하고 싶다면 블록 첫 머리에 선언 public class VariableScopeEx { public static void main(String[] args) { /* 변수의 범위 */ //메소드 블록 전체 사용할 수 있는 변수 선언 int v1 = 15; //특정 블록 내부(if문) 에서만 사용할 수 있는 변수 선언 if(v1>10) { //변수 v1은 메소드 전체에서 사.. 2023. 1. 15.
타입 변환-자동, 강제, 연산식, 문자열 *타입 변환-자동, 강제, 연산식, 문자열 *자동 타입 변환(promotion) -자동으로 타입 변환이 일어나는 것 -값의 허용범위가 작은 타입이 허용범위가 큰 타입으로 대입될 때 발생 -기본타입의 허용범위 순서 : byte < short, char < int < long < float < double //int타입이 byte타입보다 허용범위가 큼 //int타입의 변수에 byte타입 변수를 넣으면 //자동으로 타입이 변환되어 int타입으로 복사됨 byte byteValue = 10; int intValue = byteValue; //char타입이 int타입으로 자동 변환되면 //유니코드 값이 int타입에 대입됨 char charValue = 'A'; int intValue = charValue; //65.. 2023. 1. 14.
타입-정수, 실수, 논리, 문자열 *타입-정수, 실수, 논리, 문자열 -변수가 선언 시 타입에 따라 저장할 수 있는 값의 종류와 허용범위가 달라짐 -자바는 정수, 실수, 논리값을 저장할 수 있는 기본(primitive)타입 8개 제공 값의 분류 기본 타입 정수 byte, char, short, int, long 실수 float, double 논리(true/false) boolean -문자열은 기본타입이 아니며 String 타입을 사용하여 변수 선언함 *정수 타입 -총 5개로 각 다른 크기의 메모리 할당과 저장되는 값의 범위를 가지고 있음 -1byte = 8bit이며 bit는 0과 1이 저장되는 단위 -변수에 타입의 허용범위를 초과한 값을 대입했을 때 컴파일 오류 발생 -long타입은 수치가 큰 데이터를 다루는 프로그램에서 사용 -기본적으.. 2023. 1. 13.