一、概述

Android Studio在tools命名空间中支持一些XML属性来开关设计功能和编译时行为。当构建应用时,构建工具会删除这些属性,从而不会影响APK的大小和运行行为。

二、引入tools命名空间

三、XML视图预览相关属性

1. tools:替代android:

示例1:预览时展示指定文本。

tools_text.png

示例2:tools:textandroid:text同时存在,在预览时tools:text属性会覆盖android:text属性。

tools_text2.png
2. tools:context

声明该布局文件默认关联的Activity,这样可以在预览的时候就知道展示的主题,并且知道在哪插入onClick对应的处理事件。

示例1:为Activity指定主题

tools_context_theme.png

示例2:快速创建onClick的事件处理方法

tools_context_onclick.png
3. tools:itemCount

用在RecyclerView用来指定预览几项

tools_itemcount.png
4. tools:layout

这个属性用来声明这个fragment内部所加载展示的布局

tools_layout.png
5. tools:listitem

用在ListView用来指定其item的布局

tools_listitem.png
6. tools:showIn

指定这个View被到哪个layout中

7.@tools:sample/*资源

为View设置占位文本或图片

tools_sample_resource.png
属性值 描述
@tools:sample/full_names 姓名
@tools:sample/date/ddmmyy 日期
@tools:sample/avatars 头像
@tools:sample/backgrounds/scenicb 背景图

四、资源压缩相关属性

开启资源压缩

android {    ...    buildTypes {        release {            shrinkResources true  // 开启资源压缩。minifyEnabled也必须为true,否则编译不通过            minifyEnabled true    // 开启代码混淆/压缩            proguardFiles getDefaultProguardFile('proguard-android.txt'),                    'proguard-rules.pro'        }    }}
1. tools:shrinkMode

这个属性允许你指定构建工具是否使用“安全模式”(shrinkMode="safe")或“严格模式”(shrinkMode="strict")

<?xml version="1.0" encoding="utf-8"?>

当启用严格模式,需要使用tools:keep来保持那些真实需要但又被删除的资源,使用tools:discard来明确删除更多的资源

2. tools:keep

这个属性允许你指定那些运行时间接引用的资源。例如动态生成的资源名称传递给Resources.getIdentifier()

可以创建一个XML文件,如res/raw/keep.xml,以为根标签

<?xml version="1.0" encoding="utf-8"?>
3. tools:discard

这个属性允许你手动指定需要被删除的资源。(一般因为资源被引用但是没有作用于app,或者因为Gradle插件的误报这个资源被引用)

<?xml version="1.0" encoding="utf-8"?>

五、错误处理相关属性

以下属性用于过滤Lint警告消息

1. tools:ignore

该属性可以作用于任何元素,接受逗号分隔的lint Issue列表。

示例:如果对文本进行硬编码时,XML代码将会变黄;添加tools:ignore="HardcodedText"即可让lint忽略警告

tools_ignore.png
2. tools:targetApi

指明某个控件只在指定的API 及更高的版本中生效。这样,在使用 Lint 检测时就不会因 minSdkVersion 低于控件出现的版本而报错。

3. tools:locale

指明 resources 中元素的语言类型,避免拼写检查或者Lint 检查时报错。

例如,可以添加到values/strings.xml

参考链接

  1. Tools attributes reference
  2. Android:Tools命名空间原来是有大用处的
    coding_frontline.jpeg

更多相关文章

  1. "Android中的动画"-Android面试必问"精华技能点"汇总
  2. android activity 属性解释
  3. 【Android】第4章(5) 示例--列出手机上的所有联系人
  4. android之调用系统自带资源的两种方式
  5. Android读取jar包中assets资源文件
  6. android简单demo学习系例之排版(TableLayout)[xml-based]
  7. 1. 0 Android(安卓)开发中的界面编程
  8. 《阿里巴巴Android开发手册》v1.0.1更新,优化部分内容和示例代码
  9. 优化技术之Android(安卓)UI优化

随机推荐

  1. 与Android有关的三起诉讼事件
  2. Android使用libjpeg实现图片压缩
  3. 2011Android技术面试整理附有详细答案(包
  4. android之NFC基础技术分享
  5. Android(安卓)Service创建USB HOST通信
  6. Android(安卓)4.0应用界面设计分析
  7. Android的路接下来该怎么走?
  8. Android(安卓)KitKat 4.4 Wifi移植之AP模
  9. IOS和Android(安卓)OpenGL游戏引擎的集成
  10. Android基础笔记(二)-数据存储和界面展现