`
shadow88
  • 浏览: 10960 次
  • 性别: 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
分享到:
评论

相关推荐

    反射机制在Android开发中的应用.pdf

    至2013年,Android市场应用数量已达到80万,但在开发过程中,有时会遇到API限制导致优秀的软件设计无法实现。为突破API的限制,调用系统的封闭类和方法,实现软件设计需求,Android软件开发中,反射机制成为一种重要...

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

    ### Java反射机制的原理及在Android下的简单应用 #### 一、Java反射机制的基本概念 反射(Reflection)是指程序在运行时能够访问、检测和修改它自身的能力。这种能力使得程序能够动态地获取自身的结构信息并操作...

    android系统java反射机制详解

    下面将深入探讨Java反射机制的概念、原理及在Android开发中的应用。 一、Java反射机制概述 Java反射机制的核心在于Class类,它是所有类的元数据容器。通过Class对象,我们可以在运行时获取到类的完整信息,包括类名...

    Java反射机制的学习

    在Android应用开发中,反射机制尤其重要,因为某些系统类或方法被Google用`@hide`注解隐藏,无法直接在SDK中使用,反射提供了访问这些隐藏功能的途径。 要使用Java反射,首先需要获取到`Class`对象,这是反射操作的...

    Android平台与Web服务数据交互时运用Java反射机制解析数据的研究.pdf

    在Android平台上,使用Java反射机制可以提高开发Android软件的灵活性和可扩展性,使得软件系统具有自适应能力,并在运行时随外部环境的变化而改變自身,实现程序的动态演进。 在数据交互过程中,使用Java反射机制...

    《JAVA和ANDROID开发学习指南 第2版》PDF

    此外,书中还会涉及Java的IO流、线程处理以及反射机制,这些都是Java开发者必备的知识。 Android开发方面,书本会介绍Android系统架构、开发环境的搭建,包括Android Studio的使用。从创建第一个"Hello, World!...

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

    在Android开发中,反射机制有着广泛的应用,尤其是在处理框架内部逻辑、插件化开发、API兼容性等问题时。 一、反射的基本概念 反射的核心在于`java.lang.Class`类,它是所有Java类的元数据类,提供了获取类信息...

    Java反射机制测试Demo

    下面我们将深入探讨Java反射机制及其在实际开发中的应用。 首先,`Class`对象是反射的基础,每个类在内存中都有一个对应的`Class`对象,通过这个对象我们可以获取到类的所有信息,包括类名、访问修饰符、父类、接口...

    android 反射机制 简单示例

    在Android开发中,反射机制是一种强大的工具,它允许我们在运行时动态地获取类的信息或调用私有方法、访问私有变量,甚至修改类的行为。本文将深入探讨反射的概念、工作原理以及如何在Android中使用反射,通过一个...

    利用java反射调用Android隐藏Api

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

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

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

    java 反射 报错 no such method exception

    ### Java反射机制与NoSuchMethodException详解 在Java编程中,反射是一种强大的机制,允许程序在运行时检查和修改自身结构和行为。然而,当开发者尝试使用反射调用一个不存在的方法时,便会遇到`java.lang....

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

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

    android 使用反射机制操作数据库 插入 查询

    在Android开发中,数据库是应用数据存储的重要方式,SQLite作为Android内置的关系型数据库,被广泛应用于各种场景。本文将深入探讨如何使用反射机制来操作SQLite数据库,包括插入数据和查询数据,以实现更加灵活和...

    MediaController反射修改

    在Android开发中,反射常用于访问私有成员、调用私有方法或改变私有状态,以实现对系统组件的定制。 在"MediaController反射修改"这个主题中,开发者可能遇到以下关键知识点: 1. **MediaController类的理解**:...

    java中文帮助文档+Android官方帮助文档

    Java的特点包括平台独立性、安全性和高性能,它被广泛应用在网络应用、移动应用以及企业级应用开发中。Java的帮助文档通常包含了类库的详细说明、API接口、异常处理、垃圾回收机制、多线程编程、网络编程、I/O流、...

    android java反射,通过图片名获取图片

    在Android开发中,Java反射是一种强大的工具,它允许我们在运行时检查类、接口、字段和方法的信息,并且能够在不直接调用的情况下执行类的方法。在给定的场景中,“android java反射,通过图片名获取图片”这个主题...

    Qt for Android 用JNI来使C++和Java互调(目前最新版全网只有这个可用)

    在开发跨平台应用程序时,Qt框架提供了一个强大的工具集,允许开发者使用C++编写代码,同时也能在Android这样的移动平台上运行。"Qt for Android 用JNI来使C++和Java互调"的主题揭示了如何利用JNI(Java Native ...

    Android开发中利用反射获取存储路径的研究.pdf

    结果显示,虽然反射操作可能比直接调用API稍慢,但在实际应用中,这种差异通常不会对用户体验造成显著影响。同时,作者在多个不同版本的Android设备上进行了测试,确保了利用反射获取扩展存储路径的兼容性。 总的来...

Global site tag (gtag.js) - Google Analytics