【イベント名】 Google Developers Summit : Android
【日程】 2016 年 4 月 25 日(月) 13:30 - 17:30 (開場: 13:00)
【場所】コクヨホール、東京都港区港南 1 丁目 8 番 35 号
参加メモです。
後日資料が公開されたらあらためて加筆修正します。
資料
AndroidStudio 2.0がリリースされました
- 2.1は現在Preview版です。(追記:2016.05.09更新チェックしたらStableに)
- 毎月1回のペースで評価版を出します。早めのフィードバックを更新に活かしたいです。
- 慎重な方はUpdateが頻繁なのでバージョンごとにファイル名を分けて共存もできます。
- targetSDKとBuildToolsのバージョンは切り離して考えておk。BuildToolsは基本最新
2.0どうですか?
- what's new android studio 2.0 に短くまとまってる https://www.youtube.com/watch?v=xxx3Fn7EowU
- Dalvik Executable(DEX)改善でビルド高速に。(Dalvik VM上で動作するバイナリ・プログラム)
- これまではProGuardでShrinkしてたけど独立させました。
ProGuardの置き換えではないのでProGuardはそのまま使ってね。
ProGuardは一旦、単一のjarを作るので遅かった。
- ADB(Android Debug Bridge)高速化
push,pullが5倍速
接続中デバイスが使うリソースだけ自動で選んで転送(xxdphとか)従来はぜんぶ
- Instant Run(更新と実行のペア?)
Windows環境や、プロジェクト構成によってはまだ動かない
仕組みそのものについて深く知りたい場合はDroidKaigiのセッションを見てね。
4段階あります
HotSwap
実行を維持したまま実行
WarmSwap
Activityは再起動されるけどProcessはそのまま
ColdSwap
Process再起動
NewBuild & Deploy
アプリ再インストール(従来はこの方法のみだった)
- GPU Profiler:各フレームの状態をグラフィカルに確認できます
- Intellij 15ベースに
- IntentFilterの定義
- ディープリンクテストが簡単に
2.1は?
- N Previewをサポートします。
- Java8ランタイムサポート(一部です)
- N自体は新コンパイラJackでコンパイルされている
Android N
- Android N Preview4?5?まではβで、APIかわるかも。
マルチウィンドウ
- Picture in Picture(TV限定)
- 二分割(左右または上下で)
- 自由形式(MacやWindowsPCと同じような。現在は試せません)
- フォーカスの問題がでてきます。(Active、非Active)
onResume、onPauseが呼ばれます。
Activityが重なっている状態だと思ってください。
onPauseで動画を停止するとここで問題がでます。
onStopまで更新を続けてください。動画に限らずですが。
- ライフサイクルの問題は回転時と同じです。実装もそのように。
- マニフェストへの記載でON/OFF切り替えます(デフォルトON!)
- ActivityのminimalWidth、minimalHeight属性を使うと最低サイズを指定できます。
- Activity,Fragmentに新しいメソッドが増えます。isInMultiWindowMode()とか
- アプリ側からはマルチウィンドウを制御できません。必ずナビゲーションバー右下、四角ボタンからのみです。
通知
- 通知領域上から直接返信(入力)できるように
- marshmallowでもやってたものと似てます。
- また、同じ種類の通知をグループ化します。バンバン出せそう?
- Notification.Builder#setContentは古くなりました。
ラムダ
これを
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
say("Hi!");
}
});
こう書けるけど
button.setOnClickListener(v -> say("Hi!"));
見た目に惑わされない。実際もやっぱりnewされるからGCとか要注意
クイック設定
OSで可能に。よく使うものを並べましょう
APIは用意されていません。現状使うだけです。
特定ディレクトリへの権限要求
marshmallowのRuntimePermissionみたいなものです。
Direct Boot
端末が再起動してもちゃんとアラームなる、とか(悲劇回避)
DOZE?
端末を休眠状態にしてネットワークもOFFに。。。
これの軽い状態版
これまではポケット内だと動いているのでDOZEにはならなかった
今回のは軽いDOZEなので動いてもDOZE状態になります。
DOZEが2段階になりました!バッテリー長持ち
開発者は特に意識しませんが
ジョブスケジューラーを使ってコントロールしてください。
Project Svelt
電池長持ちプロジェクト
ACTION_NEW_PICTURE, ACTION_NEW_VIDEO
これらは廃止します。
IntentFilterに書いてあるアプリ沢山いると
起動して糸冬了して。。。を繰り返して非効率なので
但し、動的なFilterで捕捉できます。
マニフェストだけ無視されます。
JobSchedulerでコントロールできます。(詳細不明)
設定ー>ユーザー補助ー>表示サイズ
dpとpxの比率が変わります。意識しましょう。
やることはマルチウィンドウ対応と基本同じです。
比率で実装しましょう。
言語設定
これまでは1つだけの選択でしたが、複数いけます。
Chromeで英語ページみてると日本語翻訳する?とかこれまできかれてました。
開発者の対応はほとんど不要です。
翻訳機能を有する場合は、もしかしたら意識するかも。
言語リストが取得できるので。
ゲーム
- メモリ1GB以上搭載機種がほとんどの日本ですが、テクスチャ圧縮など工夫すると諸外国でいいことありそう。
- libpng,libcryptなどの/system/lib以下の機能を勝手に使えなくなりました
- NDKr11c(あーるいれぶんしー)からSDKマネージャーからダウンロード可能に(これまでは個別zip)
- NDKr12BetaからVulkanサポート
- GameID
以前はGoogle+前提だったけど、縛りなくしました。
数MBならクラウド上にデータ置けます。
ゲーム以外でも使えるので見るといいかも。
- ビデオ録画、Share(Twitchと似たようなの)
Vulkan
- OpenGLネクスト!ハード・ソフトベンダーが協力して新しいエンジンを開発
- アイコンが微妙なのはいろんな人達の思いが(ry
- 負荷が少ないのが特徴
- OpenGLはCPUでコマンド生成して実行してた。ここがネック
- Vulkanはモバイルハードウェアにある程度特化してる
- CPU負荷をとにかく下げました
- 現時点で5〜6%くらいのハードが動作環境として市場にあるので当分はOpenGLかな
所感
- 名刺を忘れたサザエさん。手書きでゴメンナサイ
- 自分でも驚いたけど最初から最後まで集中力が途切れなかった。プレゼンお上手
- 挙手からの質問だと億劫だけど、sli.doでの質問は70件オーバー!すべてにお応えいただきました。
- KotlinはじめたばかりでSwiftの話が出たときはどうしようかと思ったけどガセだったw
- 今後も継続して参加します!