Sobes.tech
Junior

Ресурсҳо дар Android чист ва кадом маълумотҳоро метавон дар онҳо нигоҳ дошт?

sobes.tech AI

Ҷавоб аз AI

Ресурси в Android — це зовнішні дані, які використовуються додатком, але не включені безпосередньо в код. Вони відокремлені від логіки додатку і зберігаються в підкаталогах папки res у кореневому каталозі проекту. Android надає набір інструментів для доступу до ресурсів і їх управління.

Ресурси використовуються для:

  • Локалізації додатку (підтримка різних мов).
  • Адаптації під різні розміри і роздільну здатність екранів.
  • Відділення дизайну від логіки.
  • Спрощення оновлення інтерфейсу.

У ресурсах можна зберігати такі типи даних:

  • Drawable: Різні графічні елементи, такі як зображення (PNG, JPEG, GIF), XML-описи форм, перемикачі тощо. Зберігаються в підкаталогах drawable.
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <solid android:color="#FF0000"/>
        <corners android:radius="10dp"/>
    </shape>
    
  • Layout: XML-файли, що описують структуру користувацького інтерфейсу Activity, Fragment або View. Зберігаються в підкаталогах layout.
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Привіт, світ!"/>
    </LinearLayout>
    
  • Mipmap: Оптимізовані зображення для іконок додатка різних щільностей. Більш переважно використовувати для іконок, ніж drawable. Зберігаються в підкаталогах mipmap (наприклад, mipmap-hdpi, mipmap-xhdpi).
  • String: Строкові значення, що використовуються в додатку. Дозволяють легко локалізувати текст. Зберігаються в XML-файлах у підкаталогах values (наприклад, values/strings.xml).
    <resources>
        <string name="app_name">Мій додаток</string>
        <string name="welcome_message">Ласкаво просимо!</string>
    </resources>
    
  • Style: Визначення стилів для View. Дозволяють централізовано керувати атрибутами зовнішнього вигляду. Зберігаються в XML-файлах у підкаталогах values (наприклад, values/styles.xml).
    <resources>
        <style name="MyTextViewTextAppearance" parent="android:TextAppearance.Medium">
            <item name="android:textColor">#000000</item>
            <item name="android:textStyle">bold</item>
        </style>
    </resources>
    
  • Theme: Визначення тем, які застосовуються до всієї Activity або додатку. Наслідуються від стилів. Зберігаються в XML-файлах у підкаталогах values.
  • Array: Масиви строкових значень, цілих чисел або посилань на ресурси. Зберігаються в XML-файлах у підкаталогах values.
    <resources>
        <string-array name="planets_array">
            <item>Меркурій</item>
            <item>Венера</item>
            <item>Земля</item>
            <item>Марс</item>
        </string-array>
    </resources>
    
  • Color: Визначення кольорів у форматі шістнадцяткових значень або посилань на інші кольори. Зберігаються в XML-файлах у підкаталогах values (наприклад, values/colors.xml).
    <resources>
        <color name="colorPrimary">#008577</color>
        <color name="colorAccent">#03DAC5</color>
    </resources>
    
  • Dimension: Визначення розмірів, таких як поля, падінги, розміри шрифтів тощо, з вказанням одиниць вимірювання (dp, sp, pt, px, mm, in). Зберігаються в XML-файлах у підкаталогах values (наприклад, values/dimens.xml).
    <resources>
        <dimen name="margin_small">8dp</dimen>
        <dimen name="font_size_medium">16sp</dimen>
    </resources>
    
  • Raw: Випадкові файли у необробленому вигляді (аудіо, відео, текстові файли тощо). Доступ до них здійснюється через потік вводу. Зберігаються в підкаталогах raw.
  • XML: Випадкові XML-файли, які можуть бути розібрані у додатку (наприклад, файли конфігурації). Зберігаються в підкаталогах xml.

Доступ до ресурсів здійснюється через автоматично згенерований клас R. Наприклад, для доступу до рядкового ресурсу app_name:

// Java
String appName = getResources().getString(R.string.app_name);
// Kotlin
val appName = resources.getString(R.string.app_name)

Використання ресурсів дозволяє створювати гнучкі та легко підтримувані Android-додатки.