編輯:關於Android編程
本系列博文我想圍繞在Android中的一些優化細節和大家進行分享。Android中的優化可謂又是一重任,Android不足以像PC端具有很高的內存執行空間給我們用來重量級使用開銷。有限的內存資源限制了我們的擴展方向。所以,在Android中的內存優化以及性能優化成為了一個攻城獅不可忽略的重點所在。本系列博文關於性能優化我會分為一下4個模塊來和大家分享:
(1)Android性能優化 一 SQLite數據庫
(2)Android性能優化一布局優化
(3)Android性能優化 一 數據優化
(4)Android性能優化一 網絡優化
今天我們先一起來了解下在Android中的SQLite數據庫操作方面有哪些需要優化和注意的地方。
Android中對於SQLite數據庫的操作,系統為我們提供了很方便的實現。我們只需要創建自己的一個類繼承SQLiteOpenHelper類並實現其中的onCreate方法和onUpgrade方法即可。在數據庫優化方面,SQLite和其他數據庫例如 Oracle、SQL Server、 My Sql等等,一樣擁有相同的原理,只是SQLite是一種嵌入式的數據庫,在移動端手機中使用比較合適。對於SQLite的優化,我們可以分為以下兩類:
1> 索引
2>事務
關於數據庫創建索引想必大家都比較熟悉。索引給我們帶來的好處是顯而易見的。一個千萬級的數據,索引的存在使查詢數據的速度升華為一個更優的高度。同樣,在查詢速度提升的同時,創建索引所帶來的開銷也是不可忽視的。有利必有弊,所以適當的情況下創建索引,會給我們的數據查詢帶來質的變化。
了解了創建索引的優點和缺點,我們看下在Android中的SQLite數據庫創建索引的方式:
從上面代碼我們看到,在onCreate方法中只需要使用SQLiteDatabase實例db調用execSQL方法執行創建創建索引的SQL語句即可。索引的使用適合在當某個字段查詢頻率高,而更新操作頻率低的情況下並且經常有范圍的查詢(>,< >=,<=,=)已經對order by 和group by的操作。對於SQLite創建索引我們先說到這裡,對於索引還不太了解的童靴,可以看下這篇文章:SQLite 索引
了解完了索引,下面我們繼續探討SQLite的事務。
對於事務,就是數據庫的一次原子性的執行操作。原子性的執行操作為數據的整體性執行帶來的可靠安全性。在SQLite中,如果我們默認事務(會為每個插入和更新都創建一次事務,並且在每次插入和更新後會立刻提交本次操作),即沒有手動創建事務,假設此時有1000條數據,那麼數據的執行流程是 創建事務 -> 執行插入或更新操作 -> 提交事務,這樣的流程會執行1000次。如果我們手動創建了事務,則執行流程為: 創建事務 -> 執行1000條SQL數據操作 -> 提交事務。很明顯,我們在SQLite中使用事務可以為插入和更新操作帶來很大的優化。下面來看在SQLite中如何使用事務:
從上圖我們看到,執行一次事務分為了四步,分別是:開始事務 -> 執行SQL<喎?/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPiAtPjxzdHJvbmc+yejWw8rCzvHWtNDQs8m5pjwvc3Ryb25nPgogLT4gPHN0cm9uZz694cr4ysLO8Twvc3Ryb25nPjwvcD4KPHA+b2sswb249tb30qq1xMSjv+nO0sPH0tG+rb3pydzN6rHPo6zPwsPmwLS/tM/CttTT2lNRTGl0ZbXE0rvQqcbky/u1xNPFu6/PuL3ao7o8L3A+CjxwPjE+IDxzdHJvbmc+CsnZ08NjdXJzb3IuZ2V0Q29sdW1uSW5kZXgoKTwvc3Ryb25nPqO6yrnTw2N1cnNvci5nZXRDb2x1bW5JbmRleCgpo6zPtc2zu+G4+b7dwdDD+8C0u/HIocHQy/nU2rXEz8Kx6qOssci9z7rEyrGjrMv50tTO0sPHv8nS1Mq508NzdGF0aWO2qNLlz8Kx6qOs1rG9082ouf3PwrHqwLS78cihxLPB0KGjPC9wPgo8cD4yPjxzdHJvbmc+yrnTw1N0cmluZ0J1aWxkZXK78lN0cmluZ0J1ZmZlcsC0xrS909fWt/u0rjwvc3Ryb25nPqO6U1FM0+++5NfWt/u0rrXExrS907vytLS9qLbguPbB2cqxseTBv6OstMvKsc7Sw8e/ydLUyrnTw1N0cmluZ0J1aWxkZXK78lN0cmluZ0J1ZmZlcsC0xrS909fWt/u0rqOsvPXJ2bK7sdjSqrXE18rUtNW808OjrNXiuPayu7bgy7WjrLTzvNK2vLautcShozwvcD4KPHA+Mz48c3Ryb25nPrLp0a/KsaOs1ru3tbvY19S8utDo0qq1xCYjMjA1NDA7u/K94bn7PC9zdHJvbmc+o7rT0NCpza/Rpb/JxNzOqsHLvPK1paOs1Nqy6dGvyv2+3cqx1rG9072ryKuyv8r9vt278cihs/bAtKOsyLu689TZZ2V0tb3X1Ly6z+vSqrXExLPB0CYjMjA1NDA7oaPV4tH5tcSy2df3zazR+bvhtPjAtLK7sdjSqrXEz7XNs9fK1LS/qs/6us3Ay7fRoaPL+dLUo6zU2rLp0a/KsaOsztLDx9a7yKHX1Ly60OjSqrXE19a2zrrNveG5+6GjPC9wPgo8cD40PjxzdHJvbmc+Y3Vyc29yyrnTw7rz0qq8sMqxudix1Twvc3Ryb25nPqO6vLTU2rLp0a/N6r3hufu686OstffTw2N1cnNvci5jbG9zZSgpvavXytS0udix1aGjPC9wPgo8cD652NPaQW5kcm9pZNbQU1FMaXRlyv2+3b/itcTTxbuvo6y+zbrNtPO80rfWz+21vdXiwO+jrNPQsrvN17XEtdi3vbu5zfu088nxtuC24Mzh0NGho8/C0rvGqqOsztK9q7rNtPO80tK7xvC31s/t1NpBbmRyb2lk08W7r8+1wdC1xLXatv7GqqO6PGEgdGFyZ2V0PQ=="_blank" target="_blank" href="http://blog.csdn.net/u013718120/article/details/51351738">Android性能優化-布局優化
今年6月的Google I/O大會上,Android L的初次見面我相信讓會讓很多android粉絲有些小激動和小期待,當然作為開發者的我來說,激動不言而喻,畢竟這是自0
今天和大家聊一聊Android中關於FontMetrics的幾個屬性的理解,在Android中用畫筆繪制文字時,文字最終的大小是和繪制文字的字體的類型和字體的大小是相關的
greenDAO 是一個將對象映射到 SQLite 數據庫中的輕量且快速的 ORM 解決方案。 官方網站http://greendao-orm.com/ 讓我們開始吧
本文實例講述了Android基於socket實現的簡單C/S聊天通信功能。分享給大家供大家參考,具體如下:主要想法:在客戶端上發送一條信息,在後台開辟一個線程充當服務端,