android反射
A. android怎样利用反射跳转某个fragment
package
com.zhy.zhy_fragments;
import
android.app.Fragment;
import
android.os.Bundle;
import
android.view.LayoutInflater;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.view.ViewGroup;
import
android.widget.Button;
public
class
FragmentOne extends
Fragment implements
OnClickListener
{
private
Button mBtn;
/**
*
设置按钮点击的回调
*
@author zhy
*
*/
public
interface
FOneBtnClickListener
{
void
onFOneBtnClick();
}
@Override
public
View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle
savedInstanceState)
{
View
view = inflater.inflate(R.layout.fragment_one, container, false);
mBtn
= (Button) view.findViewById(R.id.id_fragment_one_btn);
mBtn.setOnClickListener(this);
return
view;
}
/**
*
B. android.telephony.telephonymanager怎么反射调用
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
/**
* 返回电话状态
*
* CALL_STATE_IDLE 无任何状态时
* CALL_STATE_OFFHOOK 接起电话时
* CALL_STATE_RINGING 电话进来时
*/
tm.getCallState();
//返回当前移动终端的位置
CellLocation location=tm.getCellLocation();
//请求位置更新,如果更新将产生广播,接收对象为注册LISTEN_CELL_LOCATION的对象,需要的permission名称为ACCESS_COARSE_LOCATION。
location.requestLocationUpdate();
C. android 怎么用反射机制加载资源
一、反射的概念及在java中的类反射
反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。在计算机科学领域,反射是一类应用,它们能够自描述和自控制。这类应用通过某种机制来实现对自己行为的描述和检测,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。
在Java中的反射机制,被称为Reflection(大家看到这个单词,第一个想法应该就是去开发文档中搜一下了)。它允许运行中的Java程序对自身进行检查,并能直接操作程序的内部属性或方法。Reflection机制允许程序在正在执行的过程中,利用Reflection APIs取得任何已知名称的类的内部信息,包括:package、 type parameters、 superclass、 implemented interfaces、 inner classes、 outer classes、 fields、 constructors、 methods、 modifiers等,并可以在执行的过程中,动态生成Instances、变更fields内容或唤起methods。
好,了解这些,那我们就知道了,我们可以利用反射机制在Java程序中,动态的去调用一些protected甚至是private的方法或类,这样可以很大程度上满足我们的一些比较特殊需求。你当然会问,反射机制在Android平台下有何用处呢?
我们在进行Android程序的开发时,为了方便调试程序,并快速定位程序的错误点,会从网上下载到对应版本的Android SDK的源码(这里给大家提供一个2.3.3版本的下载链接)。你会发现很多类或方法中经常加上了“@hide”注释标记,它的作用是使这个方法或类在生成SDK时不可见,那么我们的程序可能无法编译通过,而且在最终发布的时候,就可能存在一些问题。
那么,对于这个问题,第一种方法就是自己去掉Android源码中的"@hide"标记,然后重新编译生成一个SDK。另一种方法就是使用Java反射机制了,可以利用这种反射机制访问存在访问权限的方法或修改其域。
废话半天,该入正题了,在进入正题之前,先给上一个反射测试类的代码,该代码中定义了我们需要进行反射的类,该类并没有实际的用途,仅供做为测试类。提示:本文提供的代码,并不是Android平台下的代码,而是一个普通的Java程序,仅仅是对Java反射机制的Demo程序,所以大家不要放在Android下编译啊,否则出现问题,别追究我的责任啦!
ReflectionTest.java
package crazypebble.reflectiontest;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.Serializable;
public class ReflectionTest extends Object implements ActionListener,Serializable{
// 成员变量
private int bInt;
public Integer bInteger = new Integer(4);
public String strB = "crazypebble";
private String strA;
// 构造函数
public ReflectionTest() {
}
protected ReflectionTest(int id, String name) {
}
// 成员方法
public int abc(int id, String name) {
System.out.println("crazypebble ---> " + id + "-" + name);
return 0;
}
protected static void edf() {
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
D. 您好!我想问下android中隐藏的接口 用反射怎么来实现谢谢啦 帮个忙
你这有问题啊,反射只能拿到方法,是需要你自己去实现onCapture
invoke(int[] byte)方法调用的,你都不知道哪里调了他这个方法,怎么可能拿到具体数据值
E. android 可以反射到另一个应用里面的类么
一个app不可以直接访问另一个app的类。如果非要实现进程间通信,可以通过aidl做。可以考虑采用jar包的方式,将app B 打成jar文件 导入到 app A 中 就可以实现了。在应用中可以反射到类似framework里面的 diaolog activity这些类,是因为import了这些类,所以在这些包以jar的形式编译到应用。相反,是因为以jar的形式编译到了应用,才有了import。如果没有jar,就import不了。
F. android 中是否合适使用反射机制,如果可以,应该用在哪些地方使用,要注意什么问题,如果不合适,为什么呢
当然适合。
父类中的私有变量和方法想在子类中访问用反射就能实现。
比如默认dialog的确定和取消按键都会让dialog消失,如果不想让dialog消失,那么用反射就能实现。
当然如果能通过重写父类方法的地方就不用反射。
G. android 什么是反射
-什么是反射机制?
反射机制是在运行状态中,对于任意一个类(Class),都能够知道这个类的所有属性和方法(Method);对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
-反射机制能做什么?
主要功能:调用隐藏API,即标注了 @hide 的方法。
其他:
在运行时判断任意一个对象所属的类;
在运行时构造任意一个类的对象;
在运行时判断任意一个类所具有的成员变量和方法;
在运行时调用任意一个对象的方法;
生成动态代理。
-注意事项?
Google之所以要将一些API隐藏(指加上@hide标记的public类、方法或常量)是有原因的。其中很大的原因就是Android系统本身还在不断的进化发展中。从1.0、1.1到现在即将问世的Android2.3.4。这些隐藏的API本身可能是不稳定的,所以,使用隐藏API,意味着程序更差的兼容性。
如果要我给出建议的话,最好还是不要使用隐藏的API。不过有时为了实现Android应用某些特殊的功能或者效果,隐藏的API往往能发挥意想不到的作用。这些API具体能做些什么事,我就不在这里举例了。正好,如果你不知道隐藏API能做什么的话,那么还是尽早放弃使用它们吧……
引用内容自:
ke.xsoftlab.net/view/209.html
blog.sina.com.cn/s/blog_5da93c8f0101e1yj.html
H. 在Android中使用反射到底有多慢
第一个案例是纽约时报安卓客户端。在NimbleDroid的帮助下,纽约时报的开发者发现Gson中的typeadapter使用了反射,增加了APP700毫秒的启动时间,他们通过自行实现自定义的typeadapter解决了这一问题。第二个案例是大型图片分享平台Photobucket
I. 身为android猿,反射何时用
蓝手指模拟器怎么用?可能大家对这个蓝手指模拟器比较陌生,其实就是BlueStacks模拟器,下面绿茶小编教大家使用蓝手指给力助手安装蓝手指模拟器方法,希望大家喜欢。 蓝手指模拟器下载安装使用图文教程: 第一步、下载给力助手 第二步、给力助手的安装: 1、下载完成,先进行解压缩(使用WinZip、WinRAR等工具,没有的话在360软件管家 里找个免费版的,一键下载安装即可)。解压完成后先阅读一下文件夹中的说明书,然后鼠标左键双击“给力助手安装程序.exe”如下图图标: 蓝手指模拟器怎么用 蓝手指安卓模拟器下载安装使用教程图1 2、这时候给力助手会对您的系统做一次简单检测,如果发现系统中缺少安装蓝手指模拟器必须的插件,如Windows Installer 4.5;. .NET Framework 2.0 SP2 等,就会提示您安装,按提示确认操作就行了,它会替您自动下载安装。如果系统环境都已经达到安装要求,我们可以在窗口点击下一步继续,如下图: 蓝手指模拟器怎么用 蓝手指安卓模拟器下载安装使用教程图2 3、确认安装路径,最好不要按照默认的去装,假如你的电脑还有D、E等其他分区的话,就把路径开头的C改成D或E等,而不要直接去选某个盘,因为那样很容易把软件直接装到某盘的根目录下,看起来很凌乱,以后不好维护。此外,C盘是系统盘,要预留足够多的运行空间,所以可以不装其中的软件尽量不往里装,除非那些必须在C盘下才能运行的软件,比如BlueStacks模拟器。继续看图: 蓝手指模拟器怎么用 蓝手指安卓模拟器下载安装使用教程图3 4、决定好路径后还是鼠标左键单击下一步,然后再单击安装按钮开始安装
J. android 怎么用反射获取对象
通过类名获取类。 Class serviceManager = Class.forName("Android.os.ServiceManager"); 获取方法 Method method = serviceManager.getMethod("getService