PC가 데이터 라인을 통해android 데이터베이스 읽기 (2) 안드로이드 개발
3548 단어 C# Android 데이터 읽기C# 작업 Adb
우리가 해야 할 일은 PC가 안드로이드의 데이터베이스를 읽는 것이기 때문에 데이터베이스가 없으면 안 된다. 그래서 우리는 지금 안드로이드 앱에 데이터베이스를 만들자.여기 데이터베이스의 ORM 프레임워크는 곽림대신이 개발한 SqLite 2.0 프레임워크입니다. 누가 저에게 그의 첫 줄 코드가 자라는 것을 보여 주었을까요?다음과 같은 사용자 모델을 생성했습니다.
public class UserModel extends LitePalSupport {
private int id;
private String username;
private String password;
private String email;
//..... set get
}
다음에 데이터베이스에 데이터를 추가하고 UserAddActivity에 인원 데이터를 입력하여 인원을 데이터베이스에 저장합니다
if (ValidForAdd()) {
UserModel userModel=new UserModel();
userModel.setUsername(et_username.getText().toString());
userModel.setPassword(et_password.getText().toString());
userModel.setEmail(et_email.getText().toString());
userModel.save();
finish();
}
다음은 정말 중점입니다. 안드로이드 개발자로서 저희가 응용한 데이터베이스 파일은'/data/data/당신 프로젝트의 패키지/database'디렉터리에 저장됩니다. 파일 이름은 xxx입니다.db 파일, 그러나 안드로이드 보안 메커니즘의 영향으로 우리는 이 파일에 직접 접근할 수 없기 때문에 이db 파일을 복사한 다른 사람들이 접근할 수 있는 공유 디렉터리에 접근해야 한다(android의 빈틈은 아니지만 아무도 자신의 데이터를 이렇게 하지 않을 것이다).다음 코드를 통해 db 파일 복사본을 공유 디렉터리에 저장합니다.
public boolean copyDbToPublicDirectory() {
boolean success = false;
try {
// db
String dbDirPath = "/data/data/" + packageName
+ "/databases/";
File dir = new File(dbDirPath);
if (dir.exists() && dir.isDirectory()) {
File[] files = dir.listFiles();
if (files != null && files.length > 0) {
for (File file : files) {
if (file.getName().endsWith("db")) {
//
Log.i("hf", " " + file.getName());
//
File documentDir = Environment.getExternalStorageDirectory();
Log.i("hf", " SDka" + documentDir.getAbsolutePath());
String saveDir = documentDir.getAbsolutePath() + "/" + packageName + "/" + "dbfiles";
File f_saveDir = new File(saveDir);
if (!f_saveDir.exists()) {
f_saveDir.mkdirs();
}
String saveFile = saveDir + "/" + file.getName();
Log.i("hf", " :" + saveFile);
File f_saveFile = new File(saveFile);
if (!f_saveFile.exists()) {
f_saveFile.createNewFile();
}
//
Log.i("hf", " ");
FileUtils.copyFileUsingFileChannels(file, f_saveFile);
Log.i("hf", " ");
}
}
success = true;
}
}
} catch (Exception ex) {
Log.e("hf", ex.getMessage());
}
return success;
}
복사할 때 안드로이드 6.0의 권한 문제에 주의하세요. 이로써 우리 안드로이드의 준비 작업은 끝났습니다. 동적 그림을 보고 감상합시다.프레젠테이션gif
다음 편, 드디어 pc 측 개발, 휴식 하 고, 다시 노력 하 자!!