Android 系统构架
- Linux kernel(内核)
- 为Android 设备提供底层的驱动,如显示驱动,音频驱动,照相机驱动,蓝牙驱动。
- 系统运行库层。
- c/c++提供了主要的特性。如:
SQLite库提供了数据库支持;
openGL|ES库提供3D绘画的支持;
Webkit库提供了浏览器内核的支持。 - Android运行时库。
主要提供一些核心库,允许开发者使用Java语言来编写Android应用。
ART运行环境使得Android应用运行在独立的进程。
- c/c++提供了主要的特性。如:
- 应用框架层。
- 提供了构建应用时可能用到的API。供Android自带的核心应用和开发者使用。
- 应用层。
- 手机上的应用都是属于这一层。
前行必备-----掌握日志工具的使用
- 为什么使用Log而不使用System.out
- 日志打印不可控制;
- 打印时间无法确定;
- 不能添加过滤器;
- 日志没有级别区分;
- Android 的日志工具类Log(android.util.Log)提供了5种方法,级别依次上升:
- Log.v() --- 对应verbose,打印最为琐碎的、意义最小的信息。
- Log.d() --- 对应debug,打印调试和分析问题有帮助的信息。
- Log.i() --- 对应info,打印你非常想看到的、可以帮你分析用户行为的数据的信息。
- Log.w() --- 对应warn,打印警告信息。
- Log.e() --- 对应error,打印错误信息。
public class HelloWorldActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hello_world_layout);
Log.d("HelloWorldActivity", "onCreate execute");
}
}
Log.d()
方法包含了两个参数:
- 第一个参数tag,用于对打印信息的过滤,一般传入当前的信息进行过滤;
-
第二个参数msg,传入想要打印的具体的内容。
- verb,Dubug,Info,Warn,Error,Assert级别依次上升。
- 在输入框中输入关键字内容,只有符合关键字条件的日志才会被显示出来。
-
logcat中的过滤器(filter)
过滤器的名字为MainActivity,并对MainActivity过滤。