昨天发了个标题相同的贴
不过,昨天遇到的问题是混淆后速度变慢
这个已经解决了,就是混淆配置中排除Ksoap2-android即可然后现在的问题是这样的
文件传输方法:byte数组-》base64字符串,再上传,逆向转回过程中数据量不可避免的增长了1/3(理论值,百度百科给的,肯定比这个大)
Ksoap2-android貌似不能直接传byte数组,除了转字符串有没有其他方法
如果只能转字符串,那有没有不使数据增长的转换方法吗?

解决方案 »

  1.   

    除了字符串貌似没有别的方法
    我是这么做的://bm是bitmap baos是ByteArrayOutputStream
    bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
    //photodata是String类型,然后将photodata上传,服务器端就是一个byte[] photodata的参数接收
    photodata = new String(Base64.encode(baos.toByteArray(),Base64.DEFAULT));
      

  2.   

    to 2楼
    我也是这么干的
    关键是那个蛋疼的base64
    体积膨胀的厉害
    理论值1/3
    我实体机测差不多1/2(海卓冲浪监视的数据量)
    然后,手机网络本来就不靠谱,这膨胀一下不是更纠结再找一下吧
    不过,估计没什么希望,也不打算花太多时间,不行就算了
      

  3.   

    流量不是问题
    问题是太慢
    而且这样的方法不能做进度条
    网络稍微卡一点的话就会超时
    不过,到时候,让客户拉联通的网,手机用联通的3G网,应该不会太纠结
    (我测试外网,用的是联通3G,服务器是电信的,不怎么理想)
    再要改进的话,估计得使用其他技术,比如服务器上开一个FTP,不过这样权限不好控制
    或者用socket通信(这个暂时不考虑,太麻烦)
      

  4.   

    FTP我做过,你不要考虑,比这个还慢一些,另外你不可能在主线程里面做这个事吧?我都是在AsyncTask里面做上传,并且显示一个ProgressDialog,用try括起来,传完了或者出错了就控制ProgressDialog消失并且提示
    另外你传图片的话最好能够在手机上压缩一下再传,会快一些。