日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > 如何編寫高效的Android代碼

如何編寫高效的Android代碼

來源:程序員人生   發布時間:2014-11-16 02:30:40 閱讀次數:1982次

    時間是很寶貴的東西,在編寫Android代碼的時候盡量的編寫出高效的Android代碼可以節省你很多的時間,讓你有時間去泡妞、去陪女朋友、去陪基友,去吃飯、去文娛、去睡覺!畢竟,誰都不想整夜整夜的加班,然后還亂吼:時間都去哪了?!下面就整理了怎樣提高效力,編寫高效的Android代碼!看到這,偷笑了吧,表粉飾,我已看到!

    對如何判斷1個系統的不公道,這里有兩個基本的原則:

    1、不要做沒必要要做的事情。

    2、盡量的節省內存的使用。

    下面是經常使用的幾點優化建議:

    1、盡量避免創建對象(Object)

    由于對象的創建其實不是沒有代價的,如果你在1個用戶界面的循環中分配1個對象,你不能不強迫的進行內存回收,那末就會使用戶體驗出現略微“打嗝”的現象。

    當從原始的輸入數據中提取字符串時,試著從原始字符串返回1個子字符串,而不是創建1份拷貝。

    2、使用本身方法(Use Native Methods)

    當處理字符串的時候,不要猶豫,盡量多的使用諸如String.indexOf()、String.lastIndexOf()這樣對象本身帶有的方法。由于這些方法使用C/C++來實現的,要比在1個java循環中做一樣的事情快10⑴00倍。

    3、使用Safe.ijiami去檢測下你碼完的代碼

    Android代碼碼完,開發完Android App,用Safe.ijiami可以檢測出代碼存在的漏洞,1分鐘完事,不耽誤你碼下1批代碼。最重要的是它還會根據你的漏洞提出解決方案,省去你去1個又1個代碼的扒拉!

    4、緩沖屬性調用Cache Field Lookups

    訪問對象屬性要比訪問本地變量慢很多。你不應當這樣寫你的代碼:

for (int i = 0; i < this.mCount; i++)

      dumpItem(this.mItems[i]);

    而是應當這樣寫:

  int count = this.mCount;

  Item[] items = this.mItems;

  for (int i = 0; i < count; i++)

      dumpItems(items[i]);

(我們直接使用“this”表明這些是它的成員變量)

    5、聲明Final常量

    我們可以看看下面1個類頂部的聲明:

static int intVal = 42;

static String strVal = “Hello, world!”;

    當1個類第1次使用時,編譯器會調用1個類初始化方法,這個方法將42存入變量intVal,并且為strVal在類文件字符串常量表中提取1個援用,當這些值在后面援用時,就會直接屬性調用。

    我們可以用關鍵字“final”來改進代碼:

static final int intVal = 42;

static final String strVal = “Hello, world!”;

    這個類將不會調用類初始化方法,由于這些常量直接寫入了類文件靜態屬性初始化中,這個初始化直接由虛擬機來處理。代碼訪問intVal將會使用Integer類型的42,訪問strVal將使用相對節省的“字符串常量”來替換1個屬性調用。

    將1個類或方法聲明為“final”其實不會帶來任何的履行上的好處,它能夠進行1定的最優化處理。例如,如果編譯器知道1個Get方法不能被子類重載,那末它就把該函數設置成Inline。

    6、避免浮點類型的使用

    嵌入式的處理器通常其實不支持浮點數的處理,因此所有的“float”和“double”操作都是通過軟件進行的,1些基本的浮點數的操作就需要花費毫秒級的時間。

    同理,即便是整數,1些芯片也只有乘法而沒有除法。在這些情況下,整數的除法和取模操作都是通過軟件實現。

    7、避免羅列類型Avoid Enums

    羅列類型非常好用,當斟酌到尺寸和速度的時候,就會顯得代價很高,例如:

public class Foo {

   public enum Shrubbery { GROUND, CRAWLING, HANGING }

}

    這會轉變成為1個900字節的class文件(Foo$Shrubbery.class)。第1次使用時,類的初始化要在獨享上面調用方法去描寫羅列的每項,每個對象都要有它本身的靜態空間,全部被貯存在1個數組里面(1個叫做“$VALUE”的靜態數組)。那是1大堆的代碼和數據,而僅僅是為了3個整數值。

Shrubbery shrub = Shrubbery.GROUND;

    這會引發1個靜態屬性的調用,如果GROUND是1個靜態的Final變量,編譯器會把它當作1個常數嵌套在代碼里面。

 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产永久免费观看 | 日韩欧美第一页 | 久久精品人人爽 | 亚洲一区二区精品在线 | 黄色小视频在线观看 | 亚洲成人福利在线 | 国产精品久久久久久久婷婷 | 国产精品久久一区二区三区不卡 | 一区二区三区久久久 | 国产精品福利在线 | 一级片aaaa | 成人免费一区二区三区视频网站 | 欧美成人精品一区二区三区 | av一级免费观看 | 求av网站| av网站免费看 | 久久九九久久九九 | 国产精品久久久久久久电影 | 中文字幕精品三区 | 亚洲v日韩v综合v精品v | 欧美日韩999 | 国产一级片 | 国产欧美日韩在线 | 亚洲日韩中文字幕 | 国产中文字幕av | 中文字幕日韩欧美一区二区三区 | 欧美电影一区 | 99精品免费视频 | 51ⅴ精品国产91久久久久久 | 99国产精品久久久久久久久久 | 国产探花在线精品一区二区 | 亚洲黄色片子 | 日韩av在线不卡 | 欧美日韩亚洲自拍 | 久久久91精品 | 麻豆专区一区二区三区四区五区 | 久久亚洲春色中文字幕久久久 | 天天干天天爱天天爽 | 欧美黑人巨大久久久精品一区小蓝 | 欧美二区在线观看 | 九一毛片 |