当前位置: 代码迷 >> Android >> android失去/data/app下安装包的大小size
  详细解决方案

android失去/data/app下安装包的大小size

热度:51   发布时间:2016-05-01 18:30:02.0
android得到/data/app下安装包的大小size

由于sdk2.1的PackageManager没有提供查看已安装apk所占磁盘空间大小的api,所以得到size费了一点精力。

一 由于访问/data/app目录需要root权限,所以在模拟器上要进行程序调试时,需要先在电脑cmd下运行以下命令:

adb shell?

su

chmod 777 /data/app (改变该目录的读写属性)

二 接下来就可以在模拟器上执行android程序中所用到的有关/data/app目录的shell命令了。

获取app size的部分代码如下:

public static String getappsize(Context context, String packagename)      {          String appsize = "";              try           {              final Process m_process = Runtime.              getRuntime().exec("ls -l /data/app");                            BufferedReader bufferedReader = new BufferedReader(              new InputStreamReader(m_process.getInputStream()), 8192);                 String ls_1 = null;              try {                  while ((ls_1 = bufferedReader.readLine()) != null)                   {                      String size=ls_1.subSequence(ls_1.lastIndexOf("system") +                          7,ls_1.indexOf(":")-14).toString();                      pkgname=ls_1.subSequence(ls_1.indexOf(":")+4,                           ls_1.indexOf(".apk")-2).toString();                                                                                            if(pkgname.equalsIgnoreCase(packagename))                      {                          appsize=size;                        }                  }              } catch (IOException e)               {                  e.printStackTrace();              } finally               {                  try                   {                       bufferedReader.close();                  } catch (IOException e)                   {                              // TODO: 异常处理                  }                                 }            } catch (java.io.IOException ee) {              System.err.println("RunScript have a IO error :" + ee.getMessage());              return null;          } catch (Exception ex) {              System.err.print("RunScript have a error :" + ex.getMessage());              return null;          }          return appsize;      }

?

?

  相关解决方案