내 질문에 아주 간단하다고 생각되지만 답변이 될 것 같지 않습니다. 내 응용 프로그램에 포함 할 콘텐츠가 상당히 많습니다. 제대로 실행하려면 데이터베이스에 모든 정보를 넣을 생각이고 은 시장에있는 응용 프로그램과 함께 포함 된 데이터베이스에 배포합니다. 유일한 문제는 내가 그 일을하는 방법을 모른다는 것입니다. Eclipse DDMS에서 내 데이터베이스의 내용으로 .db 파일을 추출 할 수 있다는 것을 알고 있으며 내 응용 프로그램의 자산 폴더에 넣어야한다고 가정하지만 응용 프로그램을 사용하여 응용 프로그램을 다시 생성하는 방법 데이터 베이스? 일부 코드 또는 도움말에 대한 링크가 있으면 좋을 것입니다. 감사분산 응용 프로그램의 .apk에 데이터베이스 포함 [Android]
6
A
답변
12
그럼 당신이 요구하는지 무엇을 달성하기 위해, 당신은 ..... 앱을 시작 자산/디렉토리에 .DB 파일을 넣고 제자리에 처음으로 복사 할 수
final String DB_DESTINATION = "/data/data/YOUR_PACKAGE_NAME/databases/MyDatabaseFile.db";
// Check if the database exists before copying
boolean initialiseDatabase = (new File(DB_DESTINATION)).exists();
if (initialiseDatabase == false) {
// Open the .db file in your assets directory
InputStream is = getContext().getAssets().open("MyDatabaseFile.db");
// Copy the database into the destination
OutputStream os = new FileOutputStream(DB_DESTINATION);
byte[] buffer = new byte[1024];
int length;
while ((length = is.read(buffer)) > 0){
os.write(buffer, 0, length);
}
os.flush();
os.close();
is.close();
}
여기서 "initialiseDatabase"는 앱이 처음 시작되었는지 나타내는 플래그입니다.
많은 데이터를 저장하려는 경우 언급 한 바와 같이 APK 파일을 부 풀리지 않고 인터넷 연결을 사용하여 (호스트 된 서버에서) 데이터베이스 레코드를 다운로드 한 후 앱이 출시되었습니다. 이렇게하면 사용자가 앱을 사용하기 시작하는 데 오랜 시간 동안 기다리는 이유를 나타내는 진행률 표시 줄을 표시 할 수 있습니다. 특히 APK를 크게 만들면 사람들이 처음 설치하는 것을 방해합니다.
1
중급 솔루션을 구현할 수 있습니다. 위의 방법을 사용하지만 db 파일을 배포하는 대신 어딘가에 서버에 저장하십시오. 내 경험에 따르면 파일을 처리하는 데 10 % 밖에 걸리지 않으며 나머지는 구문 분석하고 이미지를 db로 serialize합니다.
관련 문제
- 1. Asp.net 응용 프로그램의 분산 트랜잭션
- 2. 핫픽스가 포함 된 분산 응용 프로그램의 버전 관리
- 3. 분산 응용 프로그램의 Microsoft.SqlServer.Management 네임 스페이스/참조?
- 4. iPhone 응용 프로그램의 stdC++ 포함
- 5. VB6 응용 프로그램의 데이터베이스 암호
- 6. Java 응용 프로그램의 대체 데이터베이스
- 7. Mac 응용 프로그램의 데이터베이스 옵션
- 8. 분산 분산 응용 프로그램을위한 아키텍처
- 9. Android 애플리케이션을 내보낼 때 데이터베이스 데이터 포함
- 10. 분산 시스템/데이터베이스 구현
- 11. Android : 수동으로 apk에 파일을 추가하는 방법
- 12. 전체 파이썬 인터프리터를 Android APK에 패키지화하려면 어떻게해야합니까?
- 13. APK에 기본 라이브러리 추가
- 14. 파일 트리를 .apk에 저장하십시오.
- 15. Oracle 분산 데이터베이스 및 MSVC
- 16. Java와 C++ 응용 프로그램간에 분산 (데이터베이스) 트랜잭션을 아카이브하는 방법은 무엇입니까?
- 17. 분산 데이터베이스 관리 시스템 - 대안?
- 18. Eclipse를 통해 Android 애플리케이션에 데이터베이스 파일 포함
- 19. JSON을 대형 분산 응용 프로그램의 인코딩 프로토콜로 사용
- 20. 분산 응용 프로그램의 경우 ASIO와 MPI 중 어느 것을 사용합니까?
- 21. 쓰기가 많은 웹 응용 프로그램의 데이터베이스 디자인
- 22. C# : 응용 프로그램의 내부 파일 데이터베이스
- 23. 응용 프로그램의 모든 곳에서 데이터베이스 액세스
- 24. ASP.NET 응용 프로그램의 데이터베이스 조회 값 처리
- 25. Has_Many, Belongs_To 데이터베이스 기반 응용 프로그램의 관계
- 26. 웹 응용 프로그램의 JDBC 데이터베이스 연결 DAL
- 27. CRUD 응용 프로그램의 기본 NMock 데이터베이스 예제
- 28. 오류 로그 데이터베이스 - 많은 응용 프로그램의 경우
- 29. 웹 응용 프로그램의 데이터베이스 접두사 란 무엇입니까?
- 30. Windows Phone 7 응용 프로그램의 데이터베이스 사용
이전에 진행률 표시 줄을 사용하고 있었지만 많은 사진을 다운로드하고 XML , 그것은 와이파이 대신에 3G 네트워크를 사용하는 경우 특히 많은 시간이 걸립니다 – Sephy
그냥 부울을 사용하는 대신 데이터베이스가 이미 존재하는지 확인하는 것이 더 쉽지 않습니까? 응용 프로그램이 종료 될 때 어떻게 부울을 추적합니까? DB에 항목이 있습니까? – Sephy
정확히 부울이 나타내는 내용이므로 구현 연습으로 남겨 둡니다. 예제 코드를 어떻게 업데이트 할 것인지 업데이트했습니다. – seanhodges