android典型代码系列(十三)------通过反射获得未暴露的方法
2015-12-04 14:11
585 查看
10_通过反射获得未暴露的方法:
import java.lang.reflect.Method; import android.app.Activity; import android.content.pm.IPackageStatsObserver; import android.content.pm.PackageManager; import android.content.pm.PackageStats; import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; public class DemoActivity extends Activity { private PackageManager pm; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); pm = getPackageManager(); try { /********************* getPackageSizeInfo 是私有的,没有暴露出来,不能直接调用*************/ /*************** 如果不知道getPackageSizeInfo参数的类型,则可以通过下面的方法来获取 Method[] methods = PackageManager.class.getMethods(); for (int i = 0; i < methods.length; i++) { if ("getPackageSizeInfo".equals(methods[i].getName())) { Class<?>[] paras = methods[i].getParameterTypes(); for(int j=0;j<paras.length;j++){ System.out.println(paras[j]); //获得参数类型 } } }****************************************************************/ Method method = PackageManager.class.getMethod("getPackageSizeInfo", new Class[]{String.class,IPackageStatsObserver.class}); method.invoke(pm, new Object[]{"cn.itcast.mobilesafe",new IPackageStatsObserver.Stub() { public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException { System.out.println("----------------"); long cachesize = pStats.cacheSize; long codesize = pStats.codeSize; long datasize = pStats.dataSize; System.out.println("datasize"+datasize); System.out.println("codesize"+codesize); System.out.println("cachesize"+cachesize); } }}); } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- android典型代码系列(十二)------删除某个文件夹里面的所有内容(递归)
- android studio 导入项目Gradle版本不一致问题解决方法【android studio】
- 016Handler的使用
- android典型代码系列(十一)------判断某个应用程序是 不是三方的应用程序
- Android 用Intent调用系统中经常被用到的组件
- android典型代码系列(十)------获取一个应用程序的权限信息(反射)
- Android 4.4前后版本读取图库图片和拍照完美解决方案
- android(8)(获取手机系统内存和SD卡内存信息)
- android典型代码系列(九)------电话拦截
- github android 控件集群
- 三步搞定Android应用底部导航栏
- android - OOM Bitmap too large to be uploaded into a texture
- android典型代码系列(八)------传递一个String进行MD5编码
- Android开发日记(二)
- android-取URI下file或Content对应的文件
- android典型代码系列(六)------drawable图片转换为48dip的bitmap
- Android开发:shape和selector和layer-list的(详细说明)
- android典型代码系列(五)------deviceadmin步骤
- Android 关于selcrot的使用声明
- android典型代码系列(四)------android全屏代码