컴퓨터공부/Android 32

Android Room 사용시 필요한 libraries

아래 설정을 안했더니 이상한 에러가 나면서 컴파일 자체가 안된다.. 구글신에게 물어 봐서 알게 됨 build.gradle 최상단에 apply plugin: "kotlin-kapt" dependencies에는 dependencies{ ... implementation "androidx.room:room-runtime:2.2.5" kapt "android.arch.persistence.room:compiler:1.1.1" implementation "android.arch.persistence.room:rxjava2:2.2.5" // room 하고 rxjava를 같이 쓰려면 필요 } 출처 : stackoverflow.com/questions/46665621/android-room-persistent-appd..

OkHttp의 Network Interceptor

아래와 같이 Retrofit builder에 interceptor를 넣어서 디버깅하면 편리 하다. 아래 주석을 한 것처럼 원하는 데이터만 출력 하는 방법이 있는가 하면, HttpLoggingInterceptor 객체를 생성하여 level만 정해 주고 그냥 쓰는 방법이 있다. HttpLoggingInterceptor로 왠만한 정보를 볼 수 있다. interface GithubApi { @GET fun getUserList(@Url url: String) : Observable } object GithubApiProvider { fun provideGithubApi(): GithubApi { return Retrofit.Builder() .baseUrl(Constant.BASE_URL) .client(pro..

DB Browser for SQLite 로 sql query 연습하기

sql query를 연습하기 위해서는 DB Browser for SQLite 를 설치 하거나 app.mode.com/ 에 가입 하시면 됩니다. 1. 이전 포스팅에서 나온봐와 같이 https://mode.com/sql-tutorial/sql-select-statement/ 가셔서 설명을 이해하고 제공되는 sql 가상 command를 이용해서 연습 문제를 푸시면 됩니다. 2. 이게 본론인데.. DB Browser for SQLite 깔아서 연습하기 입니다. 설치 하면 아래와 같은 화면인데요. 왼쪽위에 'New Database'를 눌러서 db이름을 지정해 주고, 'Execute SQL' 탭에 가서 쿼리를 해보면 됩니다. 그리고 'Browse Data'탭에 가셔서 정상적으로 데이터가 들어 갔는지 보시면 됩니다...

Android SQLite query 공부 하기

제가 내린 결론은 "Android SQLite query는 결과적으로 sql query를 쓸 수 있어야 한다." 입니다. 아래 출처에 나온 것 공부 하면서 느낀 건 결국 db.execSQL() 과 db.lowquery() 를 써야 하고, sql을 모르면 이게 뭔지 모를 공산이 크다. 몇몇 create table, delete from table, drop table 은 별도로 봐줘야 할 필요가 있지만 그래도 기본은 sql query이다. 왜냐 하면 sql query를 이해하고 이걸 코딩하는 방식으로 변환 하면 끝이기 때문입니다. 아래 코드를 보시면 제가 무슨 말을 하는지 이해가 가실겁니다. // Table create String studentSql= "create table " + TB_STUDENT ..

Stetho로 Sqlite db 들여다 보기

Stetho.initializeWithDefaults(this); Stetho로 안드로이드 내부의 sqlite db를 들여다 볼 수 있다. (SharedPreference값, 네트워크상태 등의 정보고 볼 수 있다.) 1. gradle에 dependencies 에 아래를 추가 implementation 'com.facebook.stetho:stetho:1.5.1' 2. MainActivity의 onCreate()에 초기화 코드 추가 @Override protected void onCreate(Bundle savedInstanceState) { .. Stetho.initializeWithDefaults(this); .. } 3. 크롬의 chrome://inspect 페이지에 가서 확인하기 4. 끝. 더 자세..

Mac에서 wifi 디버깅하기

ADBWiFiConnect 프로젝트가 있었다. 이걸 이용하면 더 쉽다!!! easy!!! 이 사이트를 참고 해서 하면 된다. + 이 아래는 그냥 참고로 남겨둡니다. Mac에서 안드로이드 wifi 디버깅이 가능하다. 그러기 위해서 '터미널에서 adb 실행하기'를 해야 한다. '터미널에서 adb 실행하기'를 하기 위해서는 '안드로이드 sdk 폴더 위치 알기'를 해야 한다. 차근차근 알아보자... 1. 안드로이드 sdk 폴더 위치 알기 -> 안드로이드 스튜디오 설치 할 때 기본 설치를 하면 위치는 아래와 같다 /Users/유저이름/Library/Android -> 하지만 저 위치에 가면 Library 폴더가 보이지 않을 것이다. ㅋ -> '/Users/유저이름' 폴더에서 상단 메뉴인 [보기 -> 보기옵션]을 ..

Android activity / fragment life cycle(계속 업데이트)

많이 봐오던 안드로이드 라이프 사이클이다. onPause()는 현재 상태에서 팝업이 뜰 경우 발생할 수 있다. onStop()는 홈버튼을 눌렀을 때 발생한다. recent키를 통해서 앱을 선택하게 되면 onRestart() 상태가 된다. onDestory()는 recent에서 앱을 닫았을 때 발생한다. App process killed는 시스템에서 메모리가 부족할 때 언제나 발생할 수 있다. 이 때는 앱을 다시 시작 해야 한다. fragment life cycle이다. 다양한 UI를 쉽게 구성하거나 재사용에 쉬워서 자주 사용 되지만, 관리의 어려움이 있어서 activity만 사용하려고 하는 경우도 존재한다. 프래그먼트를 추가 또는 제거하는 등 개별적인 조잘이 가능 액티비티는 프래그먼트의 트랜잭션을 관리 ..

savedInstanceState 사용법 + fragment 예제

화면이 회전되거나 크기가 변할 때 화면이 다시 그려지는데,View 안의 데이터가 유지가 되지 않습니다. 이럴 때, savedInstanceState를 사용하면 View 안의 데이터를 보존 할 수 있습니다. class내에서 public void onSaveInstanceState(Bundle outState) 함수를 재정의하여 사용하면 됩니다. MainActivity.javapublic class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.savefragmen..