728x90 안드로이드/데이터 입출력10 안드로이드 Preferences Screen UI를 통해서 Preferences를 사용할 수 있도록 제공되는 개념이다. PreferenceFragment를 사용하며 저장 기능까지 모두 구현 되어 있다. package com.example.preferencesscreen import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import kotlinx.android.synthetic.main.activity_main.* class MainActivity : AppCompatActivity() { val settingFragment = SettingFragment() val resultFragment = ResultFragment() override fun onCreate(sa.. 2022. 6. 23. 안드로이드 Preferences 안드로이드의 저장 방식 중 하나로 애플리케이션의 데이터를 간단하게 저장할 수 있는 수단이다. 많은 양의 데이터를 저장할 때는 SQLite를 사용하고 소규모의 데이터를 저장할 때 Preferences를 사용할 수 있다. 일반적으로 SQlite 데이터 베이스에는 학생들의 정보 등과 같은 다수의 매개체에 대한 데이터를 저장할 때 사용하고 애플리케이션 설정 데이터와 같이 유일한 데이터들을 기록할 때 Preferences를 사용한다. package com.example.preferernces import android.content.Context import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import kotlinx.androi.. 2022. 6. 23. 안드로이드 Content Provider 안드로이드 4대 구성 요소 중 하나로 애플리케이션이 저장한 데이터를 다른 애플리케이션이 사용할 수 있도록 제공하는 개념이다. 안드로이드 11버전부터 변경된 점 안드로이드 11 부터 다른 애플리케이션의 요소를 사용할 때는 AndroidManifest.xml에 명시해야 한다. https://developer.android.com/training/basics/intents/package-visibility?hl=ko 패키지 공개 상태 관리 | Android 개발자 | Android Developers 패키지 공개 상태 관리 앱을 만들 때는 기기에 설치된 다른 앱, 즉 내 앱에서 액세스하려는 앱을 표시하는 패키지 집합을 고려하는 것이 중요합니다. 앱이 Android 11(API 수준 30) 이상을 타겟팅한다 d.. 2022. 6. 23. 안드로이드 sqlite 2 안드로이드는 SQLite 데이터 베이스 사용시 직접 쿼리문을 작성하는 것 뿐만 아니라 제공되는 클래스를 이용하는 방법을 제공하고 있다. 코드 구현은 대부분 비슷하며 쿼리문 작성 대신에 클래스를 사용하면 된다. ContentValue 클래스를 이용하는 방법을 사용할 때 가장 중요한 클래스이다. ContentValue 클래스는 값을 저장할 때 이름을 부여하는 클래스로써 값을 저장할 때 사용하는 이름은 테이블의 컬럼이름과 매칭된다. ContentValue에 저장한 데이터는 테이블의 컬럼과 매칭되어 insert, update 등에 사용된다. package com.example.sqlite2 import android.content.ContentValues import androidx.appcompat.app.A.. 2022. 6. 23. 안드로이드 sqlite 1 안드로이드에서 사용하는 내장 데이터 베이스로 표준 SQL문을 사용하는 관계형 데이터 베이스이다. MySQL 과 유사한 문법을 사용하고 있으며 일반적인 관계형 데이터 베이스가 가지고 있는 기능을 가지고 있다. 동작 방식 SQLite 데이터베이스는 임베디드형 데이터베이스로써 데이터베이스를 사용하는 애플리케이션에 셋팅되는 데이터 베이스이다. 안드로이드는 안드로이드 OS에 내장되어 있으며 개발자가 만드는 애플리케이션은 안드로이드 OS에게 쿼리문을 전달하고 안드로이드 OS가 직접 데이터 베이스에 대한 처리를 하게된다. 작성 방식 안드로이드에서의 SQLite 데이터베이스 사용은 쿼리문을 이용하는 방법과 제공되는 클래스를 이용하는 방법 두 가지가 있다. 쿼리문을 이용하는 방식은 일반적인 SQL문을 사용하며 MySQL.. 2022. 6. 23. 안드로이드 assets raw 데이터 파일은 raw 폴더에 담으면 스트림을 손쉽게 추출할 수 있다는 장점이 있다. 허나 raw 폴더는 하위 폴더를 만드는 등 계층적으로 관리할 수 없다. 만약 파일들을 계층적인 폴더 구조를 만들어 관리하겠다면 assets 폴더를 사용한다. assets 폴더는 res 폴더 내부가 아니므로 리소스(R 클래스)로 관리할 수 없다. assets 폴더에는 다양한 종류의 파일들을 담고 사용할 수 있다. 특히 폰트 파일을 손쉽게 사용할 수 있도록 클래스를 제공하고 있다. val face = Typeface.createFromAsset(assets, "font/font1.ttf") textView.typeface = face package com.example.assets import android.graph.. 2022. 6. 22. 안드로이드 파일 입출력 안드로이드는 애플리케이션이 데이터를 저장할 수 있는 저장소를 두 가지로 제공하고 있다. 내부 저장소 : 애플리케이션을 통해서만 접근이 가능하다. 외부 저장소 : 단말기 내부의 공유 영역으로 모든 애플리케이션이 접근 가능하다. 단말기를 컴퓨터에 연결하면 탐색기를 통해 접근할 수 있는 영역을 의미한다. 파일 입출력 내부 저장소 : openFileOutput, openFileInput 외부 저장소 : FileInputStream, FileOutputStream 안드로이드 10의 외부저장소 외부 저장소에 저장된 파일은 모든 애플리케이션이 자유롭게 접근할 수 있어 보안에 문제가 되었다. 이에 안드로이드 10에서는 외부 저장소에 제한을 두어 보안을 강화하게 되었다. 안드로이드 10에서는 외부 저장소의 정책을 무력화.. 2022. 6. 21. 안드로이드 Application Class 안드로이드 애플리케이션에 단 하나를 지정할 수 있는 객체이다. 이 객체는 같은 안드로이드 애플리케이션이라면 어디서든 주소 값을 가져올 수 있다. 이를 통해 안드로이드의 다양한 구성요소에서 공통적으로 사용하는 데이터를 관리할 수 있다. Application Class는 Application을 상속받고 AndoridManifest.xml 에 등록하면 된다 package com.example.applicationclass import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import kotlinx.android.synthetic.main.activity_main.* class .. 2022. 6. 21. 안드로이드 코드 View 코드를 통해 View 객체를 생성하여 layout에 추가할 수 있다. View 객체를 생성할 때는 생성자에 Context 객체를 설정해줘야 한다. Context는 어떠한 작업을 하기 위한 정보를 가지고 있는 객체를 통칭한다. 안드로이드에서는 Activity가 Context를 상속받고 있기 때문에 this를 넣어주면 되고 그 외에는 Context를 구하는 다양한 메서드를 통해 설정한다. package com.example.codeview import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.ImageView import android.wid.. 2022. 6. 20. 안드로이드 xml View 지금까지 예제는 layout 폴더에 있는 xml 파일을 통해 화면을 구성하였다. 이는 Activity가 처음 나타날 때의 모습을 설정하게 된다. 만약 실행 중 View를 만들어 추가할 경우에는 코드를 통해 View를 만들어 추가해줘야 한다. LayoutInflater를 사용하면 xml로 만든 화면 모양을 View 객체로 만들어 사용할 수 있다. layoutInflater.inflate 메서드 : layoutInflater.inflate 메서드를 사용하면 XML을 통해 View 객체를 만들 수 있다. val sub2 = layoutInflater.inflate(R.layout.layout_sub2, null) val sub3 = layoutInflater.inflate(R.layout.layout_sub3.. 2022. 6. 20. 이전 1 다음 728x90