Wednesday, December 31, 2014

好用的第3方套件與相對proguard腳本

文章攢寫時間︰2014/12/31 16:40

Dropbox

官方的套件。
透過該套件可以輕鬆的與Dropbox將資料上傳或下載。

需要套件
●dropbox-android-sdk-1.6.jar
●json_simple-1.1.jar

Listviewanimations 

ListviewAnimations這個套件優化了ListView,
讓其list item可以上下拖曳,
甚至結合了眾多第3方套件,
讓UX使用體驗更順暢。

需要套件(在app/libs/底下直接貼上jar檔並對該jar檔按右鍵選擇add as Library)
●listviewanimations_lib-core-slh_3.1.0.jar
●listviewanimations_lib-core_3.1.0.jar
●listviewanimations_lib-manipulation_3.1.0.jar
●nineoldandroids_library.jar

build.gradle檔需加上
dependencies {
    compile 'se.emilsjolander:stickylistheaders:2.5.2'
}
proguard腳本需加上
-keep class com.nhaarman.listviewanimations.** {*; }

Volley

Volley是Google提供的套件
目的讓Android App更方便、快速的使用HTTP連線。

此外,
Volley還提供cache機制,
倘若重覆請求連線,
亦提供一個更快速顯示資料的可行方案,
如果頁面失去焦點,
Volley也能確保資料不會回去頁面造成相關的crash。

需要套件
●volley-sources.jar

UIL (Universal Image Loader)

UIL替Android開發者省下大量處理圖片記憶體洩漏可能發生的機會,
並提供各種cache和存放方式,
讓圖片大量下載更加輕鬆。

需要套件
●universal-image-loader-1.9.3.jar

或在Android Studio專案app/build.gradle檔裡加上
dependencies {
    compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
}
直接從線上Download該套件並使用。

Glide


需要套件
●glide-3.4.0.jar
●glide-3.4.0-javadoc.jar
●glide-okhttp-integration-1.1.0.jar
●glide-volley-integration-1.1.0.jar
proguard腳本加上
-keep class com.bumptech.glide.integration.okhttp.** {*; }
-dontwarn com.bumptech.glide.integration.okhttp.**

Sunday, December 28, 2014

[Android Studio] 替Jar檔添加Jovadoc文件讓寫Code更方便

文章攢寫時間︰2014/12/29 12:12

一、前言

在下載第3方套件(jar檔)時,
常會看到除了xxx.jar檔外,
還有xxx-javadoc.jar、xxx-sources.jar,
這些jar檔其實是讓你在寫程式時,
可以看的到jar的說明和用法(更詳細的解說請參考GTW部落格)。


二、文章開始

在Android Studio要怎麼樣替jar檔添加javadoc呢?

步驟1

假設我們已經在用xxx.jar檔,
為了能看到jar檔的說明文件,
我們額外將xxx-source.jar也放進libs資料夾。

步驟2

在您想看的函式或Class位置(譬如我現在想看在jar檔裡TimeObserver這個類別是幹嘛用的),
點擊Ctrl(Windows環境) / Command(Mac環境)+滑鼠左鍵
此時會看到類似以下的畫面。
在未與javadoc連結時,
看到的都是封裝的程式源碼。

步驟3

1.點擊右上角Attach Sources...
2.選擇剛才加入的xxx.sources.jar檔

此時可以看到,
jar檔的源始碼和說明文件通通都顯示岀來了。

滑鼠移到類別名稱或函式上,
也會自動跳岀說明。

如果沒有跳岀說明視窗,到
[Android Studio]-->[Preferences]-->[Editor]-->將[Show quick doc on mouse move Delay(ms)]打勾-->[Apply]
就會看到說明視窗囉!

參考來源

1. GTW
2. stackoverflow

Monday, December 15, 2014

unsupported Gradle DSL method found: 'instrumentTestCompile()

文章攢寫時間︰2014/12/16 12:30

一、問題

在編譯Espresso時遇到以下錯誤
Error:(46, 0) Build script error, unsupported Gradle DSL method found: 'instrumentTestCompile()'!

二、解決辦法

instrumentTestCompile() 該函式在最新版Gradle plugin已被更名成androidTestCompile()。

使用Gradle時遇到 Failed to apply plugin [id 'com.android.application'] > Gradle version 1.10 is required. Current version is 2.x.

文章攢寫時間︰2014/12/16 11:40
文章參考來源︰StackOverFlow

一、問題

在使用Espresso時,輸入指令 $gradle connectedInstrumentTest 時遇到以下問題

Failed to apply plugin [id 'com.android.application']
> Gradle version 1.10 is required. Current version is 2.2. If using the gradle wrapper, try editing the distributionUrl in /Users/xxxx/AndroidStudioProjects/xxxxx/gradle/wrapper/gradle-wrapper.properties to gradle-1.10-all.zip

二、解決辦法

訊息:

"Gradle version 1.10 is required. Current version is 2.0"

發生時機:

嚐試編譯需要Gradle 1.10版本的Android專案時,發現到專案正在使用Gradle 2.0版。

解決辦法:

使用 Gradle Wrapper

步驟:

  1. 確認 在Android專案裡的Gradle-wrapper properties檔中,distributionUrl 指定成 gradle-1.10-all.zip ,檔案路徑位址為:
    MyAndroidProject/gradle/wrapper/gradle-wrapper.properties
  2. 在專案的最頂層目錄結構(擁有可執行檔的那一層,i.e. gradlew and gradlew.bat)執行Run Gradle Wrapper command。

    For Unix-like OS:
    ./gradlew wrapper
    For Windows OS:
    gradlew.bat wrapper
  3. 執行Gradle的編譯指令 Gradle Wrapper.
    For Unix-like OS:
    ./gradlew build
    For Windows OS:
    gradlew.bat build

Wednesday, December 10, 2014

使用adb模擬手機觸控事件

文章攢寫時間︰2014/12/11 15:30

滑動你的手機


$adb shell input touchscreen swipe 0 800 0 100 1000

解說:我的手機是Note3,螢幕解析度為寬(x)為1080,高(y)為1920,
這行指令是告訴手機要從x1(左)-->0滑到x2(右)-->0,y要從y1(下)-->800滑到y2(上)-->100
以1000(ms)的速度滑動。

點擊你的手機

$adb shell input touchscreen tap 1079 1919

解說:我的手機是Note3,螢幕解析度為寬(x)為1080,高(y)為1920,
這行指令是告訴手機我要點擊手機螢幕在x-->1079和y-->1919,也就是螢幕最右下角的點。

腳本暫停

$adb shell sleep 1
解說:跟adb表示需要停止1秒的時間再繼續執行觸控腳本。