欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Android開(kāi)發(fā)性能優(yōu)化大總結

有時(shí)間了,我會(huì )不段更新!

一.Android相關(guān)

1.   采用硬件加速,在androidmanifest.xml中application添加android:hardwareAccelerated="true"。不過(guò)這個(gè)需要在android 3.0才可以       使用。android4.0這個(gè)選項是默認開(kāi)啟的。

2.   View中設置緩存屬性.setDrawingCache為true.
3.    優(yōu)化你的布局。通過(guò)Android sdk中tools目錄下的layoutopt 命令查看你的布局是否需要優(yōu)化。
4.    動(dòng)態(tài)加載View. 采用ViewStub 避免一些不經(jīng)常的視圖長(cháng)期握住引用.
5.    將Acitivity 中的Window 的背景圖設置為空。getWindow().setBackgroundDrawable(null);android的默認背景是不是為空。
6.    采用<merge> 優(yōu)化布局層數。 采用<include >來(lái)共享布局。
7.    查看Heap 的大小
8.    利用TraceView查看跟蹤函數調用。有的放矢的優(yōu)化。
9.    cursor 的使用。不過(guò)要注意管理好cursor,不要每次打開(kāi)關(guān)閉cursor.因為打開(kāi)關(guān)閉Cursor非常耗時(shí)。 Cursor.require用于刷cursor.
10.  采用環(huán)形Buffer(可以采用鏈表數據結構實(shí)現)??梢栽O置一個(gè)鏈表長(cháng)度的上限,根據手勢的變化來(lái)不斷地更新環(huán)形Buffer的內容。

11.  采用SurfaceView在子線(xiàn)程刷新UI, 避免手勢的處理和繪制在同一UI線(xiàn)程(普通View都這樣做)。
12.  采用JNI,將耗時(shí)間的處理放到c/c++層來(lái)處理。
13.  有些能用文件操作的,盡量采用文件操作,文件操作的速度比數據庫的操作要快10倍左右。
14.  懶加載和緩存機制。訪(fǎng)問(wèn)網(wǎng)絡(luò )的耗時(shí)操作啟動(dòng)一個(gè)新線(xiàn)程來(lái)做,而不要再UI線(xiàn)程來(lái)做。
15.  避免創(chuàng )建不必要的對象
16.  如果方法用不到成員變量,可以把方法申明為static,性能會(huì )提高到15%到20%
17.  避免使用getter/setter存取field,可以把field申明為public,直接訪(fǎng)問(wèn)
18.  static的變量如果不需要修改,應該使用static  final修飾符定義為常量
19.  使用增強for循環(huán)
    如:Set<Object> set = new HashSet<Object>();
           // for循環(huán)遍歷:
          for (Object obj: set) {
               if(obj instanceof Integer){
                     int aa= (Integer)obj;
               }else if(obj instanceof String){
                       String aa = (String)obj

                 } ........
           }
    缺點(diǎn):在遍歷 集合過(guò)程中,不能對集合本身進(jìn)行操作

             for (String str : set) {
                     set.remove(str);//錯誤!
             }
20.  私有內部類(lèi)要訪(fǎng)問(wèn)外部類(lèi)的field或方法時(shí),其成員變量不要用private,因為在編譯時(shí)會(huì )生成setter/getter,影響性能??梢园淹獠款?lèi)的field或方法聲明為包訪(fǎng)問(wèn)權限

21.  合理利用浮點(diǎn)數,浮點(diǎn)數比整型慢兩倍;

22.針對ListView的性能優(yōu)化

item盡可能的減少使用的控件和布局的層次;背景色與cacheColorHint設置相同顏色;ListViewitem的布局至關(guān)重要,必須盡可能的減少使用的控件,布局。RelativeLayout是絕對的利器,通過(guò)它可以減少布局的層次。同時(shí)要盡可能的復用控件,這樣可以減少ListView的內存使用,減少滑動(dòng)時(shí)GC次數。ListView的背景色與cacheColorHint設置相同顏色,可以提高滑動(dòng)時(shí)的渲染性能。ListViewgetView是性能是關(guān)鍵,這里要盡可能的優(yōu)化。getView方法中要重用view;getView方法中不能做復雜的邏輯計算,特別是數據庫操作,否則會(huì )嚴重影響滑動(dòng)時(shí)的性能。

二.JAVA相關(guān)

1 不用new關(guān)鍵詞創(chuàng )建類(lèi)的實(shí)例,用new關(guān)鍵詞創(chuàng )建類(lèi)的實(shí)例時(shí),構造函數鏈中的所有構造函數都會(huì )被自動(dòng)調用。但如果一個(gè)對象實(shí)現了Cloneable接口,我們可以調用它的clone()方法。clone()方法不會(huì )調用任何類(lèi)構造函數。

在使用設計模式(Design Pattern)的場(chǎng)合,如果用Factory模式創(chuàng )建對象,則改用clone()方法創(chuàng )建新的對象實(shí)例非常簡(jiǎn)單。例如,下面是Factory模式的一個(gè)典型實(shí)現:
public static Credit getNewCredit() {
       return new Credit();
}
改進(jìn)后的代碼使用clone()方法,如下所示:
private static Credit BaseCredit = new Credit();
      public static Credit getNewCredit() {
            return (Credit) BaseCredit.clone();
      }
上面的思路對于數組處理同樣很有用。
2 使用非阻塞I/O
版本較低的JDK不支持非阻塞I/O API。為避免I/O阻塞,一些應用采用了創(chuàng )建大量線(xiàn)程的辦法(在較好的情況下,會(huì )使用一個(gè)緩沖池)。這種技術(shù)可以在許多必須支持并發(fā)I/O流的應用中見(jiàn)到,如Web服務(wù)器、報價(jià)和拍賣(mài)應用等。然而,創(chuàng )建Java線(xiàn)程需要相當可觀(guān)的開(kāi)銷(xiāo)。
JDK 1.4引入了非阻塞的I/O庫(java.nio)。如果應用要求使用版本較早的JDK,在這里有一個(gè)支持非阻塞I/O的軟件包。
3 慎用異常
異常對性能不利。拋出異常首先要創(chuàng )建一個(gè)新的對象。Throwable接口的構造函數調用名為fillInStackTrace()的本地(Native)方法,fillInStackTrace()方法檢查堆棧,收集調用跟蹤信息。只要有異常被拋出,VM就必須調整調用堆棧,因為在處理過(guò)程中創(chuàng )建了一個(gè)新的對象。
異常只能用于錯誤處理,不應該用來(lái)控制程序流程。
4 不要重復初始化變量
默認情況下,調用類(lèi)的構造函數時(shí), Java會(huì )把變量初始化成確定的值:所有的對象被設置成null,整數變量(byte、short、int、long)設置成0,float和 double變可柚貿?.0,邏輯值設置成false。當一個(gè)類(lèi)從另一個(gè)類(lèi)派生時(shí),這一點(diǎn)尤其應該注意,因為用new關(guān)鍵詞創(chuàng )建一個(gè)對象時(shí),構造函數鏈中的所有構造函數都會(huì )被自動(dòng)調用。
5 盡量指定類(lèi)的final修飾符
帶有final修飾符的類(lèi)是不可派生的。在Java核心API中,有許多應用final的例子,例如java.lang.String。為String類(lèi)指定final防止了人們覆蓋length()方法。
另外,如果指定一個(gè)類(lèi)為final,則該類(lèi)所有的方法都是final。Java編譯器會(huì )尋找機會(huì )內聯(lián)(inline)所有的final方法(這和具體的編譯器實(shí)現有關(guān))。此舉能夠使性能平均提高50%。
6 盡量使用局部變量
調用方法時(shí)傳遞的參數以及在調用中創(chuàng )建的臨時(shí)變量都保存在棧(Stack)中,速度較快。其他變量,如靜態(tài)變量、實(shí)例變量等,都在堆(Heap)中創(chuàng )建,速度較慢。另外,依賴(lài)于具體的編譯器/JVM,局部變量還可能得到進(jìn)一步優(yōu)化。請參見(jiàn)《盡可能使用堆棧變量》。
7 乘法和除法
考慮下面的代碼:
for (val = 0; val < 100000; val +=5) { alterX = val * 8; myResult = val * 2; }
用移位操作替代乘法操作可以極大地提高性能。下面是修改后的代碼:
for (val = 0; val < 100000; val += 5) { alterX = val << 3; myResult = val << 1; }

8.不要隨意的使用stingA=StringB+StringC的寫(xiě)法,有大量拼接操作的地方用StringBuilder代替。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Android開(kāi)源中國客戶(hù)端學(xué)習 主界面功能分析<1>
Android內存優(yōu)化
.h和.cpp文件的區別
static
Android 開(kāi)發(fā)之漫漫長(cháng)途 IX——徹底掌握 Binder
【MQL4】MQ語(yǔ)言簡(jiǎn)單說(shuō)明與教程
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久