1. 위젯 구성요소

→ 위젯의 layout, 업데이트 빈도, AppWidgetProvider class와 같은 위젯의 메타데이터를 설명한다.

xml에 정의된다.

→ 위젯과 상호작용 할 수 있는 기본 메서드를 정의 한다. 이를 통해 위젯 관련 broadcast를 수신하다.

2. AppWidgetProviderInfo XML 선언

<appwidget-provider xmlns:android="<http://schemas.android.com/apk/res/android>"
    android:minWidth="40dp"
    android:minHeight="40dp"
    android:targetCellWidth="1"
    android:targetCellHeight="1"
    android:maxResizeWidth="250dp"
    android:maxResizeHeight="120dp"
    android:updatePeriodMillis="86400000"
    android:description="@string/example_appwidget_description"
    android:previewLayout="@layout/example_appwidget_preview"
    android:initialLayout="@layout/example_loading_appwidget"
    android:configure="com.example.android.ExampleAppWidgetConfigurationActivity"
    android:resizeMode="horizontal|vertical"
    android:widgetCategory="home_screen"
    android:widgetFeatures="reconfigurable|configuration_optional">
</appwidget-provider>

→ Android 12부터 targetCellWidth, targetCellHeight 속성은 Grid Cell 측면에서 위젯의 기본 크기를 지정한다. Android 11 이하에선 무시되며 홈 화면에서 Grid 기반 Layout을 지원하지않으면 무시 할 수 있다.

→ minWidth, minHeight 속성은 위젯의 기본 크기를 dp로 지정한다. 위젯의 최소 width, height값이 셀의 크기와 일치하지않으면 가장 가까운 셀 크기로 반올림된다.

→ 4개 속성 모두 지정하는 것이 좋다.

→ 위젯의 최소, 최대 크기를 지정한다.