2014-02-27 5 views
0

나는 수동으로 작성한 노트에 첨부 파일을 추가 할 수 있어야하는 애플리케이션 (간단한 CRM 종류)을 작성 중입니다. 메모는 간단한 텍스트의 형태를 가지며, 첨부 파일은 PDF 또는 사용자가 만든 사진이거나 미래의 다른 합리적인 문서 일 수 있습니다.Android 애플리케이션의 첨부 파일을 저장할 위치는 어디입니까?

응용 프로그램은 ContentProvider을 통해 SQLite 데이터베이스를 사용합니다. 데이터베이스의 내용은 웹 서비스를 통해 중앙 서버와 동기화되어야합니다.

첨부 파일 전용 데이터베이스 테이블에 대해 생각하고 있습니다. 이렇게하면 첨부 파일이 첨부 테이블의 키를 통해 메모에 추가됩니다. 중앙 서버와 동기화 할 때 테이블은 응용 프로그램의 다른 데이터베이스 부분과 별도로 동기화 될 수 있습니다.

이제 질문 : 첨부 파일을 응용 프로그램에 저장하는 방법은 무엇입니까? 예, 사진은 갤러리와 별도로 저장해야합니다. 또한 PDF 문서는 응용 프로그램과 관련된 디스크 공간에 저장해야합니다 (보안상의 이유로). 첨부 파일 데이터베이스 테이블은 문서에 대한 참조 만 저장해야합니까? 아니면 SQLite blob을 고려해야합니까? 또는 첨부 파일을 저장할 위치를 사용자에게 알려주는 것이 합리적입니까? (내부 저장 장치 대 외부 저장 장치 [microSD 카드]를 의미합니다.)이 경우 어떤 장점과 단점이 있습니까?

답변

1

안드로이드 guidlines는 내부 메모리에 약 1MB 만 저장해야하며 거의 모든 것을 SD 카드에 저장할 수 있다고 말합니다. 그러나 sdcard에 쓰기 권한이있는 모든 앱에서 읽을 수 있으므로 데이터를 암호화해야합니다.

android 4.4부터는 보호되어야하는 외부 캐시 디렉토리를 사용할 수도 있습니다. 그러나 루팅 된 장치에서는 데이터를 보호하지 못합니다.

+0

죄송합니다. RAM의 의미에서 * 메모리 *가 아닌 * 내부 스토리지 * 대 * 외부 저장소 *를 의미했습니다. 내가 염려하는 것에 곧바로 가려면 : 파일 내용을 저장하기 위해 BLOB를 사용 하시겠습니까? 아니면 클래식 파일을 선호 하시겠습니까? – pepr

+0

이 컨텍스트에서 BLOB의 의미를 모르겠습니다. 나는 암호화 된 파일을 저장할 것입니다. – rekire

+0

나는 파일 내용이 SQLite 데이터베이스의 데이터 유형에 바이트로 저장된다는 의미에서 SQLite BLOB 유형을 의미합니다. 즉, 파일 시스템에 직접적으로 저장되지는 ​​않습니다. 나는 security *에 대해서 언급했지만 실제로는 암호화가 필요 없다. 응용 프로그램이 그렇게 안전 할 필요는 없습니다. 난 단지 응용 프로그램 공간에 데이터를 보관하고 싶습니다. – pepr

관련 문제