成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

提高Android用戶體驗三部曲之速度快

移動開發 移動應用 Android
本文我們將介紹提高Android用戶體驗三部曲中最重要的速度快,我們從“避免建立對象”、“使用本地方法”、“使用實現類比接口好”等10個方面介紹如何讓你的應用速度快。

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

[[20747]]

速度快

你不能假設手機與桌面系統和服務器一樣提速,更多的是你要關注你的代碼是否高效。

編寫高效的Android代碼,應遵循兩個原則:

不要做不必要的事

不要分配不必要的內存

以下是一些達到此目標的小技巧(有一些技巧是與oo的原則沖突,斟酌使用場景):

1、避免建立對象

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

2、使用本地方法

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

3、使用實現類比接口好

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

調用一個接口的引用會比調用實體類的引用多花費一倍的時間

4、不用getter和setter

應該直接訪問變量

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]); 

另外,永遠不要在for的第二個條件中調用任何方法

6、給常量加上final

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

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

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

現在,類不再需要方法,因為在成員變量初始化的時候,會將常量直接保存到類文件中。用到intVal的代碼被直接替換成42,而使用strVal的會指向一個字符串常量,而不是使用成員變量。

7、謹慎使用foreach

foreach可以用在實現了Iterable接口的集合類型上。foreach會給這些對象分配一個iterator,然后調用hasNext()和next()方法。你***使用foreach處理ArrayList對象,但是對其他集合對象,foreach相當于使用 iterator

8、避免使用枚舉

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

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

  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.   }  

Foo$Inner是一個完全獨立的類,它要直接訪問Foo的私有成員是非法的。編譯器會自動生成一個方法:

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

內部類在每次訪問”mValue”方法時,都會調用這個靜態方法。同理,內部類要訪問私有方法也是如此。

10、避免使用浮點數

嵌入式處理器通常沒有支持浮點運算的硬件,所有對”float”和”double”的運算都是通過軟件實現的

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

好了,這便是我們為大家準備的Android用戶體驗三部曲的速度快篇,在以后的內容中我們會介紹做到及時響應和無縫。

【編輯推薦】

  1. Android Widget設計指南
  2. Android 3.0 SDK(R10)及ADT10.0.0正式發布
  3. 詳解谷歌官方教程 Android R5 NDK下載及安裝
  4. 下載Android 3.0預覽版(R9)SDK入門包
  5. 圖文詳解Android 3.0 SDK安裝教程
責任編輯:佚名 來源: JavaEye
相關推薦

2009-09-14 09:04:17

CCNA考試CCNA

2011-03-25 09:56:40

Nagios 安裝

2011-03-09 09:30:52

Mina

2010-07-17 01:12:31

Telnet服務

2010-09-26 14:39:40

DHCP故障分析

2011-08-03 10:33:05

網絡管理網絡拓撲管理

2013-06-28 09:35:04

Hypervisor虛擬化成本

2010-09-06 09:22:26

CSS語法

2011-03-21 09:22:46

Tomcat

2022-10-10 09:10:51

家庭網絡網絡

2017-02-07 14:50:39

華為

2017-04-11 09:07:20

互聯網

2015-05-12 10:42:53

程序員代碼

2012-09-10 16:19:00

云計算公共云

2011-08-29 16:26:50

魔獸世界LUA

2010-09-14 16:54:18

2018-03-18 15:51:59

人工智能潛力首席數據官

2018-03-19 09:35:37

人工智能

2010-05-12 10:51:06

2019-03-28 14:45:33

數據安全數據泄露信息安全
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久五月天 | 精品免费视频 | 天天夜夜操 | 高清成人av | 免费不卡av| 一区二区亚洲 | 久久久不卡网国产精品一区 | 国产日韩一区二区三免费高清 | 国产日韩一区二区三免费 | 精品一区欧美 | 日韩av中文 | 天天操天天天 | 久久久久久久久久久爱 | 精品av| 日韩精品成人 | 影音先锋中文字幕在线观看 | 欧美日韩亚洲视频 | 99国产精品99久久久久久粉嫩 | www日韩高清 | 天天草狠狠干 | 丝袜一区二区三区 | 一区二区在线免费观看 | 成人毛片视频免费 | 亚洲av毛片成人精品 | 91传媒在线观看 | 人人干在线视频 | 九九久视频| 成人免费在线播放视频 | 日本久久黄色 | 夜夜干夜夜操 | 91久久久久久久久久久 | 男人av的天堂 | 农村真人裸体丰满少妇毛片 | 久久精品小视频 | 97久久精品午夜一区二区 | 中国大陆高清aⅴ毛片 | 久久久成人精品 | 免费精品 | 成人小视频在线免费观看 | 狠狠干天天干 | 99re国产精品 |