Kotlin入門(1)搭建Kotlin開發環境

来源:http://www.cnblogs.com/aqi00/archive/2017/06/22/7063534.html
-Advertisement-
Play Games

Kotlin做為一門編程語言,已經出現好幾年了,但此前在國內並不聞名。自從5月份谷歌宣佈它成為Android的官方開發語言之後,Kotlin猛然竄紅了,雖說短期內Kotlin無法取代Java,但對於一門新技術,我們還是有必要好好學習。 谷歌號稱從Android Studio 3.0開始完全支持Kot ...


Kotlin做為一門編程語言,已經出現好幾年了,但此前在國內並不聞名。自從5月份谷歌宣佈它成為Android的官方開發語言之後,Kotlin猛然竄紅了,雖說短期內Kotlin無法取代Java,但對於一門新技術,我們還是有必要好好學習。

谷歌號稱從Android Studio 3.0開始完全支持Kotlin,可是Android Studio目前的穩定版還是2.3,所以本文仍然以Android Studio 2.3為基礎,講述如何基於Android Studio搭建Kotlin的開發環境。

首先要下載並安裝Android Studio 2.3,如果你還沒使用該版本的Android Studio,可前往Android官網獲取安裝包,下載頁面是https://developer.android.google.cn/studio/index.html,安裝及使用教程見《Android Studio開發實戰:從零基礎到App上線》一書。如果Android Studio是從低版本升級到2.3,可能會出現編譯問題,具體解決辦法參見博文《Android Studio升級到2.3的編譯問題解決辦法》。

安裝完了Android Studio 2.3,還要另外安裝Kotlin插件。依次選擇菜單“File”——“Settings”,在彈出的頁面視窗中選擇“Plugins”——“Browse repositories...”,如下圖所示:

然後會彈出插件庫的瀏覽視窗,在該頁面左上角的搜索框中輸入“Kotlin”,下方的插件列表會定位到符合搜索條件的插件位置,單擊“Kotlin”(LANGUAGES)這行,視窗右側就展示Kotlin插件的詳細信息,如下圖所示:

從圖中看到Kotlin的最新版本是6月13日發佈的1.1.2版,單擊這裡的“Install”按鈕執行安裝操作,接著Android Studio開始自動下載Kotlin插件,下載過程如下圖所示:

等待Kotlin下載並安裝完畢,此時原來的“Install”按鈕,變為“Restart Android Studio”,提示需要重啟Android Studio使新插件生效,如下圖所示:

根據提示關閉Android Studio再打開它,即可在Android Studio使用Kotlin插件了。不過若要進行Kotlin的編碼開發,還得對編譯配置文件作如下修改:
1、打開項目的build.gradle,分別設置Kotlin的版本號與插件路徑,修改後的編譯配置如下:

buildscript {
    //指定kotlin插件的版本
    ext.kotlin_version = "1.1.2"
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
        //指定kotlin插件的路徑
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

2、打開模塊的build.gradle,在文件開頭應用Kotlin插件,即添加下麵這行:

apply plugin: 'kotlin-android'

接著在dependencies節點下添加如下一行,表示把kotlin插件編譯進本模塊:

    //把kotlin插件編譯進來
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"

改完了編譯配置文件,最後來試試Kotlin到底能不能用。假設讀者目前還沒有Kotlin基礎,那麼按照App開發的常規流程,先創建一個新模塊,依次選擇菜單“File”——“New”——“New Module”,然後一路單擊“Next”按鈕完成模塊創建。接著打開MainActivity.java,這個文件的內容再熟悉不過了,就是最簡單的幾行Java代碼,如下所示:

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

現在我們要移花接木,把Java代碼轉換為Kotlin代碼。先選中MainActivity.java,再到主界面上依次選擇菜單“Code”——“Convert Java File to Kotlin File”,菜單位置如下圖所示:

代碼轉換完畢,原來的MainActivity.java變成了MainActivity.kt,文件內容也變成瞭如下所示的Kotlin代碼:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}

看起來,這個Kotlin的語法與Java似曾相識,但又有所不同。若想解釋Kotlin的詳細語法規則,勢必要寫一大本的長篇大論,所以這裡不管三七二十一,先把demo跑起來再說,依次選擇菜單“Run”——“Run 'hello'”啟動應用,正常的話即可在接入的模擬器或者真機上看到“hello world”,如下圖所示:

怎麼樣,這可是一個貨真價實的用Kotlin開發的App噢,都說萬事開頭難,搭建好Kotlin的開發環境,只是萬里長征的第一步,在下一篇文章中,我們將繼續學習如何使用Kotlin進行Android開發。


__________________________________________________________________________
本文現已同步發佈到微信公眾號“老歐說安卓”,打開微信掃一掃下麵的二維碼,或者直接搜索公眾號“老歐說安卓”添加關註,更快更方便地閱讀技術乾貨。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 以前的左右滑動效果採用自定義scrollview或者linearlayout來實現,recyclerview可以很好的做這個功能,一般的需求就是要麼一個獨立的左右滑動效果,要麼在一個列表裡的中間部分一個左右滑動效果 而列表裡面也容易,只是需要解決一點小問題,個人認為值得一提的就是高度問題,一般的人採 ...
  • 前言:一段時間沒接觸,很容易就忘記以前的知識。專寫一篇,供幾個月沒接觸,拿起卻忘記了。 0、巨集定義、系統相關 0-1)、巨集定義 0-2)、系統相關 1、View 1-1)View的屬性 1-2)View的layer 1-3)View的方法 2、UILabel 2-1)UILabel的屬性 3、UIB ...
  • 用來記錄自己所用到的知識 前兩天在做項目的時候發現有時候在訪問網路數據的時候由於後臺要做的工作較多,給我們返回數據的時間較長,所以老大叫我加了一個載入中的logo圖用來提高用戶體驗. 於是就在網上找了許多大神寫的案例,再結合自己的情況完成了一個Loading工具類 效果: ok,現在來說說怎麼做的 ...
  • 文章相對來說比較複雜,特別是查找版本ID對應的步驟,這裡推薦使用另一種方案,操作起來更簡單。 本文介紹如何使用Workflow及Fiddler下載IOS舊版本APP應用。 ...
  • 關於 iOS 與 OS X 端字體的優化(橫豎屏會出現字體加粗不一致等) iOS 瀏覽器橫屏時會重置字體大小,設置 text-size-adjust 為 none 可以解決 iOS 上的問題,但桌面版 Safari 的字體縮放功能會失效,因此最佳方案是將 text-size-adjust 為 10... ...
  • 1。手機充電充一整晚的 capacity 和 充電充到 100% 立刻停止的 capacity 是不一樣的, 為什麼不一樣呢? 手機充電到 100% 立刻停止, 因為化學特性尚未穩定, 電池電壓 會慢慢 往下掉, 未達到 額定的 capacity, 若是充一整晚呢? 在沒有 power path 的 ...
  • 碰見一個很奇葩的問題, 某些手機在設置了不知什麼後, 某些 APP 死活 HTTPS 請求失敗, 例如以 UMeng 統計HTTP 請求失敗為例, Log如下: UMLOG: (Error Applog) Error Domain=NSURLErrorDomain Code=-1202 "此伺服器的 ...
  • Volley源碼分析 雖然在2017年,volley已經是一個逐漸被淘汰的框架,但其代碼短小精悍,網路架構設計巧妙,還是有很多值得學習的地方。 第一篇文章,分析了請求隊列的代碼,請求隊列也是我們使用Volley的關鍵一步。 第二篇文章會分析Dispatcher RequestQueue 創建Requ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...