[英]Parse.com Android: Number of ParseObjects I can pin to the Local Datastore?
[英]parse.com - Android - unable to pin large size ParseObject to local datastore
我在Google Glass设备上使用Parse.com,并且尝试将较大的ParseObject(大约50 MB)固定到本地数据存储区。 我注意到,在堆内存超过10MB之后,固定过程将暂停,并且不会引发任何异常。 我也尝试依次固定一系列ParseObject(一次),但是同样,当堆达到10MB时,固定过程将暂停。 有时它比其他时候固定更多的对象,所以我猜测Java GC有时比其他人更努力。 请帮助我,或者给我一种替代的方法,用于在内部存储大型对象(包含大量图像)。
1)如果我正确理解了您的问题,则希望将图像存储在手机中(以便您的应用稍后可以检索),然后您可以尝试将其存储在SD卡中:
public static boolean storeImage(Bitmap bitmap, String filename) {
boolean stored = false;
String file_path = Environment.getExternalStorageDirectory().getAbsolutePath() +
"/myFolder";
File dir = new File(file_path);
if(!dir.exists())
dir.mkdirs();
File fileToStored = new File(dir, filename + ".png");
try {
FileOutputStream outputStream = new FileOutputStream(fileToStored);
bitmap.compress(Bitmap.CompressFormat.PNG, 90, outputStream);
outputStream.flush();
outputStream.close();
stored = true;
} catch (Exception e) {
e.printStackTrace();
}
return stored;
}
*清单文件中需要权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2)使用Parse 2个月后,还有另一种方法供您使用Parse数据库中的字符串来存储图像(注意Image列是一个字符串)和base64解码/编码:
public static Bitmap decodeBase64(String input) {
if (input == null) return null;
byte[] decodedByte = Base64.decode(input, Base64.NO_WRAP);
return BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);
}
public static String encodeTobase64(Bitmap image) {
Bitmap immagex=image;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
immagex.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] b = baos.toByteArray();
String imageEncoded = Base64.encodeToString(b, Base64.NO_WRAP);
Log.e(TAG, "encoded Img: " + imageEncoded);
return imageEncoded;
}
*注意:使用NO_WRAP而不是DEFAULT,以便iOs应用程序还可以对字符串进行编码和解码
3)另一种存储图像的选项,我更喜欢将其存储在服务器上,然后在需要时进行检索,您可以将其存储在自己的服务器上,或者使用其他著名的服务,我已经尝试过Imgur API,并且效果很好(当然,如果您的应用每天没有1,250次上传或每天没有大约12,500个请求,则它是免费的)
API文档: https : //api.imgur.com/
Android上传样本: https : //github.com/AKiniyalocts/imgur-android
如果您知道其他更好的方法,请随时发表评论。 技术日新月异!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.