利用java反射机制,使用android系统的内部类成员函数

简介:
//访问某个属性
Context mmsCtx = createPackageContext( "com.android.lockscreen"
         Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY); 
Class<?> maClass = Class.forName( "com.android.lockscreen.LockScreenActivity" , true , mmsCtx.getClassLoader()); 
 
Object maObject = maClass.newInstance();
Field f_mPm = maClass.getDeclaredField( "TAG" ); 
f_mPm.setAccessible( true );             
     Log.i(LOG_TAG, "___________________________________________obj:" +f_mPm.get(maObject));

  

//访问方法

         
//访问
try  {
             Context mmsCtx = createPackageContext( "com.android.lockscreen"
                     Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY); 
             Class<?> maClass = Class.forName( "com.android.lockscreen.LockScreenActivity" , true , mmsCtx.getClassLoader()); 
             
             Object maObject = maClass.newInstance();
             Field f_mPm = maClass.getDeclaredField( "TAG" ); 
             
             //maClass.getDeclaredMethod("", parameterTypes);
             f_mPm.setAccessible( true );             
             Log.i(LOG_TAG, "___________________________________________obj:" +f_mPm.get(maObject));
                 
             
                 Class[] resource = new  Class[]{Context. class };
                 Object[] resourceObj = new  Object[]{mmsCtx};
                 
                 Method addsMethod = maClass.getDeclaredMethod( "getLockScreenView" , resource);
                 addsMethod.setAccessible( true );
                 
                 View addsResult = (View)addsMethod.invoke(maObject, resourceObj);
                 Log.i(LOG_TAG, "___________________________________________addsResult:" +addsResult);
                 
         } catch  (Exception e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
 
//定义被访问
 
public  class  LockScreenActivity extends  Activity {
         
     private  String TAG = "LockScreenActivity" ;
     //private LockScreen mScreen = new LockScreen(LockScreenActivity.this);
     
     private  LockScreen getLockScreenView(Context context){
         
         Log.i(TAG, "_________________________________________context:" +context);
         return  new  LockScreen(context);
     }
     
}

  

//获取setting包的的Context 
             Context mmsCtx = createPackageContext( "com.android.settings"
                     Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY); 
             //使用setting的classloader加载com.android.settings.ManageApplications类 
             Class<?> maClass = Class.forName( "com.android.settings.ManageApplications" , true , mmsCtx.getClassLoader()); 
             //创建它的一个对象 
             Object maObject = maClass.newInstance(); 
               
             /*
              * 将私有域mPm赋值。因为mPm在SizeObserver的invokeGetSize中用到了,
              * 却因为没有执行onCreate而没有初始化,所以要在此处初始化。
              */ 
             Field f_mPm = maClass.getDeclaredField( "mPm" ); 
             f_mPm.setAccessible( true );             
             f_mPm.set(maObject, mmsCtx.getPackageManager()); 
              

  

分类:  android solve

本文转自wanqi博客园博客,原文链接http://www.cnblogs.com/wanqieddy/archive/2011/10/25/2224200.html :如需转载请自行联系原作者

相关文章
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
532 7
|
11月前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
|
存储 Java 数据库连接
java 初学者必看的系统知识结构图详解
本文详解Java知识结构图,涵盖Java语言基础、JVM原理、集合框架、并发编程、网络通信及主流框架(如Spring Boot、MyBatis),并结合学生信息管理系统实例,帮助初学者构建完整知识体系,提升实战开发能力。
375 0
|
10月前
|
移动开发 监控 小程序
java家政平台源码,家政上门清洁系统源码,数据多端互通,可直接搭建使用
一款基于Java+SpringBoot+Vue+UniApp开发的家政上门系统,支持小程序、APP、H5、公众号多端互通。涵盖用户端、技工端与管理后台,支持多城市、服务分类、在线预约、微信支付、抢单派单、技能认证、钱包提现等功能,源码开源,可直接部署使用。
737 24
|
10月前
|
设计模式 消息中间件 传感器
Java 设计模式之观察者模式:构建松耦合的事件响应系统
观察者模式是Java中常用的行为型设计模式,用于构建松耦合的事件响应系统。当一个对象状态改变时,所有依赖它的观察者将自动收到通知并更新。该模式通过抽象耦合实现发布-订阅机制,广泛应用于GUI事件处理、消息通知、数据监控等场景,具有良好的可扩展性和维护性。
677 8
|
10月前
|
安全 前端开发 Java
使用Java编写UDP协议的简易群聊系统
通过这个基础框架,你可以进一步增加更多的功能,例如用户认证、消息格式化、更复杂的客户端界面等,来丰富你的群聊系统。
342 11
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
Java与生成式AI:构建内容生成与创意辅助系统
生成式AI正在重塑内容创作、软件开发和创意设计的方式。本文深入探讨如何在Java生态中构建支持文本、图像、代码等多种生成任务的创意辅助系统。我们将完整展示集成大型生成模型(如GPT、Stable Diffusion)、处理生成任务队列、优化生成结果以及构建企业级生成式AI应用的全流程,为Java开发者提供构建下一代创意辅助系统的完整技术方案。
458 10
|
10月前
|
人工智能 监控 Java
Java与AI智能体:构建自主决策与工具调用的智能系统
随着AI智能体技术的快速发展,构建能够自主理解任务、制定计划并执行复杂操作的智能系统已成为新的技术前沿。本文深入探讨如何在Java生态中构建具备工具调用、记忆管理和自主决策能力的AI智能体系统。我们将完整展示从智能体架构设计、工具生态系统、记忆机制到多智能体协作的全流程,为Java开发者提供构建下一代自主智能系统的完整技术方案。
1147 4
|
11月前
|
Linux 测试技术 语音技术
【车载Android】模拟Android系统的高负载环境
本文介绍如何将Linux压力测试工具Stress移植到Android系统,用于模拟高负载环境下的CPU、内存、IO和磁盘压力,帮助开发者优化车载Android应用在多任务并发时的性能问题,提升系统稳定性与用户体验。
903 6
|
11月前
|
Java 数据库 Android开发
基于Android的电子记账本系统
本项目研究开发一款基于Java与Android平台的开源电子记账系统,采用SQLite数据库和Gradle工具,实现高效、安全、便捷的个人财务管理,顺应数字化转型趋势。

热门文章

最新文章