Android笔记

项目结构

  • java文件夹下:业务逻辑
  • AndroidManifest.xml:项目配置文件
  • res/layout文件夹下:页面布局
  • res/values文件夹下:全局常量
  • res/drawable文件夹下:图片资源
  • res/mipmap系列:不同分辨率的图片资源,根据屏幕大小使用不同规格的图片,一般放APP图标

单位

单位 说明
dp device independent pixels(设备独立像素),不同设备有不同的显示效果,推荐使用这个
sp scaled pixels(放大像素),字体大小一般用这个
px pixels(像素)
pt point,1pt = 1/72 英寸

四大组件

  • Activity
  • Service
  • BroadcastReceiver :允许你的应用接收来自各处的广播消息,比如电话、短信等,当然,你的应用也可以向外发出广播消息
  • ContentProvider :为应用程序之间共享数据提供了可能,比如你想要读取系统通讯录中的联系人,就需要通过ContentProvider来实现

六大基本布局

  • 线性布局 LinearLayout :View按水平或竖直排列
  • 相对布局 RelativeLayout :使用margin和padding相对父容器布局
  • 表格布局 TableLayout<TableLayout>内使用<TableRow>定义一行,<TableRow>中几个元素就是几列
  • 帧布局 FrameLayout :即叠层布局。帧布局的大小由控件中最大的子控件决定
  • 绝对布局 AbsoluteLayout :已弃用,建议改用 ConstraintLayout
  • 网格布局 GridLayout :将视图按格子排列

Log

Android中的日志工具类是Log(android.util.Log),这个类中提供了如下5个方法来供我们打印日志(级别从低到高)。

  • Log.v()。级别verbose,用于打印那些最为琐碎的、意义最小的日志信息
  • Log.d()。级别debug,用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的
  • Log.i()。级别info,用于打印一些比较重要的数据,这些数据应该是你非常想看到的、可以帮你分析用户行为的数据
  • Log.w()。级别warn,用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下这些出现警告的地方
  • Log.e()。级别error,用于打印程序中的错误信息,一般代表你的程序出现严重问题了,必须尽快修复

Android中的序列化

Parcelable,读作/ˈpɑːrsələbəl/

TODO

ListView

详见我的另一篇文章:Android中的ListView

RecyclerView

详见我的另一篇文章:Android中的ListView

ShapeableImageView

详见我的另一篇文章:Android中的ShapeableImageView

使用阿里巴巴图标库

首先在阿里巴巴图标库下载svg图标,保存位置任意:

下载svg图标

drawable文件夹右键创建 Vector Asset:

创建xml文件

如图选择 Local file,选择svg文件的路径:

创建asset

报错:No speakable text present

程序期望有一些可以被说出来的文本,用于无障碍朗读模式之类的,但是在提供的数据中并没有找到可以被转化为语音的文本。

解决方法:tools:ignore="SpeakableTextPresentCheck"

CLEARTEXT communication to xx.xx.xx.xx not permitted by network security policy

参考文章

出于安全性考虑,Android 9.0 后默认只支持HTTPS而不允许使用HTTP,要使用HTTP需要在AndroidManifest.xml<application>内添加android:usesCleartextTraffic="true"