1. Android系统架构 大致分为四层:Linux内核层、系统运行库层、应用框架层和应用层。
Linux内核层:Android是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动,音频驱动,照相机驱动,蓝牙驱动,WiFi驱动,电源管理等。
系统运行库层:这一层通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL|ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。 同样在这一层还有Android运行时库,它主要提供了一些核心库,能够允许开发者使用Java语言来编写Android应用。另外,Android运行时库中还包含了Dalvik虚拟机(5.0系统后改为了ART运行环境),它使得每一个Android应用都能运行在独立的进程当中,并且拥有一个自己的Dalvik实例。相较于Java虚拟机,Dalvik是专门为移动设备定制的,它对于手机内存、CPU性能有限的情况做了优化处理。
应用框架层:这一层主要提供了构建应用程序时可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者也可以通过使用这些API来构建自己的应用程序。
应用层:所有安装在手机上的应用程序都是属于这一层的,比如系统自带的联系人、短信等程序,或者是你从GooglePlay上下载的小游戏,当然还包括你自己开发的程序。
2.项目结构 只有当你切换为Project模式才是真实的文件结构
在AndroidManifest.xml文件中 应用图标通过 android:icon属性指定 应用名称通过 android:label属性指定
3.日志工具Log 这个类提供了如下五个方法打印日志
Log.v()用于打印那些最为琐碎的、意义最小的日志信息。对应级别verbose,是Android日志里面级别最低的一种。 Log.d()用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。对应级别debug,比verbose高级一点。 Log.i()用于打印一些比较重要的数据,这些数据应该是你非常想看到的、可以帮你分析用户行为数据。对应级别info,比debug高一级。 Log.w()用于打印一些警告信息,提示程序在这个地方可能有潜在的风险,最好去修复一下这些出现警告的地方。对应级别warn,比info高一级。 Log.e()用于打印程序中的错误信息,比如程序进入到了catch语句当中。当有错误信息打印出来的时候,一般都代表你的程序出现严重问题了,必须尽快修复,对应级别error,比warn高一级。
Log.d()方法传入两个参数,第一个参数是tag,一般传入当前的类名就好,主要用于对打印信息进行过滤:第二个参数是msg,即想要打印的具体的内容 Tip:在onCreate()方法的外面输入logt,再回车,这时就会以当前的类名作为值自动生成一个TAG常量。要不然我们在log打印方法每一次都写tag参数过于麻烦。   log与System.out.println()方法对比: 后者日志打印不可控制,打印时间无法确定,不能添加过滤器,日志没有级别区分…
而log与logcat搭配是可以设置过滤条件以及输出级别的  
|