1. 程式人生 > >Android java方法實現呼叫系統屬性

Android java方法實現呼叫系統屬性

     最近在寫一個測試apk時需要呼叫Android的系統屬性來設定相關的標誌位,但在使用標準的java庫中的System.getProperty和System.setProperty方法並不能獲得Android中的系統屬性,而且會出現空指標崩潰。查閱相關資料發現,雖然Android在Java庫中提供System.getProperty和System.setProperty方法,我們Java程式可以通過他們來設定和獲得屬性,但是請注意!雖然從語法上面看Java的程式碼和Native程式碼非常相近,但是Java版本儲存把屬性存在其他地方,而不是我們上面提到的屬性系統中。在JVM中有一個hash表來維護Java的屬性。所以Java屬性和Android屬性是不同的,不能用Java API(System.getProperty和System.setProperty)來設定系統屬性。也不能通過Native的方法(property_get和property_set)設定Java的屬性。

      雖然不能通過上述的方法得到Android的系統屬性值,但Android提供了另一個api來獲取這些值,即呼叫android.os.SystemProperties中的SystemProperties.get()和SystemProperties.set()方法來實現Android系統屬性的設定和獲取。但需要注意的是在eclipse的工程中我們直接用import來匯入android.os.SystemProperties會報錯提示找不到這個包名。經過查詢android.os.SystemProperties在layoutlib.jar庫檔案中,此庫檔案在sdk\platforms\android-xxx\data\中,手動匯入到工程的庫檔案裡就OK了。