Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android BitmapFactory与BufferedInputStream_Android_Bitmapfactory_Bufferedinputstream - Fatal编程技术网

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(),根据
    DECODE\u BUFFER\u size

    (id发布代码,但格式现在似乎已损坏)

因此,我假设使用
BitmapFactory.decodeStream()
是一个安全的选择