Study01【Android】Hello World丨第二行代码

2003 年 10 月,Andy Rubin 等人一起创办了 Android 公司。
2005 年 8 月谷歌收购了这家仅仅成立了 22 个月的公司,并让 Andy Rubin 继续负责 Android 项目。
2008 年 推出了 Android 系统的第一个版本。

2010 年被 Linux 团队从 Linux 内核主线中除名。又由于 Android 中的应用程序都是使用 Java 开发的,甲骨文则针对 Android 侵犯 Java 知识产权一事对谷歌提起了诉讼……
仅仅推出两年后,Android 就超过了已经霸占市场逾十年的诺基亚 Symbian,成为了全球第一大智能手机操作系统

Android 系统架构

Android 系统架构

Linux 内核层

Android 系统是基于 Linux 内核的,这一层为 Android 设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi 驱动、电源管理等。

系统运行库层

这一层通过一些 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 来构建自己的应用程序。

应用层

所有安装在手机上的应用程序都是属于这一层的,比如系统自带的联系人、短信等程序,或者是你从 Google Play 上下载的小游戏,当然还包括你自己开发的程序。

四大组件

Android 系统四大组件分别是活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)。

其中 活动 是所有 Android 应用程序的门面,凡是在应用中你看得到的东西,都是放在活动中的。而 服务 就比较低调了,你无法看到它,但它会一直在后台默默地运行,即使用户退出了应用,服务仍然是可以继续运行的。广播接收器 允许你的应用接收来自各处的广播消息,比如电话、短信等,当然你的应用同样也可以向外发出广播消息。内容提供器 则为应用程序之间共享数据提供了可能,比如你想要读取系统电话簿中的联系人,就需要通过内容提供器来实现。

掌握日志工具的使用

使用 Android 的日志工具 Log

Android 中的日志工具类是 Log(android.util.Log),这个类中提供了如下 5 个方法来供我们打印日志。Log.v() → Log.d() → Log.i() → Log.w() → Log.e()。

Log.d() 方法中传入了两个参数:第一个参数是 tag,一般传入当前的类名就好,主要用于对打印信息进行过滤;第二个参数是 msg,即想要打印的具体的内容。

快捷键

对于快捷输入,在 Android Studio 当中也是有的,比如你想打印一条 debug 级别的日志,那么只需要输入 logd,然后按下 Tab 键,就会帮你自动补全一条完整的打印语句。输入 logi,然后按下 Tab 键,会自动补全一条 info 级别的打印日志。输入 logw,按下 Tab 键,会自动补全一条 warn 级别的打印日志,以此类推。

另外,由于 Log 的所有打印方法都要求传入一个 tag 参数,每次写一遍显然太过麻烦。这里还有一个小技巧,我们在 onCreate() 方法的外面输入 logt,然后按下Tab键,这时就会以当前的类名作为值自动生成一个 TAG 常量,如下所示:

public class HelloWorldActivity extends AppCompatActivity {
    private static final String TAG = "HelloWorldActivity";
    ...
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,242评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,915评论 18 139
  • 我是日记星球133号星宝宝宋翠蓝,我正在参加日记星球第3期蜕变之旅。 原创日记(26)2017.03.14 晴 日...
    黑金公主阅读 260评论 6 6
  • 由于身体发育始终未到尽头,又有着无惧肥胖的勇敢,从头到尾没有放弃过一点点口舌之欲。每日吃着嘴里的想着锅里的...
    疯子爱笑两百斤阅读 512评论 0 0
  • 午后难成眠, 慵然意缱绻。 临窗忽现银素裹, 欣喜万千。 佳人似在前, 缈缈恍如烟。 风舞伊人人亦舞, 半晌流连。...
    NineSniper阅读 365评论 0 0