Log类 直接调用静态方法输出调试信息,在“Logcat”窗口中输出,并可以通过过滤器对<tag>标签进行筛选。“Logcat”窗口中输出的调试信息有以下5种形式
- Verbose:任何信息都会输出,使用Log.v();
- Info:输出任何提示信息,使用Log.i();
- Error:输出任何错误信息,使用Log.e();
- Debug:输出调试信息,使用Log.d();
- Warning:输出警告信息,使用Log.w();
Context类 是一个抽象类,有两个子类:ContextWrapper类和ContextImpl类,ContextWrapper类是上下文功能的封装类,而ContextImpl类是上下文功能的实现类。
ContextWrapper类的子类包含ContextThemeWrapper类、Service类和Application类。其中,ContextThemeWrapper类是一个带主题的封装类,Activity类是他的子类。
布局
线性布局LinearLayout:进行水平或垂直排列布局。
相对布局RelativeLayout:相对排列,即子控件以相对父控件或相对于父控件的相对位置进行放置的布局方式。
表格布局TableLayout:表格形式布局,还需要和TableView控件配合使用。
网格布局GridLayout:网格形式排列布局的UI控件。
帧布局FrameLayout:依次堆叠形式排列布局。
约束布局ConstraintLayout:依次堆叠形式排列布局的UI控件,其子控件通过标签属性进行约束与RelativeLayout类似,但嵌套层级更少更加灵活。
主要说一下约束布局 ConstraintLayout
属性 | 说明 |
app:layout_constraintStart_toStartOf | 设置左侧与指定控件的左侧约束 |
app:layout_constraintStart_toEndOf | 设置左侧与指定控件的右侧约束 |
| 设置右侧与指定控件的左侧约束 |
| 设置右侧与指定控件的右侧约束 |
app:layout_constraintTop_toTopOf | 设置顶端与指定控件的顶端约束 |
app:layout_constraintTop_toBottomOf | 设置顶端与指定控件的底部约束 |
app:layout_constraintBottom_toTopOf | 设置底端与指定控件的顶端约束 |
app:layout_constraintBottom_toBottomOf | 设置底端与指定控件的底端约束 |
| 设置宽度和高度的比例。高度和宽度至少有一个值应设置为“0dp”,在运行时根据该属性值自动设置为“0dp”的尺寸,再运行时根据所有约束条件和该属性值自动计算最大的尺寸。 |
app:layout_constraintCircleAngle | 设置约束角度 |
app:layout_constraintCircleRadius | 设置约束 |
Activity的启动模式
任务栈 :放置Activity实例容器,使用先进先出的栈进行存储,因此Activity不支持重新排序,只能根据压栈和出栈操作更改Activity的顺序 standard 标准模式 没有特殊情况下,大多数使用标准模式启动 singleTop:栈顶复用模式 启用singleTop栈顶复用模式和Activity处于当前栈的顶部,不会创建新的实例,而是直接启动该Activity。 onCreate()和OnStart()方法不会调用,而是调用onNewIntent()方法。当启动Activity不在当前栈的顶部时,会创建一个新的实例。 能节省创建数量节省内存可以避免重复创建新的实例 singleTask:栈内复用模式 常用语App首页的Activity,且长时间保留在工作栈中,保证首页的Activity的唯一性 singleInstance: 单实例模式除了具有singleTask模式特性,还具有全局唯一性 常用语工具类App,被其他App调用时能够保证全局唯一性,如拨号、短信、相机、地图等
Fragment和Activity的生命周期关系
两种service的生命周期
Service是在后台可以长时间运行且没有可视化视图的组件,Service(服务)不是线程,也不是在主线程外的方法。
绑定的Service会随着APP的退出而终止,未绑定的service不会随着App的退出而终止。使用Context.unbindService(ServiceConnection)方法可以解除绑定。
书到用时方恨少,纸上得来终觉浅。不断更新。2021年3月1日17:01:54