㈠ 請介紹下android中常用的五種布局,分別的布局方式。謝謝!急
LinearLayout,線性布局
RelativeLayout,相對布局
AbsoluteLayout,絕對布局
FrameLayout,幀布局
TableLayout,表格布局
BorderLayout,
BoxLayout,
CardLayout,
DefaultMenuLayout,
FlowLayout,
GridBagLayout,
GridLayout,
GroupLayout
swing里常用的也有這些,至於每個具體的功能你自己查一下API就可以了。
1、Java初步
Java是由sun公司開發的一種新型的面向物件的程式設計語言,主要用於web頁面的設計。
Java語言的發展頗具傳奇性,它與Inter的的迅猛發展是分不開的。由於其發展迅速,有人將它比喻為Inter上的世界語。前面講到在Inter上Web頁面的設計採用的是HTML語言,使用者藉助於Web瀏覽器(如Netscape,HotJava,IE等),可以訪問到遠端web伺服器上靜態的、具有超連結的Web頁面。Java語言的出現改變了 Web頁面的這種傳統的靜態模式,通過在Web頁面中附加一些利用Java編寫的App1et(稱為小程式),可飢型以使Web頁面更具多樣蠢空性和變化性,這樣使用者就能夠訪問到動態的,具有互動功能的web頁面。
例如一些小的動畫,實時更新的圖表、聲音等。總之,Web頁面的設計主要採用HTML語言,利用Java則使其錦上添花。
Sun公司於1995年5月正式推出Java語言,由於其簡單、高效、可移植性強等特點,一經推出,很快引起廣大使用者和眾多廠商的普遍關注,特別是Sum公司將其定位於Inter的應用開發上,使得Java得以迅速發展。在同期推出的還有被稱為HotJava(熱咖啡)的瀏覽器,Hotjava是一個完全由Java語言編寫,基於Java典型應用的web瀏覽器,並且第一個支援Java Applet。HotJava充分展示了Java在全球Inter網上的強大威力,同時也為Java語言程式設計提供了一個理想的執行平台。
Java語言推出後,各大軟體廠商相繼宣布支援Java。首先是Netscape公司在其Web瀏覽器(Netscape Navigator2.0)中支援Java,不久,sun,SGI和Macromedia三家公司制定了基於Java的開放式多媒體標准。後來許多公司,如IBM,Microsoft,Orac1e等,都宣布支援Java。Netscape公司進一步與sun公司合作,推出了類似於Java的JavaScript語言。目前,Sun公司已成立了專門的Javasoft分部,負責管理Java語言的開發、維護工作(可從Http:Javasoft,站點了解詳細資訊)。
對於Java這一名字,較為流行的說法是它來源於印度尼西亞的一個重要島嶼,該島嶼的中文譯名為"爪哇",島上盛產咖啡,於是sun公司的開發人員將這種新語言起名為Java,寓意是使其與熱氣騰騰的咖啡聯絡起來,將它奉獻給全球的計算機使用者。
2、Java語言的特點
Java語言的流行除了因為它能夠編制嵌入HTML檔案中的Applet外,還在於Java語言本身的面向物件、簡單、平台無關性、安全性、多執行緒等特點。Java語言的結構與編寫方式,與c++語言類似,因此學習Java語言,不僅要了解Java語言獨有的程式設計特點,同時還要有程式設計基礎和面向物件的概念。 <BR>Java語言的主要特點如下:
(1)簡單、高效
Java語言與C++類似,如果使用者了解C++和面向物件的概念,就可以很快編寫出Java程式;此外,Java又不同於諸如C++語言提供的各種各樣的方法,它只提供了基本的方法,這樣就減少了程式設計的復雜性,例如去掉了標頭檔案、指標變數、結構、運運算元過載、多重繼承等復雜特性。Java語言雖然簡單,卻很高效,它可以用面向物件的方法來描述使用者的每一個動作。
(2)面向物件
Java語言是一種新的面向物件的程式設計語言,它除了幾種基本的資料型別外,大都是類似c++中的物件和方法,程式程式碼大多體現了類機制,以類的形式帶肢瞎組織,由類來定義物件的各種行為。Java同樣支援類繼承,這樣也減少了程式設計的復雜性。
(3)平台無關性 Java語言經編譯後生成與計算機硬體結構無關的位元組程式碼(Bytecode),這些位元組程式碼被定義為不依賴任何硬體平台和作業系統。當Java程式在執行時,需要由一個解釋程式對生成的位元組程式碼解釋執行。這體現了Java語言的與平台無關性,使得Java程式可以在任何平台上執行,如MS-DOS,Windows,Unix等,因此具有很強的移植性。
(4)互動式特性
Java是面向物件的網路程式語言,由於它支援TCP/IP協議,使得使用者可以通過瀏覽器訪問到Inter上的各種動態物件。並且在網路上使用者可以互動式地進行各種動作,而多執行緒技術的引入使得這種互動式操作更為容易。
(5)多執行緒機制
Java語言支援多執行緒機制,多執行緒機制使得Java程式能夠並行處理多項任務。Java程式可以設計成具有多個執行緒,例如讓一個執行緒負責資料的檢索、查尋,另一個執行緒與使用者進行互動,這樣,兩個執行緒得以並行執行。多執行緒機制可以很容易地實現網路上的互動式操作。
(6)動態的記憶體管理機制
Java語言採用了自動垃圾回收機制進行記憶體的管理。在C++語言中,程式設計師在編寫程式時要仔細地處理記憶體的使用,例如當某個記憶體快使用完畢時,要及時釋放,以供其它程式使用,一旦記憶體管理不當,就有可能造成記憶體空間浪費或程式執行故障。 <BR>在Java系統中包括了一個自動垃圾回收程式,它可以自動、安全地回收不再使用的記憶體塊,這樣,程式設計師在程式設計時就無需擔心記憶體的管理問題,從而使Java程式的編寫變得簡單,同時也減少了記憶體管理方面出錯的可能性。
(7)安全性
在類似Inter的這種分散式網路環境中,安全性是個不容忽視的問題。Java語言在安全性方面引入了實時記憶體分配及布局來防止程式設計師直接修改實體記憶體布局;通過位元組程式碼驗證器對位元組程式碼的檢驗,以防止網路病毒及其它非法程式碼侵入。此外,Java語言還採用了許多面向物件的異常處理機制,負責對一些異常事件進行處理,如記憶體空間不夠,程式異常中止等的處理。 <BR>以上介紹了Java語言的一些主要特點,除此之外它還具有動態性、類庫豐富、高效能等特點,這些都使得Java語言在各個方面得以成熟和完善,成為大眾日益青睞的程式設計語言之一。
3、Java應用程式和Java AppletJava語言是一種面向物件的程式設計語言,利用Java語言,能夠編寫出兩大類程式:Java應用程式(Application)和Java App1et(小程式):
Java應用程式是由Java語言編寫,在經過編譯和解釋後,可以獨立執行在MS-DOS,UNIX等操作平台上。Java應用程式一般以命令列方式執行。
Java Applet是不能獨立執行的,App1et必須嵌入到HTML檔案中,並且需要啟動瀏覽器才能執行。這樣,指定的Applet會自動下載到使用者的瀏覽器中執行,從而產生一些特殊的頁面效果,如動畫、聲音、圖表、影象等。通過在Web頁面中嵌入Applet,可以使Web頁面與使用者之間進行動態互動,例如接收使用者的輸入,然後根據使用者的需要產生不同的響應。
就Java Applet而言,它是嵌入到HTML檔案中的,HTML檔案呈現的內容大多為文字、圖片、表格、聲音等,但這些內容一般都是靜態的、二維的。但當HTML檔案中嵌有 Applet後,整個頁面會呈現出多樣性和變化性,例如互動功能、圖表等。在運用方面Java語言和HTML語言的區別在於:
(1)HTML語言屬於一種簡單的標記語言,一般使用者均可在數小時內學會如何編寫HTML檔案。而Java語言的結構和編寫方法更類似於c++,所以學習Java語言要有程式設計的基礎和面向物件的概念。
(2)Web頁面的編寫主要採用HTML語言,但若想使頁面更具變化性、多樣性、互動性,可採用Java語言來達到這種效果,起到錦上添花的作用。
4、在HTML檔案中嵌入Applet</FONT> <BR>Applet是Java在Inter的中的一個重要應用,同時它的出現也促使了Java成為日益流行的程式設計語言。Applet是指由Java語言編寫的,被嵌入到Web頁面中,並通過瀏覽器執行以產生特殊頁面效果的小程式。嵌入了Applet的Web頁面看上去會更加豐富多彩,具有動態互動能力。
在Inter上擁有大量的App1et,這些Applet大都是由Sun等公司的Java開發人員設計出來的,對於廣大使用者,特別是初學者,可以將這些App1et下載到自己的計算機中,井通過將這些下載下來的App1et嵌入到自己的Web頁面中來,獲得自己具有相同效果的Web頁面,以豐富自己的頁面內容。
Android的常見布局方法:線性布局、表格布局、相對布局、幀布局和巢狀布局;
好的,糾結了幾天了,換了各種版本的eclipse,那什麼版本以下預設的是線性布局的呢 檢視原帖>>
線性布局LinearLayout 表格布局TableLayout 幀布局Framelayout 相對布局RelativeLayout 絕對布局AbsoluteLayout
android4.0版本後新增的GridLayout
你在網路搜索 「css+div的布局方式,比table的布局方式」 就會有很多關於這個問題答案,你可以看看,雖然都有優缺點,但是建議還是改用div+css吧,table已經過時了
:codesky./article/201008/139693.
希望可以幫到你
KIKC自2013年創立以來,在幾年內已經擴張600多個店鋪,預計將在2018年實現1000個店鋪的全面布局,其發展速度堪稱業界奇跡。
借用網路一句話:響應式布局是Ethan Marcotte在2010年5月份提出的一個概念,簡而言之,就是一個網站能夠相容多個終端——而不是為每個終端做一個特定的版本。這個概念是為解決移動網際網路瀏覽而誕生的。
響應式布局就是可以,適應多種裝置的網頁,比如電腦端和移動端 可以共用同一套CSS。不需要為單獨的裝置而開發相應程式
浮動布局,定位布局以及響應式布局,這三種布局是最基本最常見的,此外比較特殊的是彈性布局,彈性布局相對使用較少,需要根據專案的具體情況而定。
在網站開發當中,通常是需要結合多種布局去實現網頁布局的。如果是在學習網頁布局的相關知識,可以弄本 HTML5布局之路 ,來輔助自己的學習
㈡ Android性能優化總結
常用的Android性能優化方法:
一、布局優化:
1)盡量減少布局文件的層級。
層級少了,繪制的工作量也就少了,性能自然提高。
2)布局重用 <include標簽>
3)按需載入:使用ViewStub,它繼承自View,一種輕量級控制項,本身不參與任何的布局和繪制過程。他的layout參數里添加一個替換的布局文件,當它通過setVisibility或者inflate方法載入後,它就會被內部布局替換掉。
二、繪制優化:
基於onDraw會被調用多次,該方法內要避免兩類操作:
1)創建新的局部對象,導致大量垃圾對象的產生,從而導致頻繁的gc,降低程序的執行效率。
2)不要做耗時操作,搶CPU時間片,造成繪制很卡不流暢。
三、內存泄漏優化:
1)靜態變數導致內存泄漏 比較明顯
2)單例模式導致的內存泄漏 單例無法被垃圾回收,它持有的任何對象的引用都會導致該對象不會被gc。
3)屬性動畫導致內存泄漏 無限循環動畫,在activity中播放,但是onDestroy時沒有停止的話,動畫會一直播放下去,view被動畫持有,activity又被view持有,導致activity無法被回收。
四、響應速度優化:
1)避免在主線程做耗時操作 包括四大組件,因為四大組件都是運行在主線程的。
2)把一些創建大量對象等的初始化工作放在頁面回到前台之後,而不應該放到創建的時候。
五、ListView的優化:
1)使用convertView,走listView子View回收的一套:RecycleBin 機制
主要是維護了兩個數組,一個是mActiveViews,當前可見的view,一個是mScrapViews,當前不可見的view。當觸摸ListView並向上滑動時,ListView上部的一些OnScreen的View位置上移,並移除了ListView的屏幕范圍,此時這些OnScreen的View就變得不可見了,不可見的View叫做OffScreen的View,即這些View已經不在屏幕可見范圍內了,也可以叫做ScrapView,Scrap表示廢棄的意思,ScrapView的意思是這些OffScreen的View不再處於可以交互的Active狀態了。ListView會把那些ScrapView(即OffScreen的View)刪除,這樣就不用繪制這些本來就不可見的View了,同時,ListView會把這些刪除的ScrapView放入到RecycleBin中存起來,就像把暫時無用的資源放到回收站一樣。
當ListView的底部需要顯示新的View的時候,會從RecycleBin中取出一個ScrapView,將其作為convertView參數傳遞給Adapter的getView方法,從而達到View復用的目的,這樣就不必在Adapter的getView方法中執行LayoutInflater.inflate()方法了。
RecycleBin中有兩個重要的View數組,分別是mActiveViews和mScrapViews。這兩個數組中所存儲的View都是用來復用的,只不過mActiveViews中存儲的是OnScreen的View,這些View很有可能被直接復用;而mScrapViews中存儲的是OffScreen的View,這些View主要是用來間接復用的。
2)使用ViewHolder避免重復地findViewById
3)快速滑動不適合做大量非同步任務,結合滑動監聽,等滑動結束之後載入當前顯示在屏幕范圍的內容。
4)getView中避免做耗時操作,主要針對圖片:ImageLoader來處理(原理:三級緩存)
5)對於一個列表,如果刷新數據只是某一個item的數據,可以使用局部刷新,在列表數據量比較大的情況下,節省不少性能開銷。
六、Bitmap優化:
1)減少內存開支:圖片過大,超過控制項需要的大小的情況下,不要直接載入原圖,而是對圖片進行尺寸壓縮,方式是BitmapFactroy.Options 采樣,inSampleSize 轉成需要的尺寸的圖片。
2)減少流量開銷:對圖片進行質量壓縮,再上傳伺服器。圖片有三種存在形式:硬碟上時是file,網路傳輸時是stream,內存中是stream或bitmap,所謂的質量壓縮,它其實只能實現對file的影響,你可以把一個file轉成bitmap再轉成file,或者直接將一個bitmap轉成file時,這個最終的file是被壓縮過的,但是中間的bitmap並沒有被壓縮。bitmap.compress(Bitmap.CompressFormat.PNG,100,bos);
七、線程優化:
使用線程池。為什麼要用線程池?
1、從「為每個任務分配一個線程」轉換到「在線程池中執行任務」
2、通過重用現有的線程而不是創建新線程,可以處理多個請求在創建銷毀過程中產生的巨大開銷
3、當使用線程池時,在請求到來時間 ,不用等待系統重新創建新的線程,而是直接復用線程池中的線程,這樣可以提高響應性。
4、通過和適當調整線程池的大小 ,可以創建足夠多的線程以使處理器能夠保持忙碌狀態,同時還可以防止過多線程相互競爭資源而使應用程序耗盡內存或者失敗。
5、一個App裡面所有的任務都放在線程池中執行後,可以統一管理 ,當應用退出時,可以把程序中所有的線程統一關閉,避免了內存和CPU的消耗。
6、如果這個任務是一個循環調度任務,你則必須在這個界面onDetach方法把這個任務給cancel掉,如果是一個普通任務則可cancel,可不cancel,但是最好cancel
7、整個APP的總開關會在應用退出的時間把整個線程池全部關閉。
八、一些性能優化建議:
1)避免創建過多對象,造成頻繁的gc
2)不要過多使用枚舉,枚舉佔用的空間比整型大很多
3)字元串的拼接使用StringBuffer、StringBuilder來替代直接使用String,因為使用String會創建多個String對象,參考第一條。
4)適當使用軟引用,(弱引用就不太推薦了)
5)使用內存緩存和磁碟緩存。
㈢ 安卓系統有什麼方法可以優化操作教程
很多人反映安卓系統手機用久了會卡,一些人就選擇刷機了,那麼除了刷機還有沒有什麼方法優化系統呢?下面由我為你整理了安卓手機如何進行優化系統的相關方法,希望對你有幫助!
安卓手機優化系統方法如下
安卓刷機
系統這一塊絕對是有著舉足輕重的地位,一款好的系統能讓安卓手機脫胎換骨。而從Android 4.1開始,Android的流暢性可以說有了質的飛躍。Android 4.1的觸控感覺非常好,這主要歸功於Android 4.1的幀速度提高到了60fps,而且在觸控延遲上有更加優秀的表現。因此只要情況允許,建議所有Android手機都刷到4.1以上,這種體驗絕對是以往使用4.0甚至2.3系統都不可想像的。當然,對於大部分Android手機來說,4.1還是遙不可及,只有通過第三方ROM才能達到品嘗「果凍豆」的目的,這里就要特別注意第三方ROM的穩定性問題。
如果不能刷Android 4.1,那還可以選擇一些第三方ROM例如原生系統AOKP或者CM系列。由於系統非常精簡,這些第三方ROM也會帶來流暢度的提升,當然要放棄的是官方ROM的各種自帶軟體和UI,這就要看使用者的取捨了。
更換核心
Android手機的核心Kernel對手機流暢性也是有很大的影響,核心直接影響CPU的執行效率、頻率變化。說到刷核心就不能不提超頻,一些第三方核心支援CPU的超頻,CPU頻率提高了流暢度當然會有變化,當然這里也要特別注意溫度和電壓的控制。
已經有提及過,很多手機預設是標准模式甚至是省電模式,這對效能是有不少影響的,因此建議不是有特別需求還是調至效能模式位置:系統設定,因不同手機而異。
關閉動畫特效
這是一個Android 4.0才開始有的設定選項,Android 4.0有兩項視窗動畫縮放以及過渡動畫縮放,Android 4.1增加了動畫程式時長調整。有人說Android的動畫比較卡,沒有iPhone順滑,有這選項可好,你說動畫不順嘛,我關掉還不行嗎?關閉了這些以後會感覺反應迅速了很多,但是犧牲了一定的視覺感受位置:設定→開發人員選項。
不保留活動
這個選項即把Android相對iPhone的其中一個很大的優勢舍棄了,也就是我們常說的「多工」,Android現在的高階機動不動就四核、2G RAM,如果只跑一個軟體,可想而知流暢度會非常高,但是這里並不建議使用這種方法提升流暢度,沒有多工的Android更像一隻三腳貓,如果只是體驗一下那種感覺也無妨位置:設定→開發人員選項。
藉助第三方軟體優化
實際上很多Android卡頓的罪魁禍首就是系統的啟動器,現在一些品牌的手機啟動器做得越來越炫麗,也越來越復雜,當然代價就是佔用RAM和ROM更多,如果不是對這方面特別有要求,完全可以替換一些第三方的啟動器,例如Apex、NOVA等,它們帶來的流暢度提升也是非常明顯的這里使用NOVA作介紹。
解除安裝系統自帶程式
現在越來越多官方系統自帶很多惱人的程式,而且不能解除安裝,這些軟體往往都會開機自啟動,對系統流暢度影響比較大,但是要刪除這些自帶軟體需要獲取root許可權。通用一些第三方ROM也會有自帶垃圾軟體問題,而大部分第三方ROM都自帶root,所以這個相對好解決。這里刪除程式也要特別注意,不要錯刪一些系統軟體,否則後果很嚴重這里使用的是「力卓工具箱」。
建議:解除安裝一些不常用的桌面外掛、系統強制安裝的第三方軟體等
管理開機自啟動項
這方面在之前的省電專題中也有提到過,減少開機自啟動的軟體,除了能節省電量之外,當然還能提升手機的反應速度,當然這里也不能一下把所有軟體都關閉,關閉一些不需要自啟動的第三方軟體就可以達到目的了,如果不小心把系統本身的程式禁用了就會比較麻煩這里使用的是「力卓工具箱」。