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