日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
提高Android用戶體驗(yàn)三部曲之速度快

前段時(shí)間我們對(duì)幾個(gè)谷歌官方文檔進(jìn)行了介紹,本文為提高Android用戶體驗(yàn)的三部曲,出色的用戶體驗(yàn)有三個(gè)特征:速度快、響應(yīng)及時(shí)以及無縫。下面的信息幫助你的應(yīng)用如何能夠在Android上實(shí)現(xiàn)這些特征。我們將詳解如何讓你的應(yīng)用變得速度快,關(guān)于及時(shí)響應(yīng)和無縫我們將在以后的時(shí)間里再向大家介紹。

速度快

你不能假設(shè)手機(jī)與桌面系統(tǒng)和服務(wù)器一樣提速,更多的是你要關(guān)注你的代碼是否高效。

編寫高效的Android代碼,應(yīng)遵循兩個(gè)原則:

不要做不必要的事

不要分配不必要的內(nèi)存

以下是一些達(dá)到此目標(biāo)的小技巧(有一些技巧是與oo的原則沖突,斟酌使用場(chǎng)景):

1、避免建立對(duì)象

例如,int數(shù)組比Integer數(shù)組好,同理,這適用于所有基本類型的組合

2、使用本地方法

不要吝惜使用String.indexOf(), String.lastIndexOf()等特殊實(shí)現(xiàn)的方法(specialty methods)。這些方法都是使用C/C++實(shí)現(xiàn)的

3、使用實(shí)現(xiàn)類比接口好

 
 
 
  1. Map myMap1 = new HashMap();
  2. HashMap myMap2 = new HashMap();

調(diào)用一個(gè)接口的引用會(huì)比調(diào)用實(shí)體類的引用多花費(fèi)一倍的時(shí)間

4、不用getter和setter

應(yīng)該直接訪問變量

5、將成員變量緩存到本地

 
 
 
  1. for (int i = 0; i< this.mCount; i++)           
  2.     dumpItem(this.mItems[i]);

***改成這樣:

 
 
 
  1.   int count = this.mCount;
  2.   Item[] items = this.mItems;
  3.   for (int i = 0; i< count; i++) dumpItems(items[i]);

另外,永遠(yuǎn)不要在for的第二個(gè)條件中調(diào)用任何方法

6、給常量加上final

 
 
 
  1. static int intVal = 42;
  2. static String strVal = “Hello, world!”;

編譯器會(huì)生成一個(gè)叫做的初始化類的方法,當(dāng)類***次被使用的時(shí)候這個(gè)方法會(huì)被執(zhí)行。方法會(huì)將42賦給intVal,然后把一個(gè)指向類中常量表的引用賦給strVal。當(dāng)以后要用到這些值的時(shí)候,會(huì)在成員變量表中查找到他們。

 
 
 
  1. static final int intVal = 42;
  2. static final String strVal = “Hello, world!”;

現(xiàn)在,類不再需要方法,因?yàn)樵诔蓡T變量初始化的時(shí)候,會(huì)將常量直接保存到類文件中。用到intVal的代碼被直接替換成42,而使用strVal的會(huì)指向一個(gè)字符串常量,而不是使用成員變量。

7、謹(jǐn)慎使用foreach

foreach可以用在實(shí)現(xiàn)了Iterable接口的集合類型上。foreach會(huì)給這些對(duì)象分配一個(gè)iterator,然后調(diào)用hasNext()和next()方法。你***使用foreach處理ArrayList對(duì)象,但是對(duì)其他集合對(duì)象,foreach相當(dāng)于使用 iterator

8、避免使用枚舉

枚舉變量非常方便,但不幸的是它會(huì)犧牲執(zhí)行的速度和并大幅增加文件體積

9、將內(nèi)部類需要訪問的外部變量或方法聲明在包范圍內(nèi)

 
 
 
  1. public class Foo {
  2.   private int mValue;
  3.   public void run() {
  4.       Inner in = new Inner();
  5.       mValue = 27;
  6.       in.stuff();
  7.   }
  8.   private class Inner {
  9.       void stuff() {
  10.       System.out.println(Foo.this.mValue);
  11.       }
  12.   }
  13. }

Foo$Inner是一個(gè)完全獨(dú)立的類,它要直接訪問Foo的私有成員是非法的。編譯器會(huì)自動(dòng)生成一個(gè)方法:

 
 
 
  1. /*package*/ static int Foo.access$100(Foo foo) {
  2.   return foo.mValue;
  3. }

內(nèi)部類在每次訪問”mValue”方法時(shí),都會(huì)調(diào)用這個(gè)靜態(tài)方法。同理,內(nèi)部類要訪問私有方法也是如此。

10、避免使用浮點(diǎn)數(shù)

嵌入式處理器通常沒有支持浮點(diǎn)運(yùn)算的硬件,所有對(duì)”float”和”double”的運(yùn)算都是通過軟件實(shí)現(xiàn)的

通過將內(nèi)部類訪問的變量和函數(shù)聲明由私有范圍改為包范圍,我們可以避免這個(gè)問題。這樣做可以讓代碼運(yùn)行更快,并且避免產(chǎn)生額外的靜態(tài)方法。(遺憾的是,這些成員變量和方法可以被同一個(gè)包內(nèi)的其他類直接訪問,這與經(jīng)典的OO原則相違背。因此當(dāng)你設(shè)計(jì)的時(shí)候應(yīng)該謹(jǐn)慎使用這條優(yōu)化原則)

好了,這便是我們?yōu)榇蠹覝?zhǔn)備的Android用戶體驗(yàn)三部曲的速度快篇,在以后的內(nèi)容中我們會(huì)介紹做到及時(shí)響應(yīng)和無縫。


當(dāng)前名稱:提高Android用戶體驗(yàn)三部曲之速度快
網(wǎng)站路徑:http://www.5511xx.com/article/coisipp.html