1)拷贝数据库涉及到读写 ,所以权限这块需要注意,如果是22以上的需要申请权限,否则会报错。
2)assets文件夹是在main文件夹下面建和res是平级,之前很多来面试的还把文件夹都放错了。
3)读取用户时候,性别一栏是需要做关联查询的 ,因为用户表性别用的是字典值。
Android拷贝逻辑代码
package com.example.testdemo.util;
import android.content.Context;
import android.os.Environment;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class FileUtil {
private static String mWorkPath = null;
private static String mRootPath = null;
private static Boolean mGetSDpath = false;
private final static String DB_PATH_NAME = “database/”;
public static long copyTime = 0;
private static Context mContext;
public static String getRootPath() {
if (!mGetSDpath || mRootPath == null) {
mGetSDpath = true;
boolean sdCardExist = Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED); // 判断sd卡是否存在
if (sdCardExist) {
File sdDir = Environment.getExternalStorageDirectory();// 获取跟目录
mRootPath = sdDir.toString();
} else {
mRootPath = mContext.getFilesDir().toString();
}
}
if (!mRootPath.endsWith(“/”))
mRootPath += “/”;
return mRootPath;
}
/**
-
设置工作目录
-
@param context app context,不然会造成内存泄漏