由于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; }
?
?