Android配置配置清单,Gradle构建文件,外部化资源部分。
(一)配置清单AndroidManifest.xml
use-permission和uses-feature和application属于同等级节点。
android:allowBackup
是否允许应用参与备份和恢复基础架构。如果将此属性设为 false,则永远不会为该应用执行备份或恢复,即使是采用全系统备份方法也不例外(这种备份方法通常会通过 adb 保存所有应用数据)。此属性的默认值为 true。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.basicconstruction.example">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-feature android:name="android.hardware.nfc" android:required="false"/>
<application
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Example">
<activity android:name=".MainActivity" android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Act2">
</activity>
</application>
</manifest>
上面是一个AndroidManifest.xml文件,主要解释几个简单点。
allowBackup在程序编写阶段最好不要设置为true.设置为false是卸载app时,会删除掉App所使用的数据库,而对于数据库随着程序的更改时,会出现数据库异常。(数据库参数改变等)导致老旧数据库不匹配。事实上,除非为了公司编写app,这个选项设置为false是有好处的,可以在一定程度上节约手机空间。
activity节点。
应用的每个Activity都需要一个activity标签,并使用android:name属性来指示Activity的类名。如果尝试启动未包含在配置清单中的Activity,则会触发运行时异常。
启动模式
android:launchMode="singleTask"
这个属性指的是此Activity只会存在一个实例,在回退栈中只会有一个实例。
有关应如何启动 Activity 的指令。共有四种模式可与 Intent
对象中的 Activity 标记(FLAG_ACTIVITY_*
常量)协同工作,以确定在调用 Activity 处理 Intent 时应执行的操作。这些模式是:
“standard
”
“singleTop
”
“singleTask
”
“singleInstance
”
默认模式是“standard
”。
用例 | 启动模式 | 多个实例? | 注释 |
---|---|---|---|
大多数 Activity 的正常启动 | “standard ” | 是 | 默认。系统始终会在目标任务中创建新的 Activity 实例,并向其传送 Intent。 |
“singleTop ” | 视情况而定 | 如果目标任务的顶部已存在 Activity 实例,则系统会通过调用该实例的 onNewIntent() 方法向其传送 Intent,而非创建新的 Activity 实例。 | |
专用启动 (不建议在一般情况下使用) | “singleTask ” | 否 | 系统会在新任务的根位置创建 Activity 并向其传送 Intent。不过,如果已存在 Activity 实例,则系统会调用该实例的 onNewIntent() 方法(而非创建新的 Activity 实例),向其传送 Intent。 |
“singleInstance ” | 否 | 与“singleTask" ”相同,只是系统不会将任何其他 Activity 启动到包含实例的任务中。该 Activity 始终是其任务中的唯一 Activity。 |
https://developer.android.com/guide/topics/manifest/activity-element
详情在上行链接
(二)Gradle 构建:暂无
(三)外部化资源
在所有情况下,资源文件名应该只包含小写字母,数字,句点(.)和下划线(_)符号。
1.简单值
支持的简单值包括字符串,颜色,尺寸,样式,布尔值或整数值,以及字符串数组或类型化数组。所有这些简单值都存储在res/values文件夹中的xml文件中。
在example.xml文件中可以包含不同类型的简单值,但是按照惯例,为了清醒且可读,每种类型的资源通常会存储在单独的文件中,例如res/values/strings.xml文件中就只包含字符串资源。
(1).字符串
res/values/strings.xml
<resources>
<string name="app_name">Example</string>
<string name="button">Button</string>
<string name="exam1">\"hello world\\</string>
<string name="exam2"><u>hello</u></string>
</resources>
如上图所示,字符串资源由strings标签指定。
如果需要使用,单引号,双引号和反斜杠,需要在前面加上一个反斜杠(\)表示转义。
Android支持简单的文本样式,因此可以使用HTML的<b>,<i>和<u>标签分别对文本字符串的某些部分应用粗体,斜体和下划线效果。
忽略:STring.format和定义复数形式,这些可以在代码中实现,而不必依赖于xml规则。
(2)颜色
colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="purple_200">#FFBB86FC</color>
<color name="purple_500">#FF6200EE</color>
<color name="purple_700">#FF3700B3</color>
<color name="teal_200">#FF03DAC5</color>
<color name="teal_700">#FF018786</color>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="t1">#abc</color>
<color name="t2">#aabbcc</color>
<color name="t3">#8abc</color>
<color name="t4">#88aabbcc</color>
</resources>
可以使用color标签定义新的颜色资源,使用#符号后跟Alpha(可选)通道指定颜色值,然后使用一个或两个十六进制数字指定红色,绿色和蓝色值。
#rgb
#rrggbb
#argb
#aarrggbb
4,尺寸
尺寸通常在样式和布局资源中引用。它们对于定义布局值非常有用。
要指定尺寸资源,请使用dimen标签,指定尺寸值,后跟描述尺寸的单位。
dp(密度无关像素)
sp(可伸缩像素)
px(屏幕像素)
in(物理英寸)
pt(物理点)
mm(物理毫米)
尽管可以使用这些度量单位来定义尺寸,但最好还是使用dp和sp。这些选择允许使用相对比例来定义尺寸,这些比例考虑了不同的屏幕分辨率和密度,以简化在不同硬件上的缩放。
可伸缩像素在定义字体大小时特别合适,因为如果用户更改系统字体大小,他们会自动缩放。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="match_parent_widget_margin">16dp</dimen>
</resources>
(4)样式和主题(省略)
(5)使用资源
<1>在代码中使用资源
在应用中,可以使用静态R类访问代码中的资源。R是一个构建生成类,在构建项目时被创建。
R中的每个子类都将关联的资源公开为变量,变量名与资源标识符相匹配。
如R.id.xx R.string.xx R.mipmap.xx
忽略部分,以更快的向前出发。
<2>.在资源中引用资源
事实上,我们一般只会创建一个包,甚至我们也可以使得只使用一个包。
类似于
android:text="@strings/hello"
<3>.使用系统资源
<4>引用当前主题的颜色
<5>为不同的语言和硬件创建资源
可选()右击values,选择new resource file,在下面根据什么选择变体