Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android安全機制--四大組件安全

Android安全機制--四大組件安全

編輯:關於Android編程

組件有Public和Private的概念,是否能被其他方調用。通過android:exported字段來確定,android:exported=true表示能,反之不行。

默認情況下,組件在AndroidMainfest聲明中沒有 interfliter 那麼exported為false,有了interfliter為true.當然我們可以直接輸入android:exported來自己控制。以下就設置為false

[html]  
  1. android:name=.LoginActivity
  2. android:label=@string/app_name
  3. android:screenOrientation=portrait
  4. android:exported=false>

    我們可以通過自定義permission來限制四大組件的安全

    Activity中

    \

    在service

    \

    在contentprovider中分為寫與讀的兩個權限

    \

    在broastreceiver中發送時

    \

    接收時

    \

    怎麼自定義?在androidmainfest中

     

    [html] 
    1. android:label=test
    2. android:name=com.test.custempermission
    3. android:protectionLevel=normal>

    4.  

      下面通過指定一個BroadcastReceiver的權限來實驗
      首先創建了兩個app,app A ,app B ;
      app A中注冊了一個BroadcastReceiver ,app B 發送消息
      app A的menifest文件:

      Xml代碼 收藏代碼
      1. package=com.example.testbutton
      2. android:versionCode=1
      3. android:versionName=1.0 >
      4.  
      5. android:minSdkVersion=7
      6. android:targetSdkVersion=15 />
      7.  
      8. android:icon=@drawable/ic_launcher
      9. android:label=@string/app_name
      10. android:theme=@style/AppTheme >
      11. android:name=.MainActivity
      12. launcheMode=singleTask
      13. android:configChanges=locale|orientation|keyboardHidden
      14. android:screenOrientation=portrait
      15. android:theme=@style/android:style/Theme.NoTitleBar.Fullscreen >
      16.  
      17.  
      18.  
      19. android:name=com.example.testbutton.TestButtonReceiver
      20. android:permission=com.example.testbutton.RECEIVE >
      21.  
      22.  
      23.  
      24.  
      25. app B 的menifest 文件內容
        Xml代碼 收藏代碼
        1. package=com.example.testsender
        2. android:versionCode=1
        3. android:versionName=1.0 >
        4.  
        5. android:minSdkVersion=7
        6. android:targetSdkVersion=15 />
        7.  
        8. android:icon=@drawable/ic_launcher
        9. android:label=@string/app_name
        10. android:theme=@style/AppTheme >
        11. android:name=.MainActivity
        12. android:label=@string/title_activity_main >
        13.  
        14.  
        15.  
        16.  
        17.  
        18. 這樣app B 給app A 發送消息,A就可以收到了,若未在app B的menifest文件中聲明使用相應的權限,app B發送的消息,A是收不到的。


           

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved