<span>Android的程序调试</span>
基本操作
- DeviceFileExplorer是Android设备的文件浏览器
- 点击Androidstudio右边栏的<kbd>DeviceFileExplorer</kbd>可以打开DeviceFileExplorer
-
新建文件、文件夹(New->File/Directory)
-
下载文件(Save As...)
-
上传文件(Upload)
-
始除文件(Delete...)
-
同步文件(Synchronize)
- 复制路径(Copy Path)
-
Logcat
- Logcat是Android中的日志工具,用于获取程序从启动到关闭的日志信息,包括调试信息、警告信息、错误信息、普通信息及元余信息。
- 不同类型的信息具有不同的显示颜色,方便开发人员观察。
- Log类所输出的日志内容分为五个级别,分别对应Log类中的Log.v()、Log.d()、Log.i()、Log.w()、Log.e()静态方法。
方法名 | 方法说明 | 参数说明 |
Log.v(Stringtag,Stringmsg) | 输出冗余信息 |
tag:日志标签,可用于过滤日志信息 msg:输出的日志信息 |
Log.d(Stringtag,Stringmsg) | 输出调试信息 | |
Log.i(Stringtag,Stringmsg) | 输出普通信息 | |
Log.w(Stringtag,Stringmsg) | 输出警告信息 | |
Log.e(Stringtag,Stringmsg) | 输出错误信息 |
- 如果侧边栏没有Logcat,按如下步骤:
- Logcat:View->ToolWindows->Logcat,点击Androidstudio下边栏的Logcat即可打开Logcat
布局管理概述
布局
- 布局是Android应用程序的界面定义。
- 布局中的所有界面元素,都是视图(View)对象或视图组(ViewGroup)对象。
- 一个布局首先是一个视图组对象,然后在视图组对象中添加子视图组对象或者视图对象。
布局的定义方式
- 可通过两种方式来定义布局:XML定义和代码定义
- XML定义运用Androidstudio可以快速设计UI布局及其包含的界面元素
- 代码定义布局是在Java或Kotlin代码中定义布局
- 在每个应用程序创建时会默认包含一个主界面布局,该布局位于resylayout目录中
- 实际开发中每个应用程序都包含多个界面,而程序默认提供的一个主界面布局无法满足需求,因此经常会在程序中添加多个布局。
常用布局
- FrameLayout(单帧布局):帧里的控制(层)叠加
- LinearLayout(线性布局):以水平或垂直的方式排列
- AbsoluteLayout(绝对布局):通过绝对定位排列,位置固定
- RelativeLayout(相对布局):通过相对定位为排列,位置可变,例如浮动图标
- TableLayout(表格布局):以表格形式排列
Android UI设计基础补充
- UI(User Interface)是用户与App交互的界面,是App最直观的体现。
- UI设计主要涉及到两方面的内容,一个是页面布局设计,一个是控件属性设计。
Android UI有两种方式可以定义:
- Java或Kotlin代码生成:比较灵活,适合动态页面
- XML定义:比较直观,可以预览界面,适合静态页面
大部分UI控件既可以用代码生成也可以用XML定义,本文主要介绍使用XML定义的基础知识。
XML
XML是一种用于标记电子文件使其具有结构性的标记语言,Android的资源文件中很大一部分是通过XML来定义的。
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="fill_parent" 4 android:layout_height="fill_parent" 5 android:orientation="vertical"> 6 <TextView 7 android:id="@+id/textView1" 8 android:layout_width="fill_parent" 9 android:layout_height="wrap_content" 10 android:text="@string/hello"/> 11 </LinearLayout>
XML具体规则如下:
1、必须有声明语句
XML声明是XML文档的第一句,如图1第1行所示,其格式如下:
1 <?xml version="1.0" encoding="utf-8"?>
2、注意大小写
- 在XML文档中,大小写是有区别的。
- “<P>”和“<p>”是不同的标记。
- 注意在写元素时,前后标记的大小写要保持一致。
- 最好养成一种习惯,或者全部大写,或者全部小写,或者大写第一个字母,这样可以减少因为大小写不匹配而产生的文档错误。
3、XML文档有且只有一个根元素
- 良好格式的XML文档必须有一个根元素,就是紧接着声明后面建立的第一个元素,其他元素都是这个根元素的子元素,根元素完全包括文档中其他所有的元素。
- 根元素的起始标记要放在所有其他元素的起始标记之前;根元素的结束标记要放在所有其他元素的结束标记之后。
比如上面的代码中的<LinearLayout>就是根元素的起始标记,</LinearLayout>是根元素的结束标记。
4、属性值使用引号
- XML元素具有属性(Attribute),用于提供有关元素的额外信息。
- 如上面的代码所示,android:orientation="vertical"就是LinearLayout元素的一个属性,属性名为android:orientation,属性值为vertical。
- XML规定,所有属性值必须加引号(可以是单引号,也可以是双引号,建议使用双引号),否则将被视为错误。
5、所有的标记必须有相应的结束标记
- 在XML中,所有标记必须成对出现,有一个开始标记,就必须有一个结束标记,否则将被视为错误。比如上面的代码中的<LinearLayout>和</LinearLayout>又开始就必须有结束。
6、所有的空标记也必须被关闭
- 空标记是指标记对之间没有内容的标记,比如上面的代码中的“<TextView”标记,必须有一个“/>”关闭(第10行)。在XML中,规定所有的标记必须有关闭标签。
通用属性
下面介绍Android UI设计XML中的一些通用属性:
1. 控件大小属性
1 android:layout_width="match_parent"
2 android:layout_height="wrap_content"
这两个是布局或控件的高度和宽度,可选值有两个:match_parent、wrap_content,除此之外,也可以限定大小为固定的数值,比如android:layout_width="100dp"。
- match_parent表示让当前控件的大小和父布局的大小一样,也就是由父布局来决定当前控件的大小;
- wrap_content表示让当前的控件大小能够刚好包含里面的内容,也就是由控件内容决定当前控件的大小。
下面介绍下尺寸的单位:
- px:pixel即像素,1px代表屏幕上的一个物理的像素点。比如1080*1920分辨率的屏幕,横向有1080个像素,纵向有1920个像素。
- dp:也叫dip,是device independent pixels的简写,设备不依赖像素的一个单位。在不同的像素密度的设备上会自动适配,控件大小推荐使用dp为单位。
- sp:scaled pixels,比例像素,主要用于字体大小,它能够跟随用户系统字体大小变化而变化。
- in:inches,英寸,1英寸=2.54里面
- pt:points,磅,1磅=1/72英寸
- mm:millimeters,毫米。
Android最常用的是dp、sp,对于固定屏幕尺寸的嵌入式设备的App,界面设计比较简单;对于通用App,需要考虑屏幕适配的问题,这个比较复杂,大家可以自行百度。
2.背景属性
1 android:background="#AA0000" 2 android:background="@mipmap/ic_launcher" 3 android:background是设置控件的背景,背景可以为某种颜***r>(android:background="#AA0000"),也可以为一张图片
(android:background="@mipmap/ic_launcher"),还可以是自定义的样式。