Android 如何有效地在本地保存可提取文件?

Android 如何有效地在本地保存可提取文件?,android,api,Android,Api,我提取的可提取数据如下: List<ResolveInfo> appsList; appsList = pm.queryIntentActivities(new Intent(Intent.ACTION_MAIN) .addCategory(Intent.CATEGORY_LAUNCHER),0); 在哪里 位置 是一个可变的整数 someView 这是一个ImageView 虽然它工作得很好,但不知怎的,我正在寻找一种方法 直接保存绘图,无需将其转

我提取的可提取数据如下:

List<ResolveInfo> appsList;
appsList = pm.queryIntentActivities(new Intent(Intent.ACTION_MAIN)
                .addCategory(Intent.CATEGORY_LAUNCHER),0);
在哪里

位置

是一个可变的整数

someView

这是一个ImageView

  • 虽然它工作得很好,但不知怎的,我正在寻找一种方法 直接保存绘图,无需将其转换为位图,以及 然后改用
    someView.setImageDrawable()
  • 我可以用序列化的方式来做吗?如果可以,这是个好主意吗
  • getFilesdir()、getCacheDir()
    或SQLite或任何其他。假设大小为2-10KB的图像为50-200张,那么最快的保存和检索方式是什么 不知何故,我正在寻找一种方法,直接保存绘图,而无需将其转换为位图

    您不能持久化
    可绘制的
    <代码>可绘制是一个界面

    我可以用序列化的方式来做吗

    可绘制的
    的一些实现可能是可序列化的

    这是个好主意吗

    我怀疑它会起作用,更不用说可靠地起作用了。不过,你当然可以尝试一下

    保存和检索的最快方法是什么

    我会从不存钱开始。考虑到您的副本在任何时候都可能过时(例如,应用程序更新),我看不出您从将这些内容写入磁盘中获得了什么价值。需要图标时,请从
    PackageManager
    获取

    如果您觉得有必要将这些映像保存到磁盘,那么简单的磁盘I/O应该比SQLite事务更快

        Drawable drawableIcon;
        Bitmap icon;
        File file;
        ResolveInfo ri;
        for (int i = 0; i < appsList.size(); i++) {
            ri = appsList.get(i);
            drawableIcon = ri.loadIcon(pm);
    
            //METHOD to convert Drawable to Bitmap
            icon=drawableToBitmap(drawableIcon);
            try {
                file=new File(context.getFilesDir(),ri.activityInfo.packageName);
                FileOutputStream fos = new FileOutputStream(file);
                icon.compress(Bitmap.CompressFormat.PNG,100,fos);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
    
            someView.setImageBitmap(BitmapFactory.decodeFile(context.getFilesDir()+"/"+cachingClass.appsList.get(position).activityInfo.packageName));