.db파일 Android App에 넣기
1. 먼저 assets 폴더를 만들어 줘야한다!! (assets 폴더 없으면 다음 링크를통행 assets 폴더 만들기!)
[Tensorflow & Android] .h5 -> .pb -> .tflite로 변환 & 안드로이드에 적용(python & java)
.h5 -> .pb -> .tflite로 변환 & 안드로이드에 적용(python & java) 1. .h5 -> .pb -> .tflite로 변환 .h5 파일 -> .pb 파일로 변환하기 (코드) from tensorflow import keras model = keras.models.load_model(..
bugloss-chestnut.tistory.com
2. assets 폴더를 만들면 그 안에 ####.db 파일을 넣어준다.
↑ 위와 같이 assets 폴더에 잘 넣어준다~
3. db파일을 잘 넣어줬다면 이제 안드로이드 app에서 코드 넣어볼 차례!
// DB파일 불러오는 함수
// assets 폴더에 db파일 넣어주면됨~
public static final String ROOT_DIR = "/data/data/com.~~~~~/databases/";
public static void setDB(Context ctx) {
File folder = new File(ROOT_DIR);
if(folder.exists()) {
} else {
folder.mkdirs();
}
AssetManager assetManager = ctx.getResources().getAssets();
// db파일 이름 적어주기
File outfile = new File(ROOT_DIR+"######.db");
InputStream is = null;
FileOutputStream fo = null;
long filesize = 0;
try {
is = assetManager.open("######.db", AssetManager.ACCESS_BUFFER);
filesize = is.available();
if (outfile.length() <= 0) {
byte[] tempdata = new byte[(int) filesize];
is.read(tempdata);
is.close();
outfile.createNewFile();
fo = new FileOutputStream(outfile);
fo.write(tempdata);
fo.close();
} else {}
} catch (IOException e) {
}
}
public static final String ROOT_DIR = "/data/data/com.~~~~~/databases/";
→ ~~~~~~에는 자신의 adroid package명을 써준다!
File outfile = new File(ROOT_DIR+"######.db");
is = assetManager.open("######.db", AssetManager.ACCESS_BUFFER);
→ ######에는 자신의 .db 파일의 이름을 써준다!
// Cursor를 통해 .db파일의 내용을 보여주는 함수
public SQLiteDatabase db;
public Cursor cursor;
ProductDBHelper mHelper;
String DBname = "######";
private void ShowMushDBInfo(String name){
setDB(this);
mHelper=new ProductDBHelper(this);
db =mHelper.getWritableDatabase();
String mushname = null;
String mushtype= null;
String mushsym = null;
String mushsim = null;
String sql = "Select * FROM " + DBname;
cursor = db.rawQuery(sql , null);
while (cursor.moveToNext()) {
if(cursor.getString(1).equals(name)) {
mushname = cursor.getString(1);
mushtype = cursor.getString(2);
mushsym = cursor.getString(3);
mushsim = cursor.getString(4);
}
}
mname.setText(mushname);
mtype.setText(mushtype);
msym.setText(mushsym);
msim.setText(mushsim);
}
→ Textview에 내용들이 뜨게 해줬음~
String DBname = "######";
→ ######에는 SQLite로 만들때 테이블 이름을 적는다~
String sql = "Select * FROM " + DBname;
cursor = db.rawQuery(sql , null);
while (cursor.moveToNext()) {
if(cursor.getString(1).equals(name)) {
mushname = cursor.getString(1);
mushtype = cursor.getString(2);
mushsym = cursor.getString(3);
mushsim = cursor.getString(4);
}
}
→ DBname의 테이블에서 cursor로 테이블에 있는 내용 가르쳐줘서 그걸 textview 띄워주겠다라는 Code
→ cursor.getString(0) 부터 시작 !! but 나는 _ID는 필요없기때문에 cursor.getString(1) 부터 시작했다~
package com.~~~~~~;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class ProductDBHelper extends SQLiteOpenHelper { //새로 생성한 adapter 속성은 SQLiteOpenHelper이다.
public ProductDBHelper(Context context) {
super(context, "######.db", null, 1); // db명과 버전만 정의 한다.
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
package com.~~~~~~;
→ ~~~~~~에는 자신의 adroid package명을 써준다.
super(context, "######.db", null, 1); // db명과 버전만 정의 한다.
→ ######에는 자신의 .db 파일의 이름을 써준다.
INSERT INTO ######
VALUES (1,'~~~~~~', '~~~~~~', '~~~~~~','~~~~~~');
→ ###### 에는 자신의 db 파일 table name을 적어준다.
→ ~~~~~~에는 자신이 입력할 내용을 적는다.
gmlwjd9405.github.io/2019/05/13/db-sql-insert-update-delete.html
[DB] SQL문 기본 문법 - 데이터 추가, 삭제, 갱신 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
출처: egloos.zum.com/adamjin/v/2875879
assets에 db넣고 사용하기 -개념이해-
assets에 db를 넣고 사용하는 방법은 두가지가 있다.Adapter를 사용하는 방법과 Activity에 Adapter를 생성해서 사용하는 방법이다.두가지 상황에 맞춰서 assets의 db를 불러오는 방법의 차이점을 아래의 ��
egloos.zum.com
ⓐ 양자화 올리기...
[Tensorflow] .tflite를 Quantization(양자화)하기(python)
.tflite를 Quantization(양자화)하기(python) Python API는 quantization 옵션을 제공한다. 양자화는 float32로 학습된 weight값들을 단순화 시키는 작업을 말한다. 이 작업을 하게되면 .tflite이 파일크기가 대략..
bugloss-chestnut.tistory.com