본문 바로가기

안드로이드 프로그래밍

(17)
Room 구조 Room은 SQLite 데이터베이스를 더 쉽게 사용할 수 있도록 도와주는 Android Jetpack 라이브러리야.아래와 같은 장점이 있어:SQL 쿼리를 직접 안 써도 됨 (@Query, @Insert 등 어노테이션으로 대체)컴파일 타임에 쿼리 오류 체크 가능LiveData, Flow 같은 Jetpack 컴포넌트와 통합 가능유지보수 쉬움, 확장성 높음기존 HistoryDatabaseHelper 기반 SQLite 코드를 Room 기반으로 바꿔보자. Room은 세 가지 주요 구성요소로 구성돼:Entity: DB 테이블에 대응되는 클래스DAO (Data Access Object): 데이터베이스에 접근하는 메서드 정의Database: 전체 데이터베이스 구성SQL 문을 쓰는건 똑같은데 이걸 왜 써야하는가?너무 좋..
Scheduler https://velog.io/@alsgus92/Java-Thread-Pool%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%93%B0%EC%9D%BC%EA%B9%8C [Java/Android] Thread Pool은 어떻게 동작할까? Thread Pool 이란? Thread Pool은 작업을 실행하는데 있어 사전에 미리 생성되어 사용할 준비가 된 Thread 모음이며, 효율적으로 Thread를 처리하여 전반적인 Runtime 성능을 향상시키기 위해 생겨난 Thead 제 velog.io Thread 사용 방법 2가지 1. Thread 클래스를 상속하여 run() 메소드를 override 2. Runnable 인터페이스를 구현(implement) 해서 run() 메서드 작성 cl..
Progressbar style -> 수평 프로그레스 바 android:indeterminate ="false" 프로그레스 바가 확정적인지 여부를 확인 determinate하므로 false android:max ="100" 프로그레스 바의 최대값이 100 android:progress ="88" 프로그레스 바의 현재 진행 상태 -> 88%
JSON 심화 { "id": "pop", "enabled": true, "bpm_available": false } json 파일이 이렇게 있으면 "id", "enabled", "bpm_available"은 각각 해당하는 키(key)이다. 이 키들을 java에서 읽을 때는 'id_tag', 'enabled_tag', 'bpm_available_tag'로 읽는다.
All about Intent 1. xml과 Activity를 만들자 File -> New -> Activity -> Empty Activity xml과 Activity가 동시에 만들어진다.
뷰 바인딩 이젠 findViewById는 줘도 안쓸래요~ 사용법 1. build.gradle 설정 buildFeatures{ viewBinding = true } 2. 이름 통일 바인딩 클래스 이름은 규칙이 정해져 있다. Activity 이름 Binding Class 이름 MainActivity ActivityMainBinding HelloActivity ActivityHelloBinding XXXActivity ActivityXXXBinding ActivityMainBinding binding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityMainBi..
All about layout android:layout_height="0dp"로 설정하면 부모 레이아웃에서 사용 가능한 공간에 따라 높이를 동적 조정 가능 android:alpha 이미지의 투명도를 설정 0.0은 완전 투명, 1.0은 완전 불투명 app:layout_constraintDimensionRatio 뷰의 가로와 세로의 비율을 설정 constraintlayout를 새로 만들어서 한다면 그 constrainlayout 크기에 맞추어 비율을 설정 가 app:layout_constrainVertical_bias 뷰가 수직으로 어디에 위치할지를 결정 0은 부모의 상단, 1은 부모의 하단 0.414이면? 41.4%에 위치 Guideline 레이아웃 작성 시에 가이드라인을 잡아줌. 가상의 선을 그어서 view들의 constraint를..
Json 기초 json 파일은 { "apple_product" : [ { "name" : "아이폰", "model" : "iPhone 13", "color" : "핑크" }, { "name" : "맥북", "model" : "MacBook Pro 2021", "color" : "스페이스 그레이" }, { "name" : "애플워치", "model" : "AppleWatch SE", "color" : "스페이스 그레이" } ] } 이렇게 되어있다. "apple_product"라는 키를 가지는 배열을 포함하고 있다. 이제 이걸 응용해보자. private void parser() { InputStream inputStream = getResources().openRawResource(R.raw.product); InputS..