Android學習系列之二

  Developing Applications

  Screen的層次

  Screen elementsviewsviewgroup組成。View包括Text, EditText, Button, ScrollView, checkbox, RadioButton,還有兩個InputMethodMomentMethod不知道為何用。ViewGroup是一群ViewViewGroup的組合,把他們當作一個整體來對待。每個ViewGroup都使用一個繼承ViewGroup.LayoutParams的類來定義子 View的大小和位置。需要注意的是子孩子的LayoutParams設置必須于父節點的設置相兼容。

  通用Layout對象—

  FrameLayout:單幀存放,新的內容將完全或局部覆蓋舊的,除非新的為透明。

  LinearLayout:直線式排列,可以通過android:orientation=verticalor horizontal”來設置。通過padding來設置間隔。也支持weight,設置大小比例。默認為0。

TableLayout:不用多解釋了。

AbsoluteLayout:通過(x,y)坐標絕對布局。

  RelativeLayout:相對布局。相對某一個目標定位,指明那個目標的ID。例如toLeft:okbutton, below:text.

  還有gallery, gridview, scrollview spinner, tabHost,ViewFlipper等等。

  下面要談到的是AdapterViews,用于對數據的綁定。通常的做法是通過id找到這個object,調用 object.setAdapter()??梢隕柚夢址?/span>ArrayAdapter(),也可以查詢數據庫返回一個cursor,設置 CursorAdapter()。處理用戶響應事件和以前學的一樣,設置一個OnItemClickListener,覆蓋里面的OnItemClick ()方法。

  Android 使用在xml中配置界面的設計還是很強大的?;辜塹靡鄖靶炊礪匏狗嬌?,一個小小的界面就得寫一大堆代碼。亂七八糟的。不堪入目。現在好了,xml起碼在格式上就顯得很整齊,很有層次。

  手機界面都有個主題。Android activity也提供了這個設置。類似于網頁設計里的css。在manifest.xml中的application android:theme=@android:style/theme.dark”。注意這里是style,而文件結構中的卻是styles.xml 不知道為什么這樣設計。也可以在Oncreate()方法里面通過setTheme()來設置。關于畫圖,2D的提供了Surface, SurfaceView,Canvas很好用,但是不支持硬件加速。3D的提供了OpenGL ES,支持硬件加速。

數據的存?。?/span>

1、 preferences 使用key/value對來存取基本數據類型。類似于hashmap.是一種輕量級的方法。

2、 Files 存在設備上或者移動媒體上。

3、 數據庫 最重要的一個。Android提供的sqlite數據庫。每一個數據庫對創建它的包都是私有的。

4、 ContentProviders 提供給外部應用程序讀寫訪問的接口,暴露內部私有數據。但是要遵守制定的規則。

5、 NetWork 網絡的力量是強大的。

  下面談到了權限的問題。對于一個application,在安裝的時候,分配一個獨立的Linux ID,以區別在同一個進程中不能有兩個application運行,因為他們是不同的Linux Users??梢栽?/span>manifest.xml中的manifest tag中指定sharedUserId屬性來作為同一個application對待,這樣一來,他們對文件又相同的訪問權限了。但是為了保證安全性,只有具備了相同的簽名,才能設定相同的userid??梢醞ü?/span>設定權限。在安裝application的時候會將這些權限加載,如果成功加載了,會按照預期的限制執行訪問,如果沒有加載,那么訪問將會失敗,而且沒有任何提示,只有后臺會拋出 SecurityException。在這些情況下,permission會被強行檢測。

1、 在調用一個系統的時候,防止系統內的一些方法執行。

2、 當啟動一個activity時,防止一個application去啟用其他applicationactivity。

3、 Intent Broadcasting.控制誰能接受你的broadcast和誰能向你發送broadcast。

4、 當訪問和操作一個ContentProvider的時候

5、 綁定或開啟一個服務

  可以在自己的項目中創建permission,必須包括id, android:lable android:description三個屬性。

  Activity, service, IntentReceiver, ContentProvider都可以設置android:permission。你也可以在廣播一個Intent的時候給它制定一個 permission,通過Context.BoardcastIntent(String Intent,String Receiverpermission)帶一個Stringpermission參數。


來源:Android實驗室

上一篇: Android學習系列之一

下一篇: Android學習系列之三

分享到: 更多
红包大小单双玩法 安徽快三计划软件免费 重庆全天时时人工计划 福彩投注app 老时时杀号网站 明牌牛牛抢庄高手 抢庄牌九官方网站欢迎您 大享pk10计划最新版 0369万能买法稳赚7绝招 双色球走势图带坐标 pk10财神计划软件 北京pk10大小技巧 pk10人工计划网站 中网内蒙古时时开奖结果 双色球重复中奖号码 北京pk拾开奖直播