使用kotlin來提高安卓開發效率
這篇博文主要是介紹如何通過使用Kotlin,來提高我們開發安卓的效率,比如簡化程式碼,提高執行效率等等。當然,事物總會有兩面性,使用Kotlin也有一些劣勢,比如編譯時間“略長”於使用java。官方說是as faster as than java。但是keepsafe有一篇對二者進行編譯時速度的測試文章,如其文所示,確實也是相差”無幾”,但這個無幾的意思是說速度慢了一點點。
好了,牛皮不多吹,官方性質的話也不多說,咱們還是說點有用的。接下來,我們就分幾個步驟,來詳細的講解,如何在安卓開中,應用Kotlin來提高開發效率。
一、小試牛刀,優化findViewById。
作為安卓開發者,我們對findViewById()這個方法都很熟悉。我想大部分人,都會對大量的findview感到噁心。於是,有不少人,有如博主,就用了annotation(註解)來簡化findView的步驟。但用註解findView有明顯的缺陷:
1、註解本身的缺陷。對註解有所瞭解的朋友,都知道。註解採用反射機制,是在執行時,才對view進行findview。那麼,就會導致執行時效能的開銷,特別是影響到開啟activity或其它view的速度,雖然可能感覺不出來,可能是理論上和資料上的效能優化。但只要是優勢,我們就得說出來。
2、程式碼的行數增多(影響美觀和可閱讀性、想閱讀性)。如果activity的view比較多,activity宣告這些view的行數也會相應增加,導致開啟activity,首先看到的是一整排長長的都是宣告,多的可能達幾十行。
既然我列出了這兩個缺陷,那麼Kotlin肯定是能解決這兩個問題。如果解決不了,我也不會故意就講這兩個缺陷,我可能會講更多的,比如方法名真JB長,比如findview後還得cast。至於怎麼解決:
1、第一個問題,Kotlin官網只說了有這個優化,至於為什麼和資料型證據是沒給出來了,自己去做測試,也是有些難度和繁瑣,我們只能相信店大不欺客了。
2、第二個問題,我就用程式碼+註釋方式來解答。
// 這是xml檔案裡的TextView,注意一下id是helloTv
<TextView
android:id="@+id/helloTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
// 這是xxx.java 裡面的程式碼
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 直接用view的id,當成員變數使用,這裡要注意import匯入的是xml。
helloTv.text = getString(R.string.app_name)
}
}
通過對上文的瞭解,是不是開始對kotlin有一定的興趣了?不,沒興趣,那麼,Alt+F4。有,有興趣。那麼,咱們接著繼續看。