renderscriptandroid
1. Android應用性能優化的內容簡介
今天的Android應用開發者經常要想盡辦法來提升程序性能。由於應用越來越復雜,這個問題也變得越來越棘手。本書主要介紹如何快速高效地優化應用,讓應用變得穩定高效。你將學會利用Android SDK和NDK來混合或單獨使用Java、C/C++來開發應用。書中還特別講解了如下內容:
· 一些OpenGL的優化技術以及RenderScript(Android的新特性)的基礎知識;
· 利用SDK來優化應用的Java代碼的技巧;
· 通過高效使用內存來提升性能的技巧;
· 延長電池使用時間的技巧;
· 使用多線程的時機及技巧;
· 評測剖析代碼的技巧。
把本書的內容學以致用,你的編程技術就會得到關鍵性的提升,寫出的應用就會更為健壯高效,從而廣受用戶好評,並最終獲得成功。
目錄
第1章Java代碼優化1.1Android如何執行代碼1.2優化斐波納契數列1.2.1從遞歸到迭代1.2.2BigInteger1.3緩存結果1.4API等級1.5數據結構1.6響應能力1.6.1推遲初始化1.6.2StrictMode1.7SQLite1.7.1SQLite語句1.7.2事務1.7.3查詢
第1章Java代碼優化1.1Android如何執行代碼1.2優化斐波納契數列1.2.1從遞歸到迭代1.2.2BigInteger1.3緩存結果1.4API等級1.5數據結構1.6響應能力1.6.1推遲初始化1.6.2StrictMode1.7SQLite1.7.1SQLite語句1.7.2事務1.7.3查詢1.8總結
第2章NDK入門2.1NDK里有什麼2.2混合使用Java和C/C++代碼2.2.1聲明本地方法2.2.2實現JNI粘合層2.2.3創建Makefile2.2.4實現本地函數2.2.5編譯本地庫2.2.6載入本地庫2.3Application.mk2.3.1為(幾乎)所有設備優化2.3.2支持所有設備2.4Android.mk2.5使用C/C++改進性能2.6本地Acitivity2.6.1構建缺失的庫2.6.2替代方案2.7總結
第3章NDK進階3.1匯編3.1.1最大公約數3.1.2色彩轉換3.1.3並行計算平均值3.1.4ARM指令3.1.5ARM NEON3.1.6CPU特性3.2C擴展3.2.1內置函數3.2.2向量指令3.3技巧3.3.1內聯函數3.3.2循環展開3.3.3內存預讀取3.3.4用LDM/STM替換LDR/STD3.4總結
第4章高效使用內存4.1說說內存4.2數據類型4.2.1值的比較4.2.2其他演算法4.2.3數組排序4.2.4定義自己的類4.3訪問內存4.4排布數據4.5垃圾收集4.5.1內存泄漏4.5.2引用4.6API4.7內存少的時候4.8總結
第5章多線程和同步5.1線程5.2AsyncTask5.3Handler和Looper5.3.1Handler5.3.2Looper5.4數據類型5.5並發5.6多核5.6.1為多核修改演算法5.6.2使用並發緩存5.7Activity生命周期5.7.1傳遞信息5.7.2記住狀態5.8總結
第6章性能評測和剖析6.1時間測量6.1.1System.nanoTime()6.1.2Debug.threadCpuTimeNanos()6.2方法調用跟蹤6.2.1Debug.startMethodTracing()6.2.2使用Traceview工具6.2.3DDMS中的Traceview6.2.4本地方法跟蹤6.3日誌6.4總結
第7章延長電池續航時間7.1電池7.2禁用廣播接收器7.3網路7.3.1後台數據7.3.2數據傳輸7.4位置7.4.1注銷監聽器7.4.2更新頻率7.4.3多種位置服務7.4.4篩選定位服務7.4.5最後已知位置7.5感測器7.6圖形7.7提醒7.8WakeLock7.9總結
第8章圖形8.1布局優化8.1.1相對布局8.1.2合並布局8.1.3重用布局8.1.4ViewStub8.2布局工具8.2.1層級視圖8.2.2layoutopt8.3OpenGL ES8.3.1擴展8.3.2紋理壓縮8.3.3Mipmap8.3.4多APK8.3.5著色8.3.6場景復雜性8.3.7消隱8.3.8渲染模式8.3.9功耗管理8.4總結
第9章RenderScript9.1概覽9.2Hello World9.3Hello Rendering9.3.1創建渲染腳本9.3.2創建RenderScriptGL Context9.3.3展開RSSurfaceView9.3.4設置內容視圖9.4在腳本中添加變數9.5HelloCompute9.5.1Allocation9.5.2rsForEach9.5.3性能9.6自帶的RenderScript API9.6.1rs_types.rsh9.6.2rs_core.rsh9.6.3rs_cl.rsh9.6.4rs_math.rsh9.6.5rs_graphics.rsh9.6.6rs_time.rsh9.6.7rs_atomic.rsh9.7RenderScript與NDK對比9.8總結