Android Studio 3.0
2.4 ではなく 3.0 にした理由
- incremental change ではないから
- breaking gradle API change があるから
Develop
最新の IntelliJ stable 27.1 ベースKotlin サポート
- Create Android Project ウィザードに Include Kotlin support チェックボックスが追加
- 既存のプロジェクトに Kotlin ファイルを直接作成すると自動で project の dependencies が更新
- [Code] - [Convert Java File to Kotlin File] で既存の Java ファイルを Kotlin に変換
- show Kotlin Bytecode で Kotlin Bytecode Window を起動し、上部の Decompile ボタンで Java コードをチェック
- Java で動く lint は Kotlin でも動く
Layout Editor
- ConstraintLayout 1.0.0 beta1 の機能(barriers など)に対応
tools:text="@tools:sample/lorem"
tools:text="@tools:sample/date_day_of_week"
表示データ用の json ファイル(hoge_log.json)を用意して
tools:src="@sample/hoge_log.json/hoge/icon"
tools:text="@sample/hoge_log.json/hoge/description"
Downloadable Font 対応
- TextView を選択して Properties の fontFamily から More Fonts... を選択
- font を検索して選択
Adaptive Icon
- Image Assert ウィザード で Adaptive Icon に対応
Device File Explorer
- 右下にある
- デバイス内のファイルを見たり、アップロード、ダウンロードできる
Instant Apps
- リファクタリングサポート
- クラスファイルで Modularize... を起動
- 依存クラス含めてどれを module に移動するか選択
- 現状 initial version でまだまだ改善中らしい
Apk Analyzer
- クラスを右クリック - Show bytecode
- Load proguard mapping ボタンから mapping ファイルを設定
- クラスを右クリック - Generate Proguard keep rule
- クラスを右クリック - Find Usages
Apk Debugging
- [File] - [Profile or Debug APK...]
Profiler
- Android Profiler ウィンドウ
- CPU, Memory, Network
Network Profiler
- Network をクリック、ズームイン、ネットワークリクエストが表示される
- ネットワークリクエストをクリックすると、詳細と Call Stack が表示される
- HttpUrlConnection とそれをベースにしているもの(Volleyとか)、OkHttp に対応
CPU Profiler
- Recording をクリック、アプリを操作、Stop Recording をクリック
- Thread が表示される
Memory Profiler
- Garbage Collection
- Heap dump
- Recording
Build
Google's maven Repo
- Gradle plugin
- Support Libraries
- Data-Binding Library
- Constraint Layout
- Instant Apps Library
- Architecture Compoennts
- Android Testing Libraries
- Espresso
repositories{
maven {url 'https://maven.google.com'}
or
google() // 4.0-milestone-2 or later
}
Build Performance
- Incremental Tasks
- Resource Processing(planned for 3.0)
- Shrinking (experimental, 2.3)
- Java Compilation (Gradle 3.5)
- Dexing (3.0)
- Annotation Processor x
- APK Packaging (2.2)
Build Cache
- Local
- Switch between branches without recompiling
-- build-cache org.gradle.caching=true
- Switch between branches without recompiling
- Distributed
- Share with team members And Build Server
- Hazelcast implementation Gradle Enterprise API for custom backend
Multi-modules Advantages
- Code Reuse
- Improve Caching
- API/Dependency Control
- Compilation Avoidance
Support for Java 8 Language Features
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
defaultConfig.jackOptions.enabled=true は廃止
Dependency Management
- いままでは依存ライブラリ(module) の release build が利用されていた
- 手動で buildType を合わせる方法もあったが割と設定が大変
- 3.0 では新しい gradle の API によって同じ名前の buildType や flavor があれば自動で合わせてくれるようになった
- ライブラリに flavor があってアプリ側に対応する flavor がない場合のために、新しい flavorSelection が追加
- flavor が一つでも flavorDimension が必須に
android {
flavorSelection 'color', 'blue'
}
ライブラリ側
android {
flavorDimension 'color'
productFlavors {
blue {}
orange {}
}
}
Instant Apps
- feature module (com.android.feature) に分割
- feature module を組み合わせて Instant-app (com.android.instantapp) を作る
Test
Android Emulator
- Google Play Store が搭載された Google Play Edition が増えた
- Open GL ES 3.0
- Proxy Support
- Android Open Source Project
- x : Google APIs
- x : Google Play
- o : Elevated Privileges
- Google Play Edition
- o : Google APIs
- o : Google Play
- x : Elevated Privileges (root access など無し)
App Bug Reporting
- エミュレータからスクリーンショットなど情報つきでバグレポートをQAチームなどに簡単に送れる
Android Wear Emulator
- Emulator Rotary Input support
Layout Inspector
- いろいろ改善した
Optimize
- Android Profiler (CPU, Memory, Network)
- APK Analyzer
- WebP support
0 件のコメント:
コメントを投稿