android系統70
1. android系統中的資源類型有哪幾種
Android 資源類型
1.字元串資源
>>1.普通字元串
>>2.字元串數組
復制代碼
<resources>
<string-array name="planets_array">
<item>aaa</item>
<item>bbb</item>
</string-array>
</resources>
復制代碼
獲取方式:getResources().getStringArray(R.array.planets_array)
>>3.復數字元串資源
某些自然語言中,不同的數字在使用方法上會有所不同,比如one book,two books。當數量大於1時,會使用不同的名詞或其它復數形式;
復制代碼
<resources>
<plurals name="numberOfp">
<item quantity="one">one person</item>
<item quantity="other">more persons</item>
</plurals>
</resources>
復制代碼
quantity屬性的值除了one和other外,還可以是zero,two,few,many;
引用復數字元串:
// 引用數字為1的復數字元串
getResources().getQuantityString(R.pluarlas.numberOfp,1);
// 引用數字為其它值的復數字元串
getResources().getQuantityString(R.pluarlas.numberOfp,10,10);
>>4.佔位符格式化字元串
常用的格式化字元串三種方法:
>>1.在字元串中使用引號
字元串中的值雖然可以隨意指定,但是當遇到特殊符號時(雙引號,單引號)就需要採取特殊的方法來處理這些符號。
如果是單引號(')可以使用轉義符(\)或用雙引號(")將整個字元串括起來,如果是雙引號,可以在雙引號前使用轉義符(\)。
<resources>
<string name="str1">"This'll work"</string> This'll work
<string name="str2">This\'ll work</string> This'll work
<string name="str3">\"apple\"</string> "apple"
</resources>
>>2.用佔位符格式化字元串
使用String.format(String,Object...)方法可以格式化帶佔位符的字元串,只需要在字元串中插入佔位符,就可以使用String.format方法格式化字元串資源,format方法要求的佔位符用%1,%,...,%n,其實第n個佔位符與format方法的n+1個參數值對應;
<resources>
<!-- $s表示該佔位符被字元串替換,$d表示該佔位符被整數替換 -->
<string name="str1">hello,%1$s!You have %2$d new message</string>
</resources>
String str1 =String.format(getResources().getString(R.string.str1), "ly", 17);
>>3.使用HTML標簽格式化字元串資源
字元串資源支持一些HTML標簽,因此可以直接在字元串資源中使用這些HTML標簽格式化字元串
字元串資源支持如下的HTML標簽
<b>粗體字
<i>斜體定
<u>帶下劃線的字
有時需要同時使用HTML標簽和佔位符格式化字元串,如果使用String.format方法格式化字元串,會忽略字元串中的所有HTML標簽。為了使format方法可以格式化帶
HTML標簽的確字元,需要使用Html.formHTML方法處理字元串;
<resources>
<string name="hello_world">Welcome to <b>android</b></string>
<string name="str2">Hello,%1$s! You have <b> %2d new messages </b></string> <!--同時包含佔位符和html標簽的字元串-->
</resources>
由於需要使用Html.formHTML方法處理字元串,因此HTML標簽中的 "<" 需要使用 "<" 表示 ">" 並不需要處理
獲取字元串:
String text = String.format(getResources().getString(R.string.str2), "ly", 10);
CharSequence styledText = Html.fromHtml(text);
// 如果format的某個參數包含HTML的特殊字元,如"<","&",可以使用如下方式讀取字元串的值;
String escapedUsername = TextUtils.htmlEncode("");
String text1 = String.format(getResources().getString(R.string.str2), "ly", 20);
2.Layout資源
1、如果根節點是View,除了<requestFocus>標簽外,不能添加任何子標簽,<requestFocus>可能被添加到布局文件的任何View中,表示該標簽對應的控制項在顯示時處於焦點狀態,整個布局文件只能有一個<requestFocus>標簽
2、根節點是ViewGroup,常用的布局都是ViewGroup的子類
3、重用布局文件
如果想重用某個布局文件,可以使用<include>標簽
<include layout="@layout/xx_layout" />
如果想讓一個布局文件被另一個布局文件引用(使用<include>標簽),可以使用<merge>作為被引用布局文件的根節點,由於<merge>並不會生成任何標簽(在大量引用布局文件時不至於生成大量無用的標簽),但是xml文件必須要有一個根節點,因此<merge>所起的作用就是作為xml文件的根節點,以使xml文件在編譯時不至於出錯,可以把<merge>當成<FrameLayout>使用;
3.圖像資源
在圖像資源中可以存儲圖像文件,還可以使用xml格式的圖像資源來控制項圖像的狀態和行為;
>>1.普通圖像資源
Drawable da = getResources().getDrawable(R.drawable.xxx);
>>2.xml圖像資源
xml圖像資源其實就是在drawable目錄中指定的xml文件,此種方式可以額外指定圖像的某些屬性,如圖像拉動、排列方式;
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/ic_launcher"
android:tileMode="repeat" >
</bitmap>
>>3.Nine-Patch圖像資源
Nine-Patch圖像資源文件必須以9.png作為文件擴展名,如abc.9.png
該圖像資源的主要作用是:防止圖像的某一部分被拉伸;確定將圖像作為背景圖的控制項中內容顯示的位置;
Android SDK本身提供了一個Draw 9-patch的工具,啟動<sdk目錄>\tools\draw9patch.bat命令啟動該工具;
可以通過此工具在png圖的四周繪制1個像素粗的直線,上邊緣和左邊緣的直線分別表示圖像在水平和垂直方向可位值的范圍。如果水平或垂直方向的某個區域不需要拉伸,則可不繪制相應的直線;右邊緣和下邊緣的直線分別表示圖像所在控制項中內容的顯示範圍,內容只在右邊緣和下邊緣繪制直線的區域顯示,表示內容顯示範圍和拉伸范圍的兩給直線有一個重要區別就是表示內容顯示範圍的直線中間不能斷開,而表示拉伸范圍的直線中間可以斷開;
Nine-Patch圖像資源與普通圖像資源引用方法相同,在引用時只寫文件名,活力.9.png;
>>4.XML Nine-Patch圖像資源
Nine-Patch圖像資源也有與其對應的xml圖像資源,使用<nine-patch>標簽來引用Nine-Patch格式的圖像,有一個設置抖動的android:dither屬性;
>>5.圖層資源
圖層資源類似於<FrameLayout>不同的是<FrameLayout>標簽中可以包含任意的控制項,而圖層資源每一層都只有是圖像,定義圖層資源必須使用<layer-list>作為資源文件的根節點,<layer-list>標簽中包含多個<item>標簽,每一個標簽表示一個圖像,最後一個<item>標簽顯示在最頂層;
默認情況下,圖像會盡量充滿顯示圖像的范圍,圖像可能會有拉伸,為了避免圖像拉伸,可以在<item>標簽中使用<bitmap>標簽引用圖像;
復制代碼
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="10dip" 底端偏移的像素
android:left="10dip" 左側偏移的像素
android:right="10dip" ...
android:top="10dip"> ...
<bitmap
android:gravity="center"
android:src="@drawable/hell" />
</item>
</layer-list>
復制代碼
某些情況下,可以使用圖層來代替<FrameLayout>
>>6.圖像狀態資源,處理控制項不同狀態下的顯示狀態
復制代碼
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bm" android:state_focused="true"></item>
<item android:drawable="@drawable/bm" android:state_pressed="true"></item>
<item android:drawable="@drawable/bm"></item>
</selector>
// android:state_focused/pressed設置為true表示當前item的drawable屬性為獲取焦點和按下時的drawable樣式
復制代碼
>>7.圖像級別(Level)資源
圖像資源狀態只能指定幾種有限的狀態,可以通過圖像級別指定更多的狀態;圖像級別是一個整數的區間,可以通過ImageView.setImageLevel或Drawable.setLevel方法切換不同狀態的圖像;圖像級別資源是xml文件,必須以<level-list>為根節點,每一個item表示一個級別區間,下面是一個xml文件;通過ImageView.setImageLevel(level),根據level所在的區間設定顯示的圖像資源,如果level不在任一區間內則清空ImageView當前圖像;
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="2" android:minLevel="0" android:drawable="@drawable/hell" />
<item android:maxLevel="4" android:minLevel="3" android:drawable="@drawable/hell" />
</level-list>
>>8.淡入淡出(Cross-fade)資源
也是切換兩個圖像(不支持多於兩個圖像的切換),並且使這兩個圖像以淡入淡出效果進行切換,如電燈在開關時逐漸變亮或逐漸變暗;
<transition xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/hell"/>
<item android:drawable="@drawable/hell"/>
</transition>
TransitionDrawable da = ...;
// 從第一張圖片切換到第二張圖片,時間效果為1秒
da.startTransition(1000);
// 從第二張圖片切換到第一張圖片,時間效果為1秒
da.reverseTransition(1000);
>>9.嵌入(insert)圖像資源
使用場景:要顯示的圖像要求要小於裝載圖像的View(圖小於View區域),也是通過xml資源定義,只有一個節點inset。
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/hell"
android:insetLeft="10dip" > <!--圖像距離左邊的距離,延伸-->上/下/右的距離-->
</inset>
>>10.剪切(Clip)圖像資源,使用剪切圖像資源可以只顯示圖像的一部分,如可以通過此來製作進度條;
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:clipOrientation="horizontal" // 指定截取的方向
android:drawable="@drawable/hell" // 指定要截取的圖像
android:gravity="left" > // 指定截取的方式,在此為從左側開始截取
</clip>
ClipDrawable cd = ...;
cd.setLevel(1000);
上面ClipDrawable.setLevel(level)設置截取的圖像寬度,ClipDrawable預設了最大值10000(表示不進行截取),最小值為0(表示不顯示);
>>11. 比例(Scale)圖像資源
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/hell"
android:scaleGravity="center" // 設置圖像顯示的位置
android:scaleHeight="70%" // 設置圖像顯示的高度
android:scaleWidth="80%" > // 設置圖像顯示的寬度
</scale>
>>12.形狀資源
復制代碼
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" > shape可以指定就矩形,oval(橢圓),line(直線),ring(圓)
<corners> 定義圓角
</corners>
<gradient
android:angle="45"
android:startColor="#000000"
android:endColor="#FFFFFF" > 定義顏色漸變,從左下角到或上角
</gradient>
<padding> 定義控制項內容到邊框的距離
</padding>
<stroke> 定義邊線
</stroke>
<solid> 定義填充
</solid>
<size> 定義大小
</size>
</shape>
復制代碼
13.菜單資源
菜單不僅可以在onCreateContextMenu或onCreateOptionsMenu方法中通過代碼創建,還可以在res/menu目錄中建立相應的菜單資源文件,並在上面兩個方法中載入菜單資源;
菜單資源文件必須以<menu>標簽作為根節點,每一個菜單項用一個<item>表示,如果要定義子菜單,可以在<item>標簽中包含<menu>標簽;如果想將多個菜單項劃為一組,可以使用<group>包含多個<item>標簽;
復制代碼
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
復制代碼
查看MenuInflater.inflate(int,Menu)
復制代碼
/**
* Inflate a menu hierarchy from the specified XML resource.
*
* @param menuRes Resource ID for an XML layout resource to load (e.g., <code>R.menu.main_activity</code>)
* @param menu The Menu to inflate into. The items and submenus will be added to this Menu.
*/
public void inflate(int menuRes, Menu menu) {
XmlResourceParser parser = null;
try {
parser = mContext.getResources().getLayout(menuRes);
AttributeSet attrs = Xml.asAttributeSet(parser);
parseMenu(parser, attrs, menu);
} catch ...finally {
if (parser != null) parser.close();
}
}
復制代碼
14.樣式與主題(style/theme)
>>1.樣式style
android中樣式和css中樣式作用是一樣的,都是用於為界面元素定義顯示風格,它是一個包含一個或者多個控制項屬性的集合。
定義樣式需要在res/values/styles.xml中進行定義,如下是一個樣式的定義:
<style name="textViewStyle">
<item name="android:textSize">22sp</item>
<item name="android:textColor">#FF0000</item>
</style>
<style name="textViewStyle1" parent="textViewStyle"></style><!-- 此樣式繼承自textViewStyle -->
<style name="textViewStyle.Livingstone"><!-- 樣式繼承的另一種寫法,但不可用此寫法繼承Android自帶的定義樣式? -->
<item name="android:textColor">#00FF00</item>
</style>
所有定義的樣式都會在R文件中自動生成一個資源ID,加一個點表示樣式繼承會生成上圖所示的資源id;
樣式的引用:
<TextView
style="@style/textViewStyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="hello" />
>>2.主題Theme
主題應用於整個應用或者activity,樣式應用於具體的控制項上。主題的應用與樣式定義一樣,不同的是主題還可以設置窗口的顯示風格;主題的引用需要在清單文件中進行引用,如引用到整個應用之上就需要在Application節點中進行配置引用,而引用到單個Activity只需要在此Activity中進行配置引用;
復制代碼
<style name="Livingstonetheme"><!--此定義是一個無Title的主題-->
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">?android:windowNoTitle</item>
<!-- 問號表示引用此主題中android:windowNoTitle屬性的值 -->
<item name="android:textSize">18sp</item>
</style>
復制代碼
android系統定義了一些屬性,如android:theme="@android:style/Theme.Dialog",該主題可以讓Activity看起來像一個對話框,更多主題可以在文檔reference->android->R.style中查看。當主題裡面的樣式屬性值與樣式裡面的屬性值發生沖突的時候會顯示樣式裡面的值;
15.其它資源
在資源文件中還可以包括尺寸(dimen)、整數(integer)、布爾(bool) 、整形數組資源(integer-array)、資源數組(array)、顏色(color)
TypedArray ta = getResources().obtainTypedArray(int id); // 獲取數組資源,包括integer-array、array
Final總結:
除了res/values目錄中的資源名,其它目錄的資源都會以文件名在R類的相應子類中生成變數;而res/values中的資源會以name屬性值為變數名在R類的相應子類中生成變數;
2. 怎樣把安卓系統升級到7.0
手機升級安卓7.0的方法:
以榮耀8為例
1、打開榮耀8手機的更新管理把華為會員服務更新至最新版本
3. 安卓系統的優點和缺點
android系統的優點
市場份額大:超80%,iOS不到13%; Windows Phone 不到4%;
應用程序發展迅速:Android應用商店最大的優勢是,不對應用程序進行嚴格。在這一點上優於蘋果。
智能廠家助力:世界很多智能手機廠家幾乎都加入了Android陣營,並推出了一系列的Android智能機。終端越多,其市場潛力就越大。大部分廠家參與建立了Android平台技術聯盟。
Android價廉性能不低:雖然Android平台的手機價廉,但是其性能卻一點也不低廉。Android平台簡單實用,無論是功能還是外觀設計。
機型多 硬體配置優:每一家手機廠商都推出了各自的Android智能機,數不勝數。
系統開源
利於創新:蘋果的自我封閉性,使其創新必須源自內部。而Android是開源的,允許修改,這在很大程度上容許廠家根據自己的硬體更改版本,從而能夠更好的適應硬體,與之形成良好的結合。
開發者最多:國內開發者眾多,本土化軟體齊全
方便開發:Android平台提供給第三方開發商一個十分寬泛、自由的環境,會有多少新穎別致的軟體會誕生。
有利創業:方便技術創業,投入很少,關鍵在創新、服務和技術。
android系統的優點與缺點:
1.基本上可以在線看視頻的軟體裡面的視頻都很不清楚
2.只是一味的加大屏幕大小最求品質的高尚,卻忘了手機最重要的待機
3.只要配置稍微差了那麼一點隨便裝幾個軟體就卡死,還要靠app2sd
4.自動走流量太快了
5.安全和隱私安全和隱私安全和隱私安全和隱私 由於手機與互聯網的緊密聯系,個人隱私很難得到保守。
安全和隱私
由於手機與互聯網的緊密聯系,個人隱私很難得到保守。除了上網過程中經意或不經意留下的個人足跡,Google這個巨人也時時站在你的身後,洞穿一切,因此,互聯網的深入將會帶來新一輪的隱私危機。
首先開賣Android手機的不是最大運營商
眾所周知,T-Mobile在2009年9月23日,於美國紐約發布了Android首款手機G1。但是在北美市場,最大的兩家運營商乃AT&T和Verizon,而目前所知取得Android手機銷售權的僅有T-Mobile和Sprint,其中T-Mobile的3G網路相對於其他三家也要遜色不少,因此,用戶可以買賬購買G1,能否提言道最佳的3G網路服務則要另當別論了。
運營商仍然能夠影響到Android手機
在國內市場,不少用戶對購得移動定製機不滿,感覺所購的手機被人塗畫了廣告一般。這樣的情況在國外市場同樣出現。Android手機的另一發售運營商Sprint就將在其機型中內置其手機商店程序。
同類機型用戶減少
在不少手機論壇都會有針對某一型號的子論壇,對一款手機的使用心得交流,並分享軟體資源。而對於Android平台手機,由於廠商豐富,產品類型多樣,這樣使用同一款機型的用戶越來越少,缺少統一機型的程序強化。舉個稍顯不當的例子,現在山寨機泛濫,品種各異,就很少有專門針對某個型號山寨機的討論和群組,除了哪些功能異常搶眼、頗受追捧的機型以外。
過分依賴開發商缺少標准配置
在使用PC端的Windows Xp系統的時候,都會內置微軟Windows Media
Player這樣一個瀏覽器程序,用戶可以選擇更多樣的播放器,如Realplay或暴風影音等。但入手開始使用默認的程序同樣可以應付多樣的需要。在Android平台中,由於其開放性,軟體更多依賴第三方廠商,比如Android系統的SDK中就沒有內置音樂播放器,全部依賴第三方開發,缺少了產品的統一性。
4. 安卓系統的7.0與8.0有什麼區別
相對於7.0,8.0有以下6點的區別:
一、背景後台限制:谷歌從安卓7.0 Nougat就已經開始這一工作,Android O將為用戶續航帶來極大改善,還有設備交互性能.
為了實現這一目標,安卓O將自動智能限制後台應用活動,主要表現在三個方面:隱式廣播、後台服務、位置更新.這些變化將使得開發者能更輕松地創建應用程序,在用戶設備上產生最小的影響.
二、通知通道:Android O還引入了通知通道功能(Notification channels),重新定義通知內容中的應用程序類別,可以讓開發者給予用戶更精確的通知管理.用戶可以阻止或分別更改每個通道的行為,而不是一起管理應用程序的所有通知.
Android O還添加了新的視覺效果和分組通知,讓用戶更好地分辨新傳入的通知內容或者是一瞥通知陰影.
三、手機設備畫中畫:Picture in Picture (PIP)畫中畫顯示已經支持智能手機和平板電腦,所以用戶在聊天或者叫車時仍可以繼續觀看視頻.應用可以在畫中畫模式下恢復或者暫停,你可以指定長寬比和一組自定義交互(如播放/暫停).其他的窗口特性包括新的應用置頂窗口,遠程式控制制顯示屏的多窗口顯示支持等.
(4)android系統70擴展閱讀
安卓8.0的代號含義
「奧利奧」的名字沿襲了谷歌以甜品命名安卓操作系統的傳統,上一代操作系統就名叫「牛軋糖」(Nougat)。此前,谷歌給安卓8的臨時代號為Android O。
谷歌的新聞發言人Valerie Moens表示,谷歌沒有為這個名字支付奧利奧的生產商億滋(Mondelēz)任何費用,這只是一個「純粹的品牌合作」。谷歌將奧利奧的元素融入安卓機器人形象中,創造了一個新的奧利奧超級英雄的卡通形象。Moens稱,之後可能會與億滋一起,做一些安卓、奧利奧相關的推廣以及推出有安卓奧利奧卡通形象的4部微電影。
5. 安卓70怎麼ROOT
可以試試使用kingroot,一鍵root之後用 kingroot 裡面的凈化大師,輕松簡單讓手機耗電降低,輕松管理通知欄。 「一鍵root」(Kingroot)是由Kingroot工作室開發,針對Android(安卓)系統一鍵獲取ROOT許可權的軟體,分為手機、PC兩個版本,可分別於安卓70怎麼ROOT
6. 安卓有70系統
目前最高的貌似開發到5.0,但市面上未有其真容。現在安卓系統版本在4.3或4.4、4.5了。要到7.0那就等吧。
7. 安卓手機為什麼內存總佔用70%左右,是否對手機運行有影響,怎麼降低內存佔用率
安裝「安卓優化大師」或者360手機安全衛士等,去優化後台程序即可
8. android系統耗電量70%怎麼解決
你手機剩下多少電?如果機子一整天待機的話,用3%-5%電的話,那麼android系統耗電佔70%很正常,除非你關機,不然一整天開著手機系統運行一整天耗電占最大很正常,除非你玩手機,這樣屏幕耗電就是最大的了
9. 手機高手幫忙 安卓系統4,3為什麼我的cpu使用總是在70%以上呀怎麼降低
你太天真了
騷年
這個是手機的配置問題
10. 安卓系統怎麼升級到7.0
1、使用手機自帶的系統更新功能
在安卓手機的設置--關於手機中,可以看到當前安卓手機的系統版本,另外這里也有自動檢測更新系統功能。
這里就是安卓手機自帶的系統更新功能,其更新主要由手機廠商提供,像小米手機就可以很好的通過該功能升級手機系統版本。不過使用該功能升級系統,需要下載不少升級文件,因此建議大家在Wifi環境下進行。
Ps:使用手機自帶的系統更新功能僅對部分品牌手機比較實用,通常很多品牌手機的自帶的升級功能,可升級的非常慢,並且無法更新到最新的安卓系統版本,因此一般也不建議採用該方式升級。
2、下載手機系統升級包
一般手機廠商官網都會更新一些系統文件包供用戶下載升級,我們可以可以進入自己手機品牌官網下載中心,然後根據自己手機品牌型號,下載最新的系統更新升級包,下載存放在手機SD卡當中。
然後我們再進入手機設置,然後選擇「關於手機」最後找到「系統更新」選項,之後我們在選擇「存儲卡升級」,如下圖所示:
通過刷機升級安卓系統
通過刷機升級安卓手機系統,是目前大家最常見的升級方法,相比前面2種方法都是靠廠商的升級文件,其實並不靠譜,很多廠商一般除了系統有嚴重Bug外,一般都很少發布升級文件。
通過刷機升級安卓系統很簡單,大家可以根據自己手機的品牌型號,找到適合自己手機的ROM系統,之後下載去刷機升級即可。另外目前也有很多一鍵刷機工具,如刷機精靈、刷機大師等等都可以一鍵檢測安卓手機品牌型號,然胡找到匹配的安卓系統,我們可以實現一鍵刷機。