`
shadow88
  • 浏览: 10753 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
最近访客 更多访客>>
社区版块
存档分类
最新评论

java中的反射机制在Android开发中的用处

阅读更多
    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
     然而在android中Google很多的类的某些方法不让第三方应用去调用,通过java反射机制能把这些隐藏方法获取出来并调用,三方应用上我们就很方便的去用这些方法。
     例如我们需要安全的杀死某个应用的服务和进程调用ActivityManager.forceStopPackage()方法很方便


Method m = null;
try {
     Class c = Class.forName("android.app.ActivityManager");
     m = c.getMethod("forceStopPackage", Class.forName("java.lang.String") );
     m.invoke(am, "com.tencent.mobileqq");
} catch (IllegalArgumentException e) {
     // TODO Auto-generated catch block
      e.printStackTrace();
} catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
     e.printStackTrace();
} catch (NoSuchMethodException e) {
   // TODO Auto-generated catch block
     e.printStackTrace();
} catch (IllegalAccessException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
} catch (InvocationTargetException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
}

当然隐藏了这些API是为了防止第三方应用打破其他应用程序,停止服务,消除他们的警报等等。隐藏的这些api肯定也是有系统权限的,这些权限也是被隐藏的,那么我们怎么在自己的应用里去调用这些权限呢?
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.acer.shadow.apps"
    android:versionCode="1"
    android:versionName="1.0" 
    android:sharedUserId="android.uid.system">    
    <uses-permission android:name ="android.permission.FORCE_STOP_PACKAGES"/>

如上,我们只需要在AndroidManifest.xml中添加android:sharedUserId="android.uid.system"这句就能调用系统的一些隐藏权限,但是这样还不行,这个应用还得签名。
用命令行进入到目录下面输入
java -jar signapk.jar platform.x509.pem platform.pk8 ResApp.apk DesApp.apk
ResApp.apk:要签名的apk DesApp.apk签名后生成的apk
分享到:
评论

相关推荐

    java反射机制的原理及在Android下的简单应用

    java反射机制的原理及在Android下的简单应用

    Java反射机制的原理及在Android下的简单应用[归纳].pdf

    Java反射机制的原理及在Android下的简单应用[归纳].pdf

    利用java反射调用Android隐藏Api

    利用java的反射原理来调用 Android隐藏api 应用开发必备哦 详细描述: http://blog.csdn.net/y_haiyang/article/details/9924925 ====================关注小鱼=================== 新浪微博:...

    Java反射以及在Android中的特殊应用

    关于反射,一般书上的定义是这样的:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的...

    Java 学习之反射机制及应用场景

    前言:  近公司正在进行业务组件化进程,其中的路由实现用到了Java的反射机制,...  JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方

    Java反射机制的原理及在Android下的简单应用

    在Java中的反射机制,被称为Reflection。(大家看到这个单词,第一个想法应该就是去开发文档中搜一下了。)它允许运行中的Java程序对自身进行检查,并能直接操作程序的内部属性或方法。Reflection机制允许程序在正在...

    详解Java编程中的反射在Android开发中的应用

    主要介绍了详解Java编程中的反射在Android开发中的应用,主要来获取安卓系统的属性值,需要的朋友可以参考下

    AES-Java-iOS-Android.zip

    动态性:Java可以通过反射、注解等机制实现在运行时动态加载类和修改行为,增加了程序的灵活性。 综上所述,Java凭借其强大的特性和广泛的适用范围,在企业级应用、互联网服务、移动开发等领域均扮演着举足轻重的...

    java和android 通用的rsa 加密封装 .zip

    在android中采用java的填充算法 可以和ios .net跨平台使用 Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems公司于1995年5月正式发布。它的设计目标是“一次编写,到处运行(Write Once, Run Anywhere...

    Android插件化开发Demo

    Android动态加载插件技术指的是在Android程序运行的过程中,使用java的反射,动态调用存放于应用程序目录下(SD卡即可)的APK文件,从而动态生成界面。

    Java反射的简单使用

    先来一些不太实用的解释:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java...

    java Android 算法 解决方案 分享.zip

    动态性:Java可以通过反射、注解等机制实现在运行时动态加载类和修改行为,增加了程序的灵活性。 综上所述,Java凭借其强大的特性和广泛的适用范围,在企业级应用、互联网服务、移动开发等领域均扮演着举足轻重的...

    Android 工程师成长之路:JAVA算法的实现,数据结构 和 Android源码笔记等 分享.zip

    动态性:Java可以通过反射、注解等机制实现在运行时动态加载类和修改行为,增加了程序的灵活性。 综上所述,Java凭借其强大的特性和广泛的适用范围,在企业级应用、互联网服务、移动开发等领域均扮演着举足轻重的...

    《Android应用开发》个人总结报告.doc

    《Android应用开发》个人总结报告 刚开始接触Android感觉到它很有意思,在界面开发上和web也可以形成了相通的架构 ,更加方便,视觉上也是非常的酷,在前期我通过的大量的Android SDK开发范例大全中的例子以及...

    android,java必备知识,面试知识,工作学习记录.zip

    也包含java数据结构,算法,爬虫,泛型,反射等实现 开发工具在软件开发生命周期中扮演着至关重要的角色,它们旨在简化和加速从概念设计到产品部署的各个环节。以下是开发工具的主要作用: 代码编写与编辑: ...

    java学习手册

    java学习手册是专门为java开发者开发的一款APP,目前只支持Android系统,各大应用商店均可下载。 这款应用面向所有想学习Java或正在学习Java的朋友们,适用于初学者和有一定java开发经验的朋友们。 该应用目前一共分...

    Android 反射注解与动态代理综合使用详解

    反射是java中一种强大的工具,能够使我们很方便的创建灵活的代码,这些代码可以再运行时装配,无需在组件之间进行源代码链接。但是反射使用不当会成本很高 比较常用的方法 getDeclaredFields(): 可以获得class的...

Global site tag (gtag.js) - Google Analytics