原创 在Android中使用反射到底有多慢?

在Android中使用反射到底有多慢? 反射(Reflection)在Java和安卓開發過程中非常有用,但是反射的使用往往是APP嚴重性能問題的根本原因。下面我們通過分析幾個真實的案例來幫助我們更直觀的理解這個問題。 兩個真實的案例

原创 爲你的應用加速 - 安卓優化指南

爲你的應用加速 - 安卓優化指南 原則 每當我遇到性能問題,或者嘗試發現性能問題的時候,我會遵循如下原則: 堅持性能測試 - 不要用你的眼睛去優化性能。也許在你盯着同一個動畫看了幾次之後,你會開始相信他運行的越來越流暢了。數據不會

原创 Android UI性能優化詳解

Android UI性能優化詳解 設計師,開發人員,需求研究和測試都會影響到一個app最後的UI展示,所有人都很樂於去建議app應該怎麼去展示UI。UI也是app和用戶打交道的部分,直接對用戶形成品牌意識,需要仔細的設計。無論你的a

原创 App安全之網絡傳輸安全

App安全之網絡傳輸安全 移動端App安全如果按CS結構來劃分的話,主要涉及客戶端本身數據安全,Client到Server網絡傳輸的安全,客戶端本身安全又包括代碼安全和數據存儲安全。所以當我們談論App安全問題的時候一般來說在以下三

原创 Android性能優化之渲染篇

Android性能優化之渲染篇 1)Why Rendering Performance Matters 現在有不少App爲了達到很華麗的視覺效果,會需要在界面上層疊很多的視圖組件,但是這會很容易引起性能問題。如何平衡Design與

原创 Android性能優化之運算篇

Android性能優化之運算篇 1)Intro to Compute and Memory Problems Android中的Java代碼會需要經過編譯優化再執行的過程。代碼的不同寫法會影響到Java編譯器的優化效率。例如for

原创 Android提高第二十篇之MediaPlayer播放網絡音頻

Android提高第二十篇之MediaPlayer播放網絡音頻 以前曾經地介紹過MediaPlayer的基本用法,這裏就深入地講解MediaPlayer的在線播放功能。本文主要實現MediaPlayer在線播放音頻的功能,由於在線視頻

原创 Android提高十七篇之多級樹形菜單的實現

Android提高十七篇之多級樹形菜單的實現 在Android裏要實現樹形菜單,都是用ExpandableList(也有高手自己繼承ListView或者LinearLayout來做),但是ExpandableList一般只能實

原创 Android設置中“強行停止”詳解

Android設置中“強行停止”詳解 最近工作上遇到了廣播接受不到的問題,查看了《Android 開發藝術探索》一書中關於廣播的發送和接受的章節(P356-P362)。其中(P358)介紹了從Android 3.1 之後廣播

原创 在Android中使用併發來提高速度和性能

在Android中使用併發來提高速度和性能 Android框架提供了很實用的異步處理類。然而它們中的大多數在一個單一的後臺線程中排隊。當你需要多個線程時你是怎麼做的? 衆所周知,UI更新發生在UI線程(也稱爲主線程)。在主線程中的

原创 使用ClassyShark壓縮你的項目

使用ClassyShark壓縮你的項目 最近,我們的項目中用到了一個重要的框架,它爲我們的產品提供了一個非常關鍵的功能。 你可以想象一下,這個框架的SDK是相當巨大的,它包含45K的方法:這足以使我們的項目(已經用到了Suppo

原创 安卓字體渲染器

安卓字體渲染器 任何一個有幾年的客戶端應用開發經驗的開發者都會知道文本渲染有多複雜。至少我在2010年開始寫libhwui(基於OpenGL的安卓2D繪製API)之前是這麼認爲的。在開始寫libhwui後,我意識到如果試圖用GPU

原创 常見的八種導致 APP 內存泄漏的問題

常見的八種導致 APP 內存泄漏的問題 像 Java 這樣具有垃圾回收功能的語言的好處之一,就是程序員無需手動管理內存分配。這減少了段錯誤(segmentation fault)導致的閃退,也減少了內存泄漏導致的堆空間膨脹,讓編

原创 APK瘦身記,如何實現高達53%的壓縮效果

APK瘦身記,如何實現高達53%的壓縮效果 1、我是怎麼思考這件事情的 APK是Android系統安裝包的文件格式,關於這個話題其實是一個老生常談的題目,不論是公司內部,還是外部網絡,前人前輩已經總結出很多方法

原创 APK瘦身實踐

APK瘦身實踐 因爲推廣的需要,公司需要把APK的大小再“減小”一下,4M以內! 當達到4M以內之後,公司建議說,能否再壓壓?2M如何? 瘦身前 因爲平時就考慮到大小的限制,所以很多工作已經做過了,如下列舉現在的狀態: 7.3