최신 Android 위젯 개발

Nov 26 2020

2020 년, iOS가 마침내 지원을 추가 한 이후 위젯은 다시 한 번 모든 분노를 표출했습니다. 그러나 Android 위젯은 2012 년 이후로 업데이트되지 않은 것 같습니다.

로부터 안드로이드 문서 :

RemoteViews 개체 (결과적으로 앱 위젯)는 다음 레이아웃 클래스를 지원할 수 있습니다.

  • FrameLayout
  • LinearLayout
  • RelativeLayout
  • 그리드 레이아웃

즉, ConstraintLayout, RecyclerView, AndroidX가 없습니다. ListView의 어두운 날로 돌아가고 싶지 않습니다.

Android 개발자 사이트의 문서가 오늘날에도 Android 위젯 개발을위한 모범 사례입니까? AndroidX 세계에서 위젯을 만든 경험이있는 사람이 있습니까? 경험을 덜 고통스럽게 만드는 타사 API가 있습니까?

답변

2 CommonsWare Nov 26 2020 at 14:26

그러나 Android 위젯은 2012 년 이후로 업데이트되지 않은 것 같습니다.

옳은.

ListView의 어두운 날로 돌아가고 싶지 않습니다.

음 ... 죄송 해요?

Android 개발자 사이트의 문서가 오늘날에도 Android 위젯 개발을위한 모범 사례입니까?

앱 위젯은 "모범 사례"보다는 문서화되고 지원되는 프로토콜에 대한 것입니다. 앱 위젯은 실제로 결국 UI를 생성하는 프로세스 간 통신 (IPC) 프로토콜이라는 점을 명심하십시오. 앱이 UI를 렌더링하지 않습니다. 홈 화면 또는 기타 앱 위젯 호스트는 일반적으로 AppWidgetHost관련 API 의 지원을 받습니다.

즉, ConstraintLayout, RecyclerView, AndroidX가 없습니다.

옳은. 결국, 홈 화면에서 이러한 항목에 액세스 할 수 있는지 여부 또는 해당 항목의 버전 등을 알 수 없습니다.

경험을 덜 고통스럽게 만드는 타사 API가 있습니까?

그것은 정말로 가능하지 않습니다. 앱은 앱 위젯과 거의 관련이 없습니다. "무거운 작업"은 프레임 워크와 홈 화면에 있습니다. 타사 API는 실제로이를 변경할 수 없습니다.

나는 구글이 런처 개발자들이 "앱 위젯"의 대체 형태로 슬라이스 지원을 시작하도록 유도하기 시작할 것으로 기대하고 있었다 . Google이 슬라이스에 대해 잊은 것처럼 보이므로 아직 발생하지 않았습니다. 아마도 앞으로 Google은 모든 종류의 가능성에 대한 문을 열어주는 Android 11SurfaceControlViewHost 기반의 무언가를 제공 할 것입니다. 두 경우 모두 런처 개발자가 이러한 사항을 지원하기 위해 변경해야 할 수 있으므로 채택 속도가 느려질 수 있습니다.

제한된 위젯 및 컨테이너 목록에있는 것 이상으로 UI를 제공하기 위해 할 수있는 가장 가까운 일은 자신의 항목을 a에 렌더링 하고 앱 위젯에 Bitmap표시하는 것입니다 ImageView. 앱 위젯의 정확한 크기를 모르기 때문에 까다로워집니다. 물론 이것은 입력 옵션을 변경하지 않습니다.