android读取assets大于1M文件的解决方法
stackoverflow的原话:
The limitation is on compressed assets. If the asset is uncompressed, the system can memory-map the file data and use the Linux virtual memory paging system to pull in or discard 4K chunks as appropriate. (The "zipalign" tool ensures that uncompressed assets are word-aligned in the file, which means they'll also be aligned in memory when directly mapped.)
If the asset is compressed, the system has to uncompress the entire thing to memory. If you have a 20MB asset, that means 20MB of physical memory is tied up by your application.
Ideally the system would employ some sort of windowed compression, so that only parts need to be present, but that requires some fanciness in the asset API and a compression scheme that works well with random access. Right now APK == Zip with "deflate" compression, so that's not practical.
You can keep your assets uncompressed by giving them a suffix of a file type that doesn't get compressed (e.g. ".png" or ".mp3"). You may also be able to add them manually during the build process with "zip -0" instead of having them bundled up by aapt. This will likely increase the size of your APK
总之:修改后缀名就OK了,修改为png或mp3格式。
更多相关文章
- Android:计算剩余内存
- Android(安卓)P SystemUI添加VoWiFi Tile
- Android自定义Toast 解决关闭通知 Toast无法弹出
- Android(安卓)SQLiteOpenHelper的使用
- CheckBox android:paddingLeft 不兼容问题解决方法
- Android中Broadcast的Intent大全
- Android图片放大修改代码
- android修改进入工程模式
- Android(安卓)P Android.dp添加逻辑判断