Java Android中Base64图像编码的速度

Java Android中Base64图像编码的速度,java,android,performance,base64,Java,Android,Performance,Base64,我正在创建一个将图像上传到服务器的示例应用程序,我在stackoverflow上找到了关于在上传之前将图像压缩并编码到base64的内容 我的代码: public String encodeTobase64(Bitmap image) { System.gc(); //For memory efficiency ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.

我正在创建一个将图像上传到服务器的示例应用程序,我在stackoverflow上找到了关于在上传之前将图像压缩并编码到base64的内容

我的代码:

public String encodeTobase64(Bitmap image)
    {

       System.gc();  //For memory efficiency
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        image.compress(Bitmap.CompressFormat.JPEG, 100, baos);
        byte[] b = baos.toByteArray();
        String imageEncoded = null;
         imageEncoded = Base64.encodeToString(b, Base64.DEFAULT);
        return imageEncoded;
    }
出现的主要问题是,当我尝试编码2-3KB左右的小尺寸图像时,它会在闪存中对其进行编码,并在文本视图中为我提供编码字符串(仅用于检查是否编码)…但当我尝试编码大于1MB的大尺寸图像时,应用程序挂起,5分钟后提供答案,直到此持续时间应用程序无法接受为止

尽管我已经为这个编码方法创建了一个新线程,但编码速度还不够快


因此,我想知道是否还有其他更高效、更快速的编码方法,或者我是否可以使这种方法更高效、更快速

为什么你不能直接上传图像而不使用
base64
?@KNeerajLal…我在线查看了许多样本,所有样本都显示了base64编码是一种将图像转换为字符串并发送给用户的方法服务器..如果你知道任何其他方法,请分享我将很高兴know@Leo..How我可以直接上传图像吗?你能提供任何例子吗?为什么你不能在没有
base64
的情况下直接上传图像?@KNeerajLal…我在线检查了许多样本,所有样本都显示base64编码是将图像转换为字符串并发送到服务器..如果你知道任何其他方法,请分享我将很高兴know@Leo..How我可以直接上传图片吗?你能举个例子吗