• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            life02

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              197 隨筆 :: 3 文章 :: 37 評論 :: 0 Trackbacks
            http://www.linuxidc.com/Linux/2011-03/33356.htm
            有時候我們想在標準的Framework中添加自己的新的資源怎么辦呢?

            辦法就是我們來嘗試下。

            通過Eclipse的聯系,我們可以聯想到是否就是簡單的把字符串放在res的各個文件夾里面。先來試試看,編譯,系統立即報錯。為什么呢?

            它提示你利用make update-api這個命令來更新public.xml文件或者把這個聲明稱hide類型。這個肯定不是我們想要的。
            所以方法有二:

            方法1:正常添加完資源后,執行make update-api函數。系統更新res/values/public.xml文件。

            方法2:正常添加完資源后,手動更改/res/values/public.xml文件。打開public.xml文件。

            轉自:http://hi.baidu.com/76591203/blog/item/1744fdce01210a1093457ecd.html
            FRAMEWORK層開發(轉)
            2011-02-17 12:46
             framework的開發比應用層就要煩的多啦。做應用在eclipse中就足夠了,用android系統中的控件等工具,或者是自己寫個類來 實現特定的功能。而framework層的開發,需要往源碼中添加代碼、xml、圖片、id等等數據,這個id可是費了我好大的勁才搞定的。在項目開始的 一個半月里,我探索、嘗試了很多,現在把我的經驗分享出來。網上關于framework層的開發信息很少,多是靠自己。

              最有效的方式就是分析android的源碼,看google是怎樣實現一個類的,以及類的層次。我現在看的主要是widget和app中的代 碼,其他的還沒涉及。像View,ViewGroup,Activity,ActivityThread都是非常重要的類,也是代碼量很大的類,我只是大 概地過了下,還沒有仔細分析過。

              我花大力氣的地方是資源文件夾下values中幾個文件的作用。

              attrs.xml中定義的是類的屬性,屬性是為了能在xml文件中被引用到,換句話說就是指定類中變量(也就是屬性的實際作用者)的值。這 些屬性會在類的構造函數中用到。看過一兩個源碼就會明白,構造函數中的TypedArray其實就是屬性的數組,數組的成員會被賦給類里的成員,完成從 xml的初始化。類的構造函數一般有三個,一個是Class(context),這個用于在代碼中創建一個類,所以只包含一個上下 文;Class(context, attrs)和Class(context, attrs, defStyle)用于從xml創建類的情況。

              styles.xml中是各個控件的“樣式”,樣式由一個個屬性所組成。我們在編輯xml文件的時候,不同的類所能設置的屬性有共同的,也有不同的,都是由樣式來控制的。具體可以去看styles.xml這個文件的內容。

              themes.xml其實也是樣式,只是適用的范圍大一點,這個我是參考網上別人的看法,自己還沒研究過。

              ids.xml是公共的id,也就是對應用層可見的id,id是為了獲得xml中的對象而需要的參數,也就是Object = findViewById(R.id.id_name)中的id_name。這些值可以在代碼中用android.R.id引用到

              public.xml描述的是為attr、id、drawable所指定的一個32的id值,這個值在current.xml文件中會被用到。

              當我們對public.xml做了改動后,執行make update-api命令,相應的current.xml就會添加這些改動。因為這些值按類型被放在不同的段上,類型相同的必須連續存放,不指定id值的話系統會自動計算出下一個值。

              添加id的方法:1)在ids.xml中添加公共id項,在public.xml中也添加相應的id項。這種辦法沒有兼容性,會與后面的版本產生沖突。

                     2)在ids.xml中添加公共id項,每一項前面加一行<!-- @hide -->的注釋,這樣就不用在public.xml中添加相應的項了。源碼中是/** @hide  */的形式,這樣current中就不會有相應的段了。

                     3)在自己寫的xml中,使用android:id = "@+id/id_name"的形式,就和在eclipse中一樣,搜一下會發現android源碼中也有這么用的,這樣ids.xml和public.xml都不用改,兼容性我還不確定。
            posted on 2012-03-19 16:10 life02 閱讀(1281) 評論(0)  編輯 收藏 引用 所屬分類: Android開發
            国产亚洲综合久久系列| 亚洲国产综合久久天堂 | 亚洲va久久久噜噜噜久久狠狠| 久久笫一福利免费导航| 久久ZYZ资源站无码中文动漫 | 国产精品久久久久9999| 亚洲国产成人久久一区久久| 久久丫精品国产亚洲av不卡 | 久久久久综合网久久| 亚洲国产日韩欧美综合久久| 九九久久99综合一区二区| 久久久噜噜噜久久中文字幕色伊伊 | 精品久久一区二区三区| 久久精品国产AV一区二区三区| 久久免费线看线看| 色诱久久久久综合网ywww| 一级做a爰片久久毛片看看 | 无码任你躁久久久久久久| 日韩亚洲欧美久久久www综合网| 波多野结衣久久一区二区| 久久久亚洲精品蜜桃臀| 大美女久久久久久j久久| 久久国产精品无码HDAV| 亚洲国产精品无码久久久蜜芽| 久久青青草原精品国产软件| 91精品国产91久久久久久| 日韩精品久久久久久久电影蜜臀| 热久久国产欧美一区二区精品| 999久久久免费国产精品播放| 国产成人精品白浆久久69| 久久亚洲精品成人AV| 色欲久久久天天天综合网 | 中文精品久久久久人妻不卡| 亚洲欧美国产精品专区久久| 日本亚洲色大成网站WWW久久| 精品乱码久久久久久夜夜嗨| 日本久久久久久中文字幕| 99久久亚洲综合精品成人| 国产无套内射久久久国产| 久久无码国产| 囯产精品久久久久久久久蜜桃|