스마트기기개발관련/안드로이드 개발

android 안드로이드 용량 제한 관련

AlrepondTech 2020. 9. 19. 05:10
반응형

 

 

=================================

=================================

=================================

 

 

 

 

 

 

202psj.tistoty.com 주인장 개인 의견

안드로이드 용량 제한(db제한, 파일당 제한, 총용량 제한) 은 버전 기기 안드로이드 정책 마다 각각 차이가 있으므로 개발가가 꼼꼼히 살펴본뒤 

용량 설정을 계획하여 진행하는 것이 좋다고 본다.

 

 

=================================

=================================

=================================

 

 

출처: http://sizuha.wikispaces.com/%EC%9A%A9%EB%9F%89%EC%9D%B4+1MB%EA%B0%80+%EB%84%98%EB%8A%94+%ED%8C%8C%EC%9D%BC%EC%9D%84+asset%EC%97%90+%EB%8B%B4%EC%9D%84+%EB%95%8C

용량이 1MB가 넘는 파일을 asset에 담을 때

 Edit 0 0 3

  • Android에서 raw 혹은 asset 리소스에 담을 수 있는 파일 크기는 최대 1MB(1024KB)로 제한되어 있다.
  • 만일 1MB가 넘는 파일을 꼭 리소스에 담고자 한다면, 파일을 1MB 단위로 분할해서 넣어야 한다.
  • 분할되어 저장된 파일은 App이 실행되었을 때 local 영역에다 하나의 파일로 합쳐서 복사해 두어야 할 필요가 있다. 이럴때는 다음 소스를 참고.
// Asset에 있는 번들 데이터(분할된 파일 형심)를 로컬 영역에 복사
// 분할된 파일은 file.1, file.2, file.3, file.x ... 
// 위와 같은 형식으로 확장자 대신 번호가 붙어 있어야 한다.
public static boolean copyToLocal(Context c, final String assetName, final String toPath) {
    int count = 1;
    InputStream in = null;
 
    FileOutputStream out = null;
    try {
        out = c.openFileOutput(toPath, Context.MODE_PRIVATE);
    } 
    catch (FileNotFoundException e) {
        e.printStackTrace();
    }
 
    while (out != null) {
        // open src files
        try {
            in = c.getAssets().open(assetName + "." + String.valueOf(count));
        } 
        catch (IOException e) {
            in = null;
        }
 
        if (in == null) break;
 
        // copy and merge
        byte[] buff = new byte[1024];
        int size = 0;
 
        try {
            while ((size = in.read(buff)) > 0)
                out.write(buff, 0, size);
 
            in.close();
        } 
        catch (IOException e) {
            e.printStackTrace();
            return false;
        }
 
        ++count;
    }
 
 
    try {
        out.close();
    } 
    catch (IOException e) {
        e.printStackTrace();
    }
 
    return out != null;        
}

 

 

 

=================================

=================================

=================================

 

 

 

반응형

 

 

728x90

 

 

 

출처: http://api5.forcert.com/bbs/board.php?bo_table=B49&wr_id=81584

DB용량이 1MB이상 커지게 되면 어플에 영향을 끼친다고 들었습니다.

저같은 경우는 어플이 느려지거나 가끔씩 강제 종료되는 현상이 있습니다.

그러한 경우에는 어떻게 처리를 해야 하는지 조언을 구해주셨으면 합니다.

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

쪼갠다는 의미는 만개의 데이터가 있을때
1~5,000 까지는 DB1.db에
5,001~10,000 은 DB2.db 에 넣으라는 의미겠죠?

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

딱히 DB를 그렇게 심하게 쓴 어플을 보질 못해서 몰랐는데...
로컬 DB(파일 DB)라 그런 단점이 있나보군요.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

그 말씀은 .db파일을 n개로 나눠쓰라는 말씀이시네요? 용량을 1MB이하로 제한을 두고 쓰면 된다는것인가요? 그렇게 하면 나중에 .db사용할때 분리된것을 다시 합쳐서(하나의.db파일처럼) 써야되는것인가요? 만약 그렇다면 어떤 방법으로 써야되는지 알려주시면 감사하겠습니다.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

뭐 DB1을 뒤지고 다시 DB2를 뒤지고 해야겠지요?
안드로이드가 cpu나 메모리사이즈등 하드웨어나 소프트웨어적으로 계속발전중이니
조만간 이런 문제들은 해결이 될것으로 보이네요.

디비가 너무 커지면 서버에 디비를 두고 쿼리를 하는 것도 ..........
호스팅 서버 그리 비싸지도 않고..

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

해결 방향성을 제시해주셔서 감사합니다. 조금은 길이 보일것 같네요^^

결국은 DB1,2,.... 하나하나씩 검색해야 된다는 불편함이 있지만...해결 할수 있겠네요!

 

서버에 디비를 두고 하고 싶지만...서버없이 개발을 해야되는부분이라서요ㅜㅜ

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

=================================

=================================

=================================

 

 

개발시 총 어플 총 크기나 리소스 용량의 제한 같은 것이 있나요?

폭탄나람

http://www.androidpub.com/901552

2010.10.21 21:29:19

2076

1

앱개발 질문

전체 용량은 상관없는건가요?
그리고 리소스들 사용할 때 크기의 제한이 있나요?
검색해보니 파일당 1mb가 이하만 되고 그 이상은 잘라서 해야 한다는 말이 있던데
이미지나 사운드 등의 리소스의 용량은 얼마정도로 생각하고 개발해야할까요?

 

답변

자세히 아는건 아니지만, 저같은 경우 총 15메가 정도에 (-_-;;)
파일 1개가 2메가가 넘는 (ogg 사운드 파일 입니다.) 것도 잘 사용하고 있습니다. :)

 

 

=================================

=================================

=================================

 

 

출처: http://blog.naver.com/PostView.nhn?blogId=flmisj25&logNo=80173799754

Bitmap 이미지를 BLOB 타입으로 DB에 저장한 후 query를 통해 가져왔더니 다음과 같은 에러가 발생했다.

 

java.lang.IllegalStateException: Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it

원인은 BLOB에 저장된 byte 용량이 너무 컸기 때문이다.

 

query 결과를 가져오는 CursorWindow 는 1MB 의 용량 제한이 있다.

 

그 이상의 데이터를 가져오면 위와 같은 Exception 이 발생한다.

[출처] android CursorWindow의 용량 제한|작성자 씬바라기

 

 

=================================

=================================

=================================

 

 

1mb 제한 관련

http://api5.forcert.com/bbs/board.php?bo_table=B49&wr_id=81584

 

- http://www.appting.com/bbs/board.php?bo_table=B49&wr_id=19581

 

- http://www.androidside.com/bbs/board.php?bo_table=B49&wr_id=48694

 

 

1md 이상 용량 넘는것 사용

- http://www.androidpub.com/index.php?mid=android_dev_qna&page=1114&document_srl=901552

 

 총용량 한계

http://aroundck.tistory.com/682

 

 

=================================

=================================

=================================

 

 

 

 

반응형