首先祝你們聖誕快樂! :smile: :+1:javascript
該篇博客靈感來自以前的一片博客:java
和一個神庫的issue:android
android-hidden-api
: 可讓你使用安卓系統中 internal/hidden
的方法。好比, Activity
裏有一個@hide的方法:github
/** * @hide */
public final boolean isResumed() {
return mResumed;
}複製代碼
沒用該庫以前引用這個方法會報找不到該方法:api
可是使用該庫後, 編譯正常:app
編譯經過了, 實際運行怎麼樣呢, 該方法可運行正常, 可是不保證全部系統, 同時也不能保證全部內部方法可運行。褲子不錯, 不要貪用哦, 要多測試, 並加入異常處理。jvm
詳細使用可參考鴻神以前的文章:編輯器
Android 輕鬆的查看與使用hide與internal API
1 經常使用的加速方法, 你們可能都配置好了, 主要下面幾個:
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true複製代碼
固然,上面的這些參數也能夠配置到前面的用戶目錄下的gradle.properties文件裏,那樣就不是針對一個項目生效,而是針對全部項目生效。
gradle.properties配置文件主要就是增大gradle運行的java虛擬機的大小,讓gradle在編譯的時候使用獨立進程,讓gradle能夠平行的運行。
as安裝目錄/bin/studio64.vmoptions or studio.vmoptions(linux下,其餘系統找相似文件)
使用文本編輯器打開,找到起始兩行,以下
-Xms128m
-Xmx750m
修改最小值和最大值,建議爲
-Xms256m
-Xmx2048m
在主APP模塊的build.gradle文件中,添加下面的代碼:
dexOptions {
incremental true
}複製代碼
2 屏蔽部分Task
咱們知道, 編譯的時候, 是有不少Task運行的, 可在右側 gradle
標籤下看到:
當咱們正常編譯的時候, 這些Task都是會運行的, 咱們看下編譯log:
不少Task後面都有 UP-TO-DATE
也就是Task已經是最新, 這些基本不耗時, 其餘都耗時, 項目大, 同時依賴多個庫, 那麼慢是正常的了...
下面, 哦,,, 沒錯, 就是下面,
屏蔽不須要的Task, 好比一些測試Task, 中間含有Test
的一些Task, 把這些屏蔽掉:
在項目的根build.gradle腳本里添加屏蔽Task的代碼:
allprojects {
repositories {
jcenter()
}
//skip Test tasks
gradle.taskGraph.whenReady {
tasks.each { task ->
if (task.name.contains("Test"))
{
task.enabled = false
}
}
}
}複製代碼
這樣sync, 編譯, 見證奇蹟的時刻:
Oh, 聖誕快樂 :smile: 沒錯, 好多Task後面被標記了SKIPPED
, 那這些Task都被無情的忽視了, 酸爽。
固然還能夠屏蔽掉其餘Task, 歡迎討論。編譯時間的提高效果仍是很明顯的, 項目越大越明顯。
到這裏就差很少了, 固然, 網上還有不少加速編譯的方法, 最好用的仍是阿里的
這個還沒使用的, 趕忙用起來, 趕忙用起來, 趕忙用起來, 不解釋。
到這裏該說再見了, 有任何問題歡迎評論, 感謝您的閱讀, 聖誕快樂!
掘金技術徵文:
gold.xitu.io/post/58522d…