안드로이드 개발 에뮬레이터 앱 db 조회 하는 방법 |
환경: Android Studio |
앱에서 만든 DB 테이블의 내용을 확인하려면 어떻게 해야 할까요? 예전처럼 안드로이드 스튜디오에서 제공하는 Android Device Monitor 로 확인할 수 없습니다. 패키지 안에 databases 폴더에 접근할 수가 없기 때문입니다. DB 테이블에 내용을 확인하기 위해서는 adb shell 을 이용해야 합니다. 오늘은 샘플 앱에서 저장한 데이터를 adb shell 로 조회하는 방법에 대해 알아 보겠습니다.
▼ 먼저 DB Helper 클래스를 이용해서 SQLite 에 DB 를 만들고 테이블을 생성한 뒤 값을 넣어 보겠습니다. 그리고 테이블에 들어가 있는 값을 에뮬레이터로 조회할 것입니다. SQLiteOpenHelper 를 상속받아 사용자 정의 클래스를 만듭니다. 그리고 클래스의 onCreate() 함수에서 테이블 생성과 샘플 데이터를 입력합니다. DB 생성은 생성자 함수인 DBControl() 에서 하게 됩니다.
import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DBControl extends SQLiteOpenHelper { public static final String DB_NAME = "work.db"; public static final int DB_VERSION = 1; public DBControl(Context context) { super(context, DB_NAME, null, DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 테이블 생성 db.execSQL("CREATE TABLE USER( ID INTEGER PRIMARY KEY AUTOINCREMENT," + "NAME TEXT, AGE INTEGER);"); // 테이블에 값 입력 db.execSQL("INSERT INTO USER VALUES (null, 'ahkds@mail.com' , 20 );"); db.execSQL("INSERT INTO USER VALUES (null, 'kksujd@naver.com' , 66 );"); db.execSQL("INSERT INTO USER VALUES (null, 'ulid200@gmail.com' , 15 );"); db.execSQL("INSERT INTO USER VALUES (null, 'text@naver.com' , 31 );"); db.execSQL("INSERT INTO USER VALUES (null, 'uusydfks@naver.com' , 22 );"); db.execSQL("INSERT INTO USER VALUES (null, 'qpodjs@gamil.com' , 36 );"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub } }
▼ 위에서 만든 사용자 정의 클래스를 이용해서 DB 를 만들고 테이블에 데이터를 입력할 Activity 소스 입니다. SQLiteOpenHelper 의 getWritableDatabase() 함수를 이용해서 읽기/쓰기 모드를 설정할 수 있습니다.
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import display.samsung.workplace.common.DBControl; public class DbActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_db); DBControl dbControl = new DBControl(this); //dbControl.getReadableDatabase(); // 읽기 전용 dbControl.getWritableDatabase(); // 읽기/쓰기 전용 dbControl.close(); } }
▼ 다음은 콘솔에서 DB 에 값이 들어가 있는지 확인해 보겠습니다. 콘솔을 실행하고 adb shell 을 입력합니다.
▼ 셀이 활성화 되면 cd 명령어를 이용해서 패키지가 있는 /data/data 폴더로 이동합니다.
▼ 자신이 만든 패키지 폴더로 진입하기 전에 cd 가 아닌 run-as 로 접근해야 합니다. 왜냐하면 cd 로 패키지 폴더로 접근할 수 없기 때문입니다. run-as 로 폴더가 활성화되면 databases 로 들어갑니다. sqlite3 로 databases 폴더에 work.db 파일를 읽습니다. work.db 는 앱에서 만든 DB 입니다.
▼ 테이블에 데이터가 들어가 있는지 확인하기 위해 select * from USER; 쿼리로 조회합니다. 그림처럼 Activity 에서 저장한 데이터를 확인할 수 있습니다.
'안드로이드 개발' 카테고리의 다른 글
안드로이드 개발 엑셀 파일 생성 및 데이터 불러오는 방법 (3) | 2018.08.07 |
---|---|
안드로이드(Android) 개발 Timer 구현하는 방법 (0) | 2018.07.05 |
안드로이드 개발 인터넷 연결(WI-FI, 3G, 4G) 구분해서 연결 확인하는 방법 (0) | 2018.07.02 |
안드로이드 개발 SharedPreferences 객체와 배열 저장을 위한 gson 사용하는 방법 (3) | 2018.04.13 |
안드로이드 개발 Android GPS 정보 알아오기 (63) | 2018.04.07 |
안드로이드 콘솔에서 adb shell 에러 해결하는 방법 (0) | 2018.03.30 |
안드로이드 개발 자료 관리를 위한 SharedPreferences 사용하는 방법 (0) | 2018.03.24 |
안드로이드 개발 DB 변경 결과 이후 작업을 위한 옵져버 ContentObserver 활용하는 방법 (0) | 2018.03.24 |