<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Android Studio 3.0 新功能 我們項目目前用的是2.3.3,已經有很長一段時間了。因為3.0剛出來的時候,網上踩坑的特別多,而我們又剛好在緊張的封閉開發狀態中,所以沒有去折騰。經過一段時間修BUG,3.0(實際上是3.1)已經趨于穩定,我們也要著手升級我們的IDE,來享受一下更加強大/現代化的功能。由于我們是直接從2.3.3升級到3.1-RC1,所以也不逐個版本介紹了,這里統稱為3.0。 Android Studio 3.0 是一個重大的版本,包括了很多新功能和大的改動。其中有些是我們項目中可能不會用到的,譬如Android Things、Instant App等等,這些內容大家可以上官方網站或者官方博客進行查看,這個文檔的目的是為了能**讓大家快速了解并且上手與我們項目開發息息相關的內容**。 升級到3.0的過程沒什么好說的,首先要升級某些使用了舊版本gradle插件方法的第三方gradle插件,譬如我們項目里面的butterknife和tinker; 注意一下`implementation`和`compile`的差別,然后該補引用的補,該改成`api`的就改,其他編譯不通過的根據錯誤日志基本可以通過禁用D8編譯器和aapt2來解決。只是新版本的報錯信息位置跟2.3.3有點不一樣,以前的gradle console窗口被整合到build窗口里面,通過側邊的按鈕來切換。 ## 編譯速度提升 這個是老生常談了,每個版本都提到x%的提升,結果大家都有目共睹。但是3.0使用了全新的關鍵字`implementation`,可以減少一些不必要的編譯,從而提升速度,經過一段時間測試,在日常開發中還是感覺得到的。具體不展開說明,可以查看官方說明。 ## Kotlin語言支持 終于!......千呼萬喚始出來。自從Kotlin被宣布成為android開發的官方語言后,大家對Kotlin的興趣就越來越大,都希望在項目中可以使用,現在,終于加進項目啦!相信各位對Kotlin的語法、特性等等都了解得差不多了,雖然目前我們沒有強制使用Kotlin的計劃,但大家也是可以開始嘗試使用Kotlin了。 特別說明,在正式使用Kotlin前,先通過Kotlin官網的[一份語法測試](http://try.kotlinlang.org/koans)。 ## Java8部分特性支持 雖然Kotlin已經包含很多更加現代化的特性,但目前項目中的主力語言還是Java。在未來一段時間里面,我們大部分人還是用Java開發為主。所以能夠使用上更加先進的特性,對我們編寫更安全更簡潔的代碼有非常大的幫助。下面我們來看一下如何使用Java8的新特性。 首先,在項目中要使用到或者間接使用到(依賴庫使用了)Java8特性的module的gradle配置文件中增加以下聲明: android { ... // Configure only for each module that uses Java 8 // language features (either in its source code or // through dependencies). compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } 支持的特性: * **lambda表達式** 簡單來看,可以當作是單個方法的接口/抽象類的簡潔實例化形式,但實際作用遠不止此。關于lambda表達式的前世今生,有興趣大家自己去搜索一下。在這里只作簡單展示: button.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ ... } }); 以上是一個十分常見的監聽器設置,看起來比較繁瑣,通過使用lambda表達式,可以簡化成以下形式: button.setOnClickListener(() -> { ... }); 其他語法在數據綁定的時候也提過一二,具體介紹請看[官方指南](https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html#syntax) * **方法引用** 方法引用實際上是一種更加簡潔更具可讀性的lambda形式,同樣數據綁定的時候已經提到過,通過`::`雙冒號語法獲得方法的引用,例如: button.setOnClickListener(presenter::onClick); 具體的介紹和語法請看[官方指南](https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html) * **類型注解** 在編寫依賴庫的時候比較能用得上,有興趣的請看[官方指南](https://docs.oracle.com/javase/tutorial/java/annotations/type_annotations.html)和[示例](https://docs.oracle.com/javase/tutorial/java/annotations/basics.html) * **接口默認方法** * ...... ## 拖控件 …… ## 窗口變化 * **Layout Inspector** UI的debug神器,從Tools-Android-Layout Inspector搬到Tools-Layout Inspector,三級菜單變成二級菜單,但是之前在monitor側邊的小按鈕入口也沒了。功能也有所增強 * **Android Monitor拆分為Logcat和Profiler** * **gradle console窗口被整合到Build窗口中** 以前Event Log旁邊,查看gradle當前任務進度和狀態的控制窗口,現在被放到Build窗口中去了,而且還不是默認視圖,需要點擊Toggle view來切換出來。 Build的默認視圖確實更加友好,只是有時候問題的原因沒有很清晰的展現。 * **文件管理器** 現在可以在Android Studio上直接查看連接設備的文件系統,一個曾經消失了幾個版本的功能,現在以一個全新的面貌回歸 * **......** 大家去發掘 ## Android Profiler Android Studio 3.0使用Android Profiler替換了Android Monitor。 相比舊版本性能分析器,Android Profiler增加了直觀的事件顯示,包括頁面打開,觸摸、按壓事件等等行為,更加友好的讓我們看到App當前的狀態和性能問題發生時的場景。更多請查看[官方文檔](https://developer.android.com/studio/preview/features/android-profiler.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看