Android BitmapFactory与BufferedInputStream
Android BitmapFactory与BufferedInputStream,android,bitmapfactory,bufferedinputstream,Android,Bitmapfactory,Bufferedinputstream,BitmapFactory.decodeStream(InputStream)是否已读取大量数据块,或者是否应确保向其传递BufferedInputStream而不是原始InputStream 我这样问,就好像BitmapFactory没有在相当大的块中执行IO一样,那么在传递输入流之前,应该清楚地对输入流应用缓冲。但是,如果它已经在大数据块中工作,那么应用缓冲实际上只是添加了一组不必要的memcpy()操作 如果那些使用InputStream或OutputStream参数编写api的人在Jav
BitmapFactory.decodeStream(InputStream)
是否已读取大量数据块,或者是否应确保向其传递BufferedInputStream
而不是原始InputStream
我这样问,就好像BitmapFactory
没有在相当大的块中执行IO一样,那么在传递输入流之前,应该清楚地对输入流应用缓冲。但是,如果它已经在大数据块中工作,那么应用缓冲实际上只是添加了一组不必要的memcpy()
操作
如果那些使用InputStream
或OutputStream
参数编写api的人在Javadoc中清楚地了解这些内容,那就太好了
目前,我正在应用缓冲,除非
InputStream
是AssetManager.AssetInputStream
的一个实例,因为我注意到在decodeStream()
下对该情况的特殊处理。如果查看实现,decodeStream可能会调用两种方法
- nativeDecodeAsset(),在我查看类时,它似乎没有显示实现
- decodeStreamInternal(),根据
(id发布代码,但格式现在似乎已损坏)DECODE\u BUFFER\u size
BitmapFactory.decodeStream()
是一个安全的选择