java中的反射機制在Android開發中的用處

來源:互聯網
上載者:User

標籤:

   JAVA反射機制是在運行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個對象,都能夠調用它的任意一個方法和屬性;這種動態擷取的資訊以及動態調用對象的方法的功能稱為java語言的反射機制。 
     然而在android中Google很多的類的某些方法不讓第三方應用去調用,通過java反射機制能把這些隱藏方法擷取出來並調用,三方應用上我們就很方便的去用這些方法。 
     例如我們需要安全的殺死某個應用的服務和進程調用ActivityManager.forceStopPackage()方法很方便 


123456789101112131415161718192021 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肯定也是有系統許可權的,這些許可權也是被隱藏的,那麼我們怎麼在自己的應用裡去調用這些許可權呢? 
1234567 <?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開發中的用處

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.