북극곰의 개발일기

Google IO Extended Seoul 2018 - 새로운 안드로이드 개발 툴





posted by purplebeen on Sun Jun 10 2018 14:50:44 GMT+0900 (KST) in 컨퍼런스


새로운 안드로이드 개발 툴

Android Studio 3.2

  • Android JetPack 지원
    • Android X
    • Nevigation Editor
  • Android App Bundle
  • Samplde Data 지원
  • Slic API
  • Prifiler 지원

Navigation

  • 단일 액티비티와 다중 프래그먼트 흐름 제어

Android X

기존의 Android Package를 재구성
Refactor To android jetpack : Jetpack으로 자동 리팩토링

SampleData

이미지 및 사용자가 지정한 JSON형태로 바인딩 하면서

Slice

  • 앱 턴텐츠 구글 검색 강화
  • App Action과 함께 사용
  • 구글 검색에서 접근 가능

빌드 지원 - Android APP Bundle

  • 앱 번들 추가하는데 불가 15초가 걸렸다
  • D8 : 기존의 컴파일러 대체
  • R8 : 컴파일러 + Proguard

Profiler

  • 에너지 프로파일
  • 시스템 트레이스
  • 프로파일 세션 (프로파일 한 결과를 저장 후 다시 불러올 수 있음)
  • 코드 레벨 CPU 동작 기록
  • JNI 참조 추적 지원

Android Jetpack

  • Appcompat : supportlibrary
  • android KTX : Android kotlin extension (코틀린을 학고하게 하기 위한 구글의 노력)
  • MultiDex : MultiDexing
  • Android Test : 테스트 버전이 정식 업데이트되면서 새로운 기능 추가
  • Data Binding : XML에서의 바인딩을 도와주는 기능
  • LifeCycle : 다른 클래스에서 라이프사이클을 알아야 하는 경우 알 수 있도록 도와줌
  • LiveData : DB에서 어떤 동작을 할지
  • Paging : Server나 DB에서 데이터를 땡겨올때 데이터가 업데이트 됬을때 페이징을 통해서 필요한 부분만 가져올 수 있음
  • ROOM : Mysql ORM
  • DownloadManager : 다운로드와 관련된 액션
  • Media & playback : Play 기능 강화
  • Notifications : 여러가지 정보, 이미지를 더 보여줄 수 있도록 추가됨, 채널도 추가
  • Permissions : Android N에서 추가, 이전 버전과 동작의 일관성 있게 해주기 위해서 추가
  • Sharing: URI 관련 기능
  • Slice : 구글 검색에서 앱 점근을 폭넓게
  • Animation & Transition : 안드로이드 사용자의 경험을 늘리려고 하는 것. 중력과 관련된 애니메이션 상수값을 자동으로 셋팅, 트랜지션 (액티비티 / 액티비티, 프래그먼트/프래그먼트) 전환 시에 자영스럽게 해주기 위한 부분
  • Auto : 차
  • Emoji : PlayService에서 자동으로 다운로드 받아서 유지할 수 있도록
  • Fragment : Since Android Honeycomb, Android Support Library에 완전 정착
  • Layout : ConstraintLayout . (Relative Layout이 Deprecate됨)
  • palette : 색상 값을 뽑아서 쉽게 관리 (다이나믹한 색상 요소)
  • TV : Android TV
  • Wear OS : Android 스마트 시계 용

Android Navigation

  • 1개 액티비티에 다중 프래그먼트를 사용하기 위한
  • Up and Back의 자동지원
  • Bundle 참조 지원
  • DeepLink 지원 : 해당 프래그먼트로 자동 이동
  • Action : 이동할 때 사용
  • destination : 넘어갈 프래그먼트
  • androidx.navigation.fragment.NavHostFramgent (Navigation Fragment 흐름 제어)
  • supportNavigationUp : NavigationController가 프래그먼트를 생성하고 xml 에서 불러옴
  • Navigation Controller
    • Navigation Resource 파싱 및 관리
    • View에 Tag 저장되어서 관리
  • Navigation
    • No compliation Task (컴파일 과정에서 동작이 없음)
    • Only Working on Runtime. (모든 동작은 Runtime에서 동작함)
    • 빌드에 대한 걱정은 하지 않아도 됨

Android Workmanager

Intent Service, Job Scheduler, Firebase JobDispatcher, Alarm Manager를 대체하기 위함
OS 버전별로 다른 동작에 대한 호환성 제공

안드로이드에서 상태 정보나 동작 상태에 따라서 실행을 관리할 수 있음

  • WorkerService : 동작 상태 관리를 위한 서비스
  • 내부의 SQLite에 DB를 만들어 Status 정보를 넣음
  • Context가 들어가지 않음 -> Contents Provider를 이용함