近日,清华大学智能产业研究院团队打造的首家“AI医院”Agent Hospital正在进行内测,将于年底正式上线,并于明年上半年对公众开放。此外,一个完全由医生团队发起并主创参与研发、被“喂”了六千余本国内外医学教材的AI医学大模型,已在上海市东方医院门急诊、重症医学科和住院部上岗。本篇文章转自为码消得人憔悴的博客,文章主要分享了如何使用Android Resource资源管理,相信会对大家有所帮助!https://juejin.cn/post/7442182627661168649
Resource资源管理是 Android 中非常核心的一部分,它涉及到多个类的协作来完成资源的加载、缓存和配置匹配,相关类包名package: "android.content.res"。其中主要通过 Resources 类(以及 ResourcesImpl)来实现,其他如 AssetManager、Configuration 和 TypedArray 等类提供了对不同类型资源的访问和管理机制。R.java 则提供了对所有静态资源的引用。通过这些类,Android 能够高效地管理和访问应用的各种资源,并根据设备的配置动态加载适合的资源。资源是指应用程序中的各种静态内容,例如图像、布局、字符串、颜色、尺寸等。通常存储应用中显示的文本,如界面提示、按钮标签等。
定义用户界面(UI)的结构,通常是XML文件,用来指定View的排列和组织。res/layout/activity_main.xml<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"/>
LinearLayout>
可以是位图、XML文件、颜色等,用来显示图形或背景。用于定义颜色的XML文件,可以用来设置UI元素的颜色。<color name="primary_color">#FF5733color>
尺寸资源(Dimension Resources)用于定义控件的大小或间距,避免硬编码数值,便于调整和适配不同屏幕密度。<dimen name="margin">16dpdimen>
定义一组外观属性,允许统一配置应用中多个组件的外观。<style name="AppTheme">
<item name="android:colorPrimary">@color/primary_coloritem>
style>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_item"
android:title="@string/menu_title"
android:icon="@drawable/icon"/>
menu>
Android 项目中的资源文件都放置在res目录下,并根据类型组织在不同的子目录中。常见的目录结构包括:- res/values/:存放各种XML资源文件,如strings.xml、colors.xml、dimens.xml、styles.xml等。
- res/layout/:存放布局文件(activity_main.xml、fragment_example.xml等)。
- res/drawable/:存放图片、图标、shape等可绘制资源。
- res/raw/:存放原始的文件资源(例如音频、视频文件等)。
- res/mipmap/:存放图标资源(通常用于应用图标)。
Android的资源管理系统非常强大,可以通过目录和文件名的约定,支持多语言和多配置的适配。通过在res/values-目录下定义不同语言的资源文件来支持多语言。例如:- res/values/strings.xml:默认语言(通常是英语)
- res/values-zh/strings.xml:中文
- res/values-fr/strings.xml:法语
Android会根据设备的语言设置来加载适合的资源文件。Android通过资源目录名中的屏幕密度、屏幕尺寸等配置来选择合适的资源。例如:- res/drawable-mdpi/:适配中等密度屏幕
- res/drawable-hdpi/:适配高密度屏幕
- res/drawable-xhdpi/:适配超高密度屏幕
Android会根据设备的屏幕密度自动加载合适的图片资源。Android还支持其他配置的适配,比如方向、屏幕大小、主题等。例如:- res/values-large/:适配大屏幕设备
在Android中,资源通过ID进行访问。每个资源都有一个唯一的整数ID,Android系统会自动为每个资源分配一个ID。开发者可以通过R类来引用资源,R类是Android编译工具生成的,包含了应用中所有资源的引用。常见的访问方式包括:String text= getResources().getString(R.string.app_name); // 获取字符串
Drawableicon= getResources().getDrawable(R.drawable.icon); // 获取图片资源
Context提供了getResources()方法,用来获取资源管理器,进而获取资源。
在布局文件、样式文件等XML文件中,资源的引用一般是通过@resource_type/resource_name来进行的。在某些情况下,可能需要在运行时动态加载资源。例如,动态设置界面语言、加载特定配置的资源等。可以使用AssetManager来访问assets目录中的文件,或者使用getResources()来访问资源。Android资源管理系统是Android开发的核心组成部分之一,它提供了一种结构化的方式来组织、管理和访问应用中的各种资源。通过合理利用资源的分离、动态加载和多配置支持,开发者能够更高效地开发跨平台的、适应不同设备和语言的应用。