編輯:關於Android編程
Android性能優化是Android開發中經常遇見的一個問題,接下來將對Android性能優化方面的知識點做一個簡單的梳理和總結,將從工具和代碼兩方面進行梳理。所謂工欲善其事必先利其器,本文首先來看一下Android性能優化有哪些得力的工具。
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Debug.startMethodTracing(); } @Override protected void onDestroy() { super.onDestroy(); Debug.stopMethodTracing(); } }在結束後會生成".trace"文件,然後 通過命令traceview *.trace對數據文件進行分析。startMethodTracing共有6個重載的方法,在調用時可以根據需要進行調用。如果采用不帶參數的方法,產生的“.trace"文件默認將存放到外置存儲器根目錄下(/sdcard/),名為”dmtrace.trace",為了方便這裡建議自定義trace的名稱(startMethodTracing(String traceName))。 方法二:traceview也可以在ddms中直接使用,即在ddms中在選中某個要進行監控的進程後,點擊如圖所示的小圖標開始監控,在監控結束時再次點擊小圖標,ddms會自動打開traceview視圖: vcq9oaMKPGJyPgoKPGgzPsrTzby94rbBo7o8L2gzPgrPwsPmtcTK0828ysfO0tTaZGRtc9bQvOC/2GNvbS50ZW5jZW50Lm1vYmlsZXFxvfizzKOoy+ax49GhtcTSu7j2o6nJ+rPJtcShowo8aW1nIHNyYz0="/uploadfile/Collfiles/20140509/2014050909131720.jpg" alt="\"> 可以看出整個traceview視圖分為上下兩大部分,上半部分被稱為時間軸面板(Timeline Panel),下半部分被稱為分析面板(Profile Panel)。 時間軸面板
界面上方的尺子代表了MethodTracing的時間段(從Debug.startMethodTracing()到Debug.stopMethodTracing()的時間)。 每個線程的函數執行時間圖處於和線程名同一行的右側。 注1:線寬度代表執行該函數本身操作所用的時間。 注2:函數所調用的子函數時間線夾雜在該函數本身操作所用的時間線之間。 注3:時間線的高度不知道有什麼意義。 注4:函數本身是嵌套的。 注5:每行下面粗的線段標注了Profile Panel中被選中函數調用所消耗的時間段。每個線段對應一次函數的運行。分析面板
Exclusive time是該函數本身基本操作(不包括子函數調用)的時間。 Inclusive time是該函數調用所用的時間(包括子函數調用)的時間。 列1:"Name"表示函數名。 雙擊函數名,可以看到在上半界面是時間軸面圖(Timeline Panel)看他的所消耗的時間段。(用粗的線段標注)。 雙擊函數名左邊的"+"展開後可以看到,該函數的"parents"和"children" 列2:"incl%"表示函數的Inclusive time在整個MethodTracing時間裡占的百分比。 列3:"Inclusive"表示Inclusive time。 列4:"Excl%"表示函數的Exclusive time在整個MethodTracing時間裡占的百分比。 列5:"Exclusive"表示Exclusive time。 列6:"Calls+RecurCalls/Total"表示對函數的調用次數(包括遞歸調用)。如圖2的nativeFinished()那列為"14+0"表示14次非遞歸調用,0次遞歸調用. 列7:新的版本(比如2.1)還有"time/calls"表示平均的調用時間(即Inclusive time/ total calls)。如圖3。來自google文檔的圖2感覺有老了。 注:如果函數A調用函數B那麼函數A稱為函數B的"parents",函數B稱為函數A的"children."
前言?android5.X新增的一個控件Toolbar,這個控件比ActionBar更加自由,可控,由於以前的ActionBar的靈活性比較差,所以google逐漸使用T
前言在Android開發中, 我們經常會遇到一些場景, 需要以一些特殊的形狀顯示圖片, 比如圓角矩形、圓形等等。關於如何繪制這類形狀, 網上已經有很多的方案,比如自定義控
說到線程,我想大家都不陌生,因為在開發時候或多或少都會用到線程,而通常創建線程有兩種方式: 1、繼承Thread類 2、實現Runnable接口雖說這兩種方式都可以創建出
繼上一篇時間和日期設置的示例之後,今天來介紹Android的布局組件中有關於時間和日期的設置的組件,希望對大家有所幫助。具體如下:時間日期設置組件:TimePicker、