안드로이드 (93) 썸네일형 리스트형 내용 제공자 내용 제공자는 컨텐트 프로바이더라고도 부르며, 한 앱에서 관리하는 데이터를 다른 앱에서도 접근할 수 있도록 해준다 내용 제공자도 앱 구성요소이기 때문에 시스템에서 관리하며, 매니페스트 파일에 등록해야 사용할 수 있다 내용 제공자가 필요한 이유는 앱의 보안 때문이다 다른 사람이 만든 앱이 나의 앱의 데이터를 마음대로 바꾸면 안되기 때문이다 그래서 각 앱은 자신의 프로세스 권한 안에서만 데이터에 접근할 수 있도록 되어 있다 A라는 앱과 B라는 앱은 각각 독립된 프로세스를 가지고 있으며, A는 A의 데이터를, B는 B의 데이터만 사용해야 한다 하지만 가끔은 서로 다른 앱의 데이터에 접근해야 하는 경우, 내용 제공자를 사용하게 되면, 다른 앱에게 데이터 접근 통로를 열어줄 수 있다 주의할 점은 반드시 허용된 통.. 데이터 조회하기 https://developer.android.com/training/data-storage/sqlite?hl=ko 가이드 문서에서는 조금 다른 방법으로 안내한다 activity_main DatabaseHelper.java package com.example.a61_sample_database_sqliteopenhelper; import android.content.Context; import android.database.DatabaseErrorHandler; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; import androidx... 스키마 변경 - SQLiteOpenHelper 클래스 https://developer.android.com/training/data-storage/sqlite?hl=ko 스키마 변경시, API에서 제공하는 헬퍼 클래스를 사용하며 된다 하지만 테이블 안에 사용자가 저장한 데이터가 있을 때는 그 데이터가 삭제되거나 수정되어야 할 수도 있어서 민감하다 이미 사용하고 있는 상태인지를 구별한 다음 처리해야한다 SQLiteOpenHelper 클래스는 데이터베이스를 만들거나 열기 위해 필요한 작업들을 도와주는 역할을 한다 new 연산자로 만들며, 3개의 파라미터가 들어간다 데이터베이스 파일이 만들어지도록 하려면 getReadableDatabase 또는 getWritableDatabase 메소드를 호출해야한다 이 메소드는 데이터베이스를 만들거나 업그레이드할 때 콜백 메소.. Database Inspector https://developer.android.com/studio/inspect/database?hl=ko 안드로이드 스튜디오는 Database Inspector 기능을 지원한다 화면 하단에 Database Inspector가 생긴다 Live updates에 체크하면 DB에 변경이 생기면 바로 화면도 업데이트된다 여기서 쿼리도 실행이 된다 새 쿼리 탭을 생성한 후, 명령어 입력 후에 ctrl + 엔터키를 누르면 실행된다 안드로이드 스튜디오를 새로 실행하거나, avd를 껐다 켰는데 이렇게 나온다면 openOrCreateDatabase 메소드같이 DB를 오픈하는 메소드를 호출하면 된다 안드로이드 SQLite 안드로이드는 임베디드 데이터베이스로 개발된 경량급 관계형 데이터베이슨 SQLite를 가지고 있다 SQLite는 파일로 만들어진 하위 수준의 구조를 가지면서도 데이터베이스의 기능까지 그대로 사용할 수 있도록 만든 것이다 그리고 저장될 때는 파일로 저장되므로 데이터베이스의 복사, 이동, 삭제가 매우 쉽다 데이터베이스를 만드는 가장 간단한 방법은 Context 클래스에 정의된 openOrCreateDatabase 메소드를 사용하는 것이다 앱에서 기본적으로 사용하는 액티비티 클래스가 Conext를 상속한 것이므로, 결국 액티비티를 만들 때 그 안에서 openOrCreateDatabase 메소드로 데이터베이스를 만들거나 열 수 있다 Context 클래스에는 이렇게 만든 데이터베이스를 삭제할 수 있는 메소드도 정의.. 영화 정보 가져와 보여주기 Volley, Gson 라이브러리와 리사이클러뷰를 합치면 영화 정보를 가져와서 리스트 모양으로 보여주는 것이 가능하다 URL이 XML 레이아웃 안에 들어갈 때는 & 기호를 인식하지 못한다 & 기호로 바꾸어 넣어야한다 기존 https://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key=f5eef3421c602c6cb7ea224104795888&targetDt=20211001 XML 레이아웃에 넣을 URL https://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key=f5eef3421c602c6cb7ea.. JSON 데이터 다루기 Gson 라이브러리는 JSON 문자열을 객체로 변환할 수 있도록 해 준다 Volley를 이용해서 웹 서버로부터 JSON 응답을 받았다면 Gson을 이용해서 자바 객체로 바꾸고 그 객체 안에 들어있는 데이터를 접근하여 사용할 수 있다 Build.gradle(Module)에 Volley와 Gson을 추가하고 Sync now dependencies { ... implementation 'com.android.volley:volley:1.2.1' implementation 'com.google.code.gson:gson:2.8.8' } AndroidManifest.xml 영화 정보 JSON 응답의 포맷에 맞추어 새로운 자바 클래스를 정의해야 한다 변수의 이름은 JSON 문자열에서 속성의 이름과 같아야 하고, 변.. Volley - HTTP 라이브러리 https://youngest-programming.tistory.com/16 참고 블로그 웹 서버에 요청하고 응답을 받을 때 HttpURLConnection 객체를 사용할 수 있지만 요청과 응답에 필요한 코드의 양이 많다 그리고 스레드를 사용하면서 넣어야 하는 코드의 양도 많다 핸들러에 대한 이해가 없다면 앱이 비정상 종료될 수도 있다 이런 문제를 해결하기 위해 여러가지 라이브러리들이 만들어졌고, 가장 많이 사용되는 것 중 하나가 Volley이다 Volley 라이브러리는 웹 요청과 응답을 단순화하기 위해 만들어진 라이브러리이다 Volley를 사용하려면 먼저 요청(Request) 객체를 만들고 이 요청 객체를 요청 큐(Request Queue)에 넣어주기만 하면 된다 그러면 요청 큐가 알아서 웹 서버에 .. 이전 1 2 3 4 5 6 7 ··· 12 다음