多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

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

如何編寫高效的Android代碼

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

    時間是很寶貴的東西,在編寫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個常數嵌套在代碼里面。

 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲a视频在线 | 99亚洲| 国产乱辈通伦影片在线播放 | 中文字幕在线看视频一区二区三区 | 波多野结衣一区二区 | 欧美理伦视频 | 亚洲 校园 欧美 动漫 制服 | 国产精品揄拍一区二区 | 欧美精品99毛片免费高清观看 | 一级毛片ab片高清毛片 | 成人9久久国产精品品 | 亚洲成人一区在线 | 亚洲专区一区 | 天堂在线亚洲 | 在线午夜 | 国产一二三区在线 | 国产永久一区二区三区 | 亚洲免费视频网址 | 最近的最新的中文字幕视频 | 久久久久色 | 大香一本蕉伊线亚洲网 | 欧美亚洲激情视频 | 久久日视频 | 精品视频在线观看一区二区三区 | jiz欧美高清 | 伊人官网 | 中国美女一级看片 | 日韩小视频在线播放 | 手机看片高清日韩精品 | 黄色特级片黄色特级片 | 国产v精品欧美精品v日韩 | 牛仔裤美女国产精品毛片 | 国产成人麻豆精品 | 波多野结衣中文一区二区免费 | 欧美3区| 黑人性视频 | 自拍 另类 综合 欧美小说 | 欧美一级毛片无遮无挡 | 自拍偷拍二区 | 欧美性大战久久久久久久 | 国产精品视频免费一区二区三区 |