2010-08-23 69 views
4

我想對我的android應用程序進行優化。Android應用程序的優化

任何人都可以請告訴有什麼不同的方式來優化代碼和Android的性能?

我經歷了一個工具,即Zipalign: an Easy Optimization

其他工具是否可用?

謝謝。

+0

使用的Android NDK的未來遊客哪裏有可能。 – Pentium10 2010-08-23 07:10:59

+3

使用C++編寫可怕的代碼和使用Java編寫代碼一樣簡單。 – EboMike 2010-08-23 07:19:29

+0

寫你的代碼,分析它,確定你的瓶頸,然後優化 – Falmarri 2010-08-23 07:24:29

回答

5

有沒有簡單的工具,只是神奇地讓你的應用程序更快(zipalign只是改善加載時間)。你需要學習如何編寫高性能代碼。 SDK有一些有用的提示:如果你有一些CPU密集型重負載,你可以用NDK重寫它。

請記住,優化代碼需要時間並可能引入錯誤。一定要分析你的代碼,找到瓶頸,並專注於讓這些速度變得更快。

+0

感謝您的建議。我將通過我提供的代碼和鏈接。 – 2010-08-23 08:00:17

+1

在大多數情況下,您可以在沒有NDK的情況下執行 - 可以使用Java編寫快速且安全的代碼 - 只需通過我發送的鏈接即可。最重要的是,避免分配,並將緩慢的計算放入工作線程中。只有你有一些非常複雜的計算,你可以考慮NDK。 – EboMike 2010-08-23 08:16:46

+0

謝謝EboMike。我正在引用您指定的鏈接。而我的應用程序非常簡單,並沒有太多的計算。 – 2010-08-23 08:22:54

3

最佳實踐通常比較明顯。您的應用程序很可能會有特定的獨特瓶頸。當您的手機在應用程序運行時檢查(設置過濾器)時檢查android日誌。檢查操作系統何時調用垃圾收集器以及刪除多少信息。

如果你正在加載任何文件到內存中請注意,Android的地方(至少以前)對文件最大大小的限制(4mb)可以加載到內存中。

你使用什麼類型的傳感器,如果有的話......如果是這樣,以及是否有更好的方式可以使用上述傳感器。

您是否在應用程序生命週期步驟中存儲了很多/很少的狀態。

+0

你好史蒂夫,我不知道如何把過濾器檢查日誌,而應用程序運行。而在我目前的應用程序中,我沒有使用任何傳感器。也不存儲任何應用程序狀態。 – 2010-08-23 08:13:03

+0

對不起,過濾器是特定的日食。你有沒有嘗試過使用調試器?我假設你正在使用日食:)(對不起,如果你沒有!...檢查ddms - http://developer.android.com/guide/developing/tools/ddms.html – Steve 2010-08-23 08:16:47

+0

雅我只使用eclipse,並嘗試使用調試器,但在調試器中不太瞭解它是如何工作的 – 2010-08-23 08:20:36

2

不要忘記刪除市場版本中的所有日誌。記錄成本很高,市場只會返回異常情況。記錄大多是不必要的,只應在開發中使用...