文章目录
- 第一章:Android基础入门
- 习题总结
- 重点知识
- 第二章:Android常见桌面布局&第三章:Android常见界面控件
- 知识总结
- 习题总结
第一章:Android基础入门
习题总结
- Android系统采用分层架构,由高到低分为4层,主要为:应用程序层、应用程序框架层、核心类库、Linux内核
- 在Android项目程序开发完成后中,必须__打包成_正式的Android安装文件,才能发布到互联网上让用户下载使用。
- Android 工程中src目录下存放_java__文件
重点知识
- 应用程序层:应用程序层是一个核心应用程序的集合。手机上所有的应用程序都属于这一层,联系人程序、短信程序
- 应用程序框架层:应用程序框架层主要提供构建应用程序时用到的各种API,例如:活动管理器、通知管理器、内容提供者
- 核心类库:核心类库中包含了系统库及Android运行环境。
(1)系统库主要通过c/c++库为Android系统提供主要的特性支持
(2)Android运行时库主要提供一些核心库,允许开发者使用java语言来编写Android应用程序 - Linux内核:为Android·设备的各种硬件提供底层的驱动,如显示驱动、音频驱动、蓝牙驱动、电源管理驱动
Android工程中的assets目录主要存放一些文件资源,这些文件会被原封不动的打包到APK文件中
更为细分的5层架构:应用程序层、应用程序框架层、核心类库、硬件抽象层 (HAL)、Linux内核
硬件抽象层 (HAL) 提供标准界面,向更高级别的 Java API 框架显示设备硬件功能。HAL 包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如相机或蓝牙模块。当框架 API 要求访问设备硬件时,Android 系统将为该硬件组件加载库模块。
第二章:Android常见桌面布局&第三章:Android常见界面控件
知识总结
- Android应用的界面是由View 对象和 ViewGroup 对象构建而成的。ViewGroup继承自View,ViewGroup作为容器盛装界面中的其他控件
Android应用的每个界面的根元素必须有且只有一个ViewGroup容器
Android常见布局和特点:
Android中常见的五种布局:相对布局(RelativeLayout)、线性布局(LinearLayout)、表格布局(TableLayout)、帧布局(FrameLayout)、约束布局(ConstraintLayout)
- 相对布局(RelativeLayout):相对布局是一种基于相对位置的布局方式,可以通过设置组件相对于其他组件或父容器的位置来实现布局。相对布局的特点是可以实现较为复杂的布局,但是对于嵌套较多的布局会影响性能。
- 线性布局(LinearLayout):线性布局是一种按照线性方向排列组件的布局方式,可以设置水平或垂直方向。线性布局的特点是简单易用,但是对于复杂的布局可能不够灵活。
- 表格布局(TableLayout):表格布局是一种按照表格形式排列组件的布局方式,可以设置行和列。表格布局的特点是可以实现类似表格的布局,但是对于不规则的布局可能不够灵活。
- 帧布局(FrameLayout):帧布局是一种将组件按照层次关系排列的布局方式,后添加的组件会覆盖前面的组件。帧布局的特点是可以实现简单的层叠布局,但是对于复杂的布局可能不够灵活。
- 约束布局(ConstraintLayout):约束布局是一种基于约束关系排列组件的布局方式,可以设置组件之间的相对位置和大小。约束布局的特点是可以实现复杂的布局,同时对于性能的影响较小。
Android中ListView和RecyclerView都是常用的列表控件,它们的主要区别如下:
- 性能方面:RecyclerView的性能比ListView更好,因为RecyclerView使用了ViewHolder模式,可以更好地重用视图,减少了内存的使用。
- 布局方面:ListView只支持线性布局,而RecyclerView支持多种布局,包括线性布局、网格布局、瀑布流布局等。
- 动画方面:RecyclerView支持ItemAnimator,可以方便地实现添加、删除和移动Item的动画效果。
- 数据源方面:ListView使用Adapter作为数据源,而RecyclerView使用Adapter和LayoutManager作为数据源和布局管理器。
- 缓存方面:RecyclerView支持灵活的缓存机制,可以自定义缓存策略,而ListView的缓存机制比较固定。
- 总的来说,RecyclerView比ListView更加灵活和高效,而ListView则更加简单易用。
Android开发中实现Button按钮点击事件的方式有以下几种:
- 在布局文件中声明onClick属性:在布局文件中声明Button的onClick属性,然后在对应的Activity中实现对应的方法,当Button被点击时,该方法会被调用。
- 通过匿名内部类实现OnClickListener接口:在对应的Activity中,通过设置Button的setOnClickListener()方法,传入一个实现了OnClickListener接口的匿名内部类,当Button被点击时,该匿名内部类的onClick()方法会被调用。
- 通过实现OnClickListener接口:在对应的Activity中,实现OnClickListener接口,并在onClick()方法中处理Button的点击事件,然后通过设置Button的setOnClickListener()方法,将该OnClickListener实例传入,当Button被点击时,onClick()方法会被调用。
- 通过继承Button类并重写onClick()方法:在对应的Activity中,创建一个自定义的Button类,继承Button类并重写onClick()方法,在onClick()方法中处理Button的点击事件,然后在布局文件中使用该自定义Button类。
- GridLayout是Android4.0(API14)之后的布局,它用一组没有宽度的线将屏幕区域划分为纵横交错的格子,将子控件放在格子(cell)里。网格线由网格线下标表示,有n列的网格就有n+1个网格下标,编号从0到n。
- Cell中的子控件可以通过android:layout_column及android:layout_row来确定它在网格中的位置,由android:layout_columnSpan和android:layout_rowSpan来确定该子控件占据多少列或多少行。
- 如果没有指定子控件的位置,则由GridLayout的布局属性orientation, rowCount 及 columnCount自动定位。
- orientation表示布局中View的排列主序; rowCount表示行的个数, columnCount表示列的个数
习题总结
- 用于给控件指定主题的属性是style
- 用于给Activity指定主题的属性是scheme
- Android UI开发中,如果TableLayout的第一个TableRow有两个控件,第二个TableRow有三个控件,那这个TableLayout就有(3)列
- Android相对布局中,使控件相对父控件底部对齐使用的属性是android:layout_alignParentBottom
- Android UI开发中,设置Activity的(android:theme=“@android:style/Theme.Dialog”)属性可以使Activity显示为对话框样式
- 设置GridLayout中的某控件占3行的是android:layout_rowSpan=“3”
- android:gravity是用于设置控件内部内容的对齐方式,例如文本、图片等。而android:layout_gravity是用于设置控件在父容器中的对齐方式,例如控件在父容器中的居中、靠左、靠右等。简单来说,android:gravity是设置控件内部内容的对齐方式,而android:layout_gravity是设置控件在父容器中的对齐方式。
- Android UI开发中,在GridLayout中如何设置某控件占3行android:layout_rowSpan=“3”
- Android UI开发中,如果一个应用中使用了主题,同时应用下的View也使用了样式,那么当主题和样式中的属性发生冲突时,主题的优先级低于样式
- Toast.makeText(context,text,time)必须在调用了show()方法后才能把信息显示出来
- Android UI开发中,网格布局是【Android4.0】新增的布局,它实现了控件的交错显示,能够避免因布局嵌套对设备性能的影响,更利于自由布局的开发
- EditText控件可以输入文字,且可以通过inputType属性控制输入的内容只能是数字或者字母等
- Android开发中,想让软件支持简体中文、美式英语两种环境,需要在res目录下新建两个values文件夹,分别命名为values-zh-rCN和values-en-rUS。
- Android UI开发中,TableLayout的行数由_ TableRow_对象控制的
- 主题 是应用到整个Activity和Application的样式
- Android系统中,_样式_用于定义布局显示在界面上的风格
- 主题与样式在代码结构上是一样的,不同之处在于主题的引用要在 AndroidManifest.xml 文件中引用
- Android有自己的国际化规范和方法,布局中所有文字资源只有通过_ android:text=“@string/xxx”__方式引用才能起到效果
- 在清单文件中,标签中的andorid:theme属性,代表的是_整个应用程序_主题的样式,而标签中是改变_当前界面_主题的样式
- Android系统中,__样式__用于定义控件的风格
- 在Activity代码中同样也可以引用自定义主题,只需要在Activity类onCreate()方法内添加setTheme()方法即可
- Toast.makeText(context,text,time)中的text是提示的信息