我正在发布一个双语词典应用程序 ( https://play.google.com/store/apps/details?id=com.akkzrt.szotarhude012013a ),这两种语言都有超过 130 000 个词条。在程序启动时,我将存储在 assets 文件夹中的两个 utf-8 文本文件中的数据预加载到两个 ArrayAdapter 中,然后将第一个适配器设置为我的单个 ListView。在 ListView 的顶部,我有一个按钮可以切换到另一个适配器(来回)。我在一些设备(三星galaxy mini、华硕tf201、三星galaxy s 1和2、lg nexus 4、三星galaxy nexus)上进行了测试,一切正常。
然后一位用户带着他的 Sony Ericsson Experia MK16i 来找我。他抱怨应用程序没有为他启动,只是加载了很长时间然后内存不足。在我的 google play 开发人员管理页面上,我有两个 java.lang.OutOfMemoryError 崩溃:一个在 dalvik.system.NativeStart.main 中,一个在 android.graphics.BitmapFactory.nativeDecodeAsset 中。
我能做些什么呢?我应该使用 sql 数据库和 cursoradapter 重写我的整个加载模块吗?我想避免这种情况。
每一个帮助和想法都受到高度赞赏。非常感谢:伊斯特万