第二章
2. android的許可權
android的每個許可權label保護相關的資源,在應用的manifest檔案裡宣告的users-permission節點會在使用者安裝應用的時候提示給使用者,使用者確定之後表示這些相關的許可權就授權給應用了。因此,應用程式在runtime是不做相關的檢查的。在應用程式中執行乙個沒有授權的動作時,會丟擲securityexception的異常。
android的許可權定義在常量manifest.permission類裡。
你也可以自定義自己的許可權,然後給intent,activity,service和broadcase使用。
3. resources
resource包括,國際化文字或者其他任意靜態值。
resource定義在/res目錄下。
resource可以在code裡或者xml裡訪問。
4. resource的特點
每個resource都有id
每個resource都有乙個固定的型別
resource有特殊的存放位置和檔案
5. 在/res目錄下宣告的resource不僅作為你的應用程式的一部分被打包,而且也在程式裡被訪問。
一旦你定義乙個resource在/res(除了/res/raw目錄下,該目錄下存放audio或者video檔案等)目錄下,android平台會自動解析它,然後使用aapt工具去關聯乙個id到r上。
6. 為什麼會有resources
第一,隔離了**和外部資源,這樣就能保證**關注於應用以及整潔
第二,resources高效並且快速的被訪問到,因為xml被編譯成為二進位制格式
第三,resources支援在執行時根據環境(比如語言,螢幕配置以及硬體能力等)來動態載入
7. plurals資源(複數)
plural是用來讓系統自動處理復數字串的一型別特殊資源,這個主要用於處理英語裡名詞的單數和複數用的。
1 new deal!
%dnew deals!
注意:1) xmlns:xliff是指定oasis xliff xml format
2) 需要定義兩個item,乙個one,另乙個other。就是區分單數和複數的不同顯示
3) 在item節點裡可以使用string.format
4) 使用resources.getquantitystring(r.plurals.deal_service_ new_deal, 1)來訪問plurals資源。(這裡傳入的是1,也可以傳入其他數字)
8. 字串資源放在/res/values目錄下
9. assets
如果你需要普通訪問而不是被aapt處理過的檔案,你就可以把檔案放到/assets目錄下。任何放在/assets資料夾下的檔案都可以被應用訪問。
10. views and widgets
android.view.view是所有檢視的基類。分為三大類主要的views:
1) su***ceview:可以在其上通過drawing和graphics畫出介面
2) viewgroup:對應於各種layout以及group容器
3) widget:android.widget包下的各種android提供的控制項
11. intents和intentfilters
intent描述你想做什麼操作,他不做任何實際的操作,僅僅描述什麼事情需要去做。
intentfilter用於宣告component處理哪些指定的intent。
12. 發起分享intent
intent i = new intent(intent.action_send);
i.settype(type);
i.putextra(intent.extra_subject, "subject:");
i.putextra(intent.extra_text,」abc」);
startactivity(intent.createchooser(i, "share deal ..."));
最後這一行**裡,通過intent.createchooser(i,"share deal …"))去建立了乙個chooser,"share deal …"會作為共享介面的title,並且會通過chooser挑出符合該intent的選項,並且不會出現選擇預設選項。如圖所示:
將上面的**改為下面的之後:
startactivity(i);
13. intent分類
1) 顯式的intent(explicit),這個一般用在應用的內部,需要知道component的具體名字以及類名。
2) 隱式的intent(implicit),跟外部的應用聯絡時,使用隱式的。
隱式intent通過action,data,type等屬性被平台解析找到相應的能處理的元件。
14. intent解析
這裡main和launcher用於宣告component能夠響應home按鈕。
這個intentfilter解析過程:
i. action(send)
ii. category(default),使用startactivity方法啟動乙個隱式的intent的時候,都會自動為其加乙個default的category
iii. data
android通過packagemanager去追蹤有哪些註冊的intentfilter。當乙個新應用安裝的時候,應用裡的intentfilter就被加到packagemanager,被解除安裝的時候就刪除。
16. connectivitymanager
this.cmgr = (connectivitymanager)this.getsystemservice(context.connectivity_service);
connectivitymanager是系統服務,可以通過它去檢查網路狀態
17.
第二學習筆記
我是在大話資料結構學的,所以可能會和培訓的不太一樣 用例子解釋資料的基本概念 資料物件就像是人類這個群體 資料元素就是全部人類中的乙個人 資料項就是乙個人的姓名,生日,身高等等特點。所以,資料項就像是集合裡的元素一樣,是資料不可分割的最小單位 所以,其實這些概念就是包含與被包含的關係,也就是集合 資...
第二週學習筆記
從課堂上的內容大體可以歸為如上,概念模型因為在具體使用當中較少接觸故簡單介紹其優點。下面將用較大篇幅詳細討論e r模型的實際使用和visio表示的意義。首先,要明白圖表中不同方框代表什麼,方框代表實體,而橢圓框代表屬性,那麼什麼是實體什麼又是屬性呢,那讓我們用乙個簡單的關係圖表來了解一下。這是乙個典...
第二章筆記
1.遞迴查詢和迭代查詢 遞迴查詢是一條環路,直接想成遞迴的定義就行,你想查乙個 的ip,首先將這個 傳給它的本地dns,然後認為本地dns可以直接將ip給你,然後本地dns為了知道這個ip又詢問下個dns伺服器。從此可以看出,增加了被涉及的伺服器的資料,所以一般用迭代查詢,迭代查詢是你詢問完後給你下...