顯示具有 tool 標籤的文章。 顯示所有文章
顯示具有 tool 標籤的文章。 顯示所有文章

2012年4月15日 星期日

[Tool] Memory Analyzer Tool (MAT)

雖然現在手機在硬體上的限制已不如從前,效能也大大提升,但手機中的空間還是不比在電腦上,所以如果不需過多的 effort,盡量降低空間的使用仍是必要的,使用者很容易就安裝過多的 App 或是同時操作多個 App,那麼一個 App 能降低一點使用量,我認為全部加起來多少會有點影響,但並不說要在一開始開發時便以效能為一取向,這樣反而有點綁手綁腳,本末倒置了,除非效能是需求之一。

尤其在某些 UI 的操作上,若系統進行 Garbage Collection,則會讓 User 在操作時感覺到頓頓的,另外,圖片上的使用,很容易使得 App Out Of Memory(OOM)(每個 App 被分配的空間是 16M),因此可利用 Eclipse plugin - MAT 來找出在 App 中是那裡使用了大量空間,而且沒有做適當的釋出。

Install
  • Install MAT Plugin on Eclipse - Install New Software
    • http://download.eclipse.org/mat/1.1/update-site/
  • 開啟關閉 App 約五次,來觀察是否有正確的建立與回收物件
  • Dump HPROF file by DDMS
  • Convert HPROF format by Android Tool, hprof-conv
  • Open eclipse perspective, Memory Analyer and File --> Open Heap Dump...

  • Shallow Heap
    • 物件本身的記憶體使用量。
  • Retained Heap
    • 指物件本身 + 參照過來的物件們所使用的記憶體使用量。

如何妥善的使用 bitmap
Displaying Bitmaps Efficiently


* Reference
- 使用MAT(記憶體分析)工具查看Memory Leak ***
- HOWTO: Debug Memory Leak in Android
- Download MAT
- Android Memory Usage
- Avoiding memory leaks - Romain Guy ***
- Attacking memory problems on Android ***

2011年9月12日 星期一

[maven] build command

  • mvn [clean] package
  • mvn -o [clean] package
    • Offline Build.
  • mvn -Dbuild.stage=staging clean package
  • mvn -Dmaven.test.skip=false package
    • enable the unit testing.
  • mvn -Dmaven.test.skip=false test
    • testing only.
  • mvn -Dmaven.test.skip=true -Dbuild.stage=staging clean package

2011年9月10日 星期六

2011年8月4日 星期四

[Eclipse] Default JDK Version

Eclipse using JDK 1.5 by default. (?)

But @Override annotation is provided from JDK 1.6.

2011年7月23日 星期六

2011年4月7日 星期四

[Configuration] pom.xml

* Project Object Model (POM)
  • The fundamental unit of work in Maven.
  • An XML file that contains information about the project and configuration details used by Maven to build the project.
  • Contains default values for most projects, ex: the build directory, which is target; the source directory, which is src/main/java; the test source directory, which is src/main/test; and so on.

* 在 Maven 中,有三個內建的建構生命週期:
  • Default: 處理專案部署。
  • Clean: 處理專案資源清除。
  • Site: 處理專案文件。

* 使用 mvn 指令呼叫執行某個階段,都是呼叫某個 plugin 來執行,像是編譯時會使用 mvn compile,這會呼叫 Maven 的 maven-compiler-plugin,這個 plugin 在 Super POM 中會有預設值。

* plugin
  • maven-resources-plugin: 處理專案資源的複製。
  • maven-compiler-plugin: 負責專案的編譯。
  • maven-surefire-plugin: 負責專案的單元測試。
  • maven-jar-plugin: 負責專案的包裝。
  • maven-clean-plugin
    • Will delete the target directory by default. You may configure it to delete additional directories and files.
    • The directory in the fileset is a relative path inside a project,


* 可有以下關係
  • 繼承
  •   
          
           目前使用的 POM 版本
           組織或項目的唯一標誌,會成為預設的套件名稱  
           項目的通用名稱,這將成為你存放製品的資料夾名稱,通常就是專案名稱  
           產品版本  
           打包出來的檔案類別, ex: war, jar...  
      
    
  • 依賴
  •   
          
          組織或項目的唯一標誌  
          項目的通用名稱  
          版本  
          檔案類型 (war, jar...)  
          用於限制相應的依賴範圍,ex: compile, runtime...  
          用於連續依賴時  
          
        ...  
        
    
  • 合成

* Build
  
   
      打包後的檔案名稱
        
      打包檔案目錄  
        
        
            
        
      

        
            
              資源所在位置  
            
          
    


* Reference
- Introduction to the POM
- 我的Maven2之旅:五.pom.xml基本元素介绍
- maven 配置篇 之pom.xml(一) **
- JUnit Gossip: 使用 Maven
- JUnit Gossip: POM 設定檔
- JUnit Gossip: 建構生命週期
- Maven Clean plugin - Delete Additional Files Not Exposed to Maven

2011年4月4日 星期一

2011年1月23日 星期日

NetBeans

Define
-- 是由Sun建立的開放原始碼的軟體開發工具
-- 是一個開放框架,可擴展的開發平台,可以用於JavaC語言/C++等的開發,本身是一個開發平台。
-- 可以通過擴展外掛程式來擴展功能。
-- 是一種可重複使用的框架用於簡化其他桌面應用程式的開發。

模組化
-- 在 NetBeans Platform 平台中,應用軟體是用一系列的軟體模組(modular software components)建構出來。
-- 這些模組是一個jar檔(Java archive file)它包含了一組Java程 式的類別而它們實作全依據依 NetBeans 定義了的公開介面以及一系列用來區分不同模組的定義描述檔(manifest file)。
-- 好處: 用模組來建構的應用程式可只要加上新的模組就能進一步擴充。由於模組可以獨立地進行開發,所以由 NetBeans 平台開發出來的應用程式就能利用著第三方軟體,非常容易及有效率地進行擴充。 

應用開發
-- 當基於NetBeans 平台的應用被執行,平台主要類別的main方法便會被執行。可用的模組會被放安置在存儲器中,並且開始執行任務。通常模組會只在被需要時,其代碼才會被裝進記憶。
-- 應用程式能動態安裝模組。任何應用程式能包括更新模組,允許用戶申請下載的應用程式升級和加入新功能。這樣安裝,升級以及新發並行不必迫使用戶每再次下載整個應用程式。
-- 整個 Netbeans 平台提供對桌面應用程式常用的服務,允許開發者集中於僅限於他的應用程式的邏輯設計。

主要特徵
-- 用戶界面管理 User interface management (例如 選單和工具條)
-- 用戶設定管理 User settings management 
-- 存儲管理 Storage management (保留和裝任何種類數據) 
-- 視窗管理 Window management 
-- 術士框架 Wizard framework (一步一步支援對話框)


.Reference: Wiki