2012-03-29 5 views
2

<item>170,000</items>string.xml을 추가 한 후 그것은 작업 공간을 구축하는 데 너무 느려지고, 나는 힙 공간과 jvm 메모리를 늘리지 만 느린 편이다. 프로그램을 실행하기 전에 일식을 저장하기 위해 매번 편집 한 후 4 시간을 기다려야했다.너무 많은 항목이있는 String.xml이 너무 느림

어떤 해결책을 제공해 주시겠습니까? (우분투 11.10에서 gnome 3.0을 사용하고 있습니다.)

+2

그 170k 문자열은 무엇입니까? –

+4

xml 파일에 너무 많은 데이터가 포함되도록 설계되지 않았습니다. –

+0

XML 파일은 데이터베이스가 아닙니다. – EJP

답변

5

string.xml에 문자열을 삽입하는 대신 /res/raw 안에 파일을 배치하고 처음으로 응용 프로그램을 시작할 때 db에 파일을 삽입 해보십시오.

+1

또는 더 나은 방법은 ['SQLiteAssetHelper'] (https://github.com/jgilfelt/android-sqlite-asset-helper)를 사용하고 데이터베이스를 앱과 함께 포장하는 것이다. – CommonsWare

+0

나는 파일 판독기를 사용한다. 그것도 최악이다. 나는 Java에 SQL을 사용하지만 안드로이드에는 안드로이드에서 어떻게 사용합니까? SQL 소프트웨어를 다운로드해야합니까? 거기 밖으로 자유로운 서버처럼 내 파일을 업로드 할 수 있으며 안드로이드 애플 리케이션에서 시작할 수 있습니다. – ImGeorge

+0

@ Immanuel.I.George : SQL 소프트웨어는 필요하지 않습니다. 안드로이드는'SQLite'와 함께 제공됩니다. – Macarse

0

정확히 무엇을하고 있는지 분명하지 않습니다. 이 XML 파일을 어떻게 작성하고 있습니까? 아마도 당신은 자바 문자열 연결을 사용하고 있습니까? 그것은 확실히 매우 느릴 것입니다. 나는 XMLStreamWriter와 같은 것을 사용하여 그것을 할 것이다. 하지만 시나리오를 더 자세하게 설명해야합니다. 예를 들어 Eclipse가 어디에 들어 있는지 알 수 없습니다.

+0

사실 Eclipse가 들어 있습니다. 170,000 단어가 참조로 사용되거나 사용자 입력과 비교하여 정확하거나 틀린 것이 표시되면 그보다 더 복잡합니다. 좋아, 내 가장 큰 문제는이 단어를 저장하는 편리한 방법을 찾는, 내가 먼저 파일 리더를 사용하지만 그것도 보지 못한다. Java에서 파일 판독기를 사용 했으므로 파일을 프로젝트 폴더로 복사하고 이름을 호출하는 것은 쉽습니다. 쉽습니다. 하지만 안드로이드에서 나는 file.txt를 복사 할 정확한 장소를 모른다. .txt 파일이 .apk 파일과 함께 패키징되는지 확신 할 수 없었습니다. – ImGeorge

+0

그래서 내 옵션은 을 string.xml에 사용하는 것이었지만 느리게 진행되었습니다. 빌드하는 데 몇 시간이 걸렸습니다. 이제 sql lite가 남아 있는데도 .apk와 함께 패키지 될 것입니다. 도와주세요. – ImGeorge