《第一行代码 第二版》第一章

《第一行代码》

本博客是对第一行代码的精简总结,仅供个人学习使用。如需系统学习请购买正版或者电子书籍。

链接附上 🔗图灵社区:https://www.ituring.com.cn/book/2744/

第 1 章 开始启程,你的第一行Android代码

Android已经占据了全球智能手机操作系统70%以上的份额。

说了这些,想必你已经体会到Android系统炙手可热的程度,并且迫不及待地想要加入Android开发者的行列了吧。试想一下,10个人中有7个人的手机可以运行你编写的应用程序,还有什么能比这个更诱人的呢?

1.1 Android系统架构

4层架构:Linux内核层、系统运行库层、应用框架层和应用层

  1. Linux内核层

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

  2. 系统运行库层

    这一层通过一些C/C++库为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL|ES库提供了3D绘图的支持Webkit库提供了浏览器内核的支持等。

    在这一层还有Android运行时库,它主要提供了一些核心库,允许开发者使用Java语言来编写Android应用。另外,Android运行时库中还包含了Dalvik虚拟机(5.0系统之后改为ART运行环境),它使得每一个Android应用都能运行在独立的进程中,并且拥有一个自己的虚拟机实例。相较于Java虚拟机,Dalvik和ART都是专门为移动设备定制的,它针对手机内存、CPU性能有限等情况做了优化处理。

  3. 应用框架层

    这一层主要提供了构建应用程序时可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者可以使用这些API来构建自己的应用程序。

  4. 应用层

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

    结合图1.1你将会理解得更加深刻。

    {%}

    图1.1 Android系统架构(图片源自维基百科)

    2014年Google推出了号称史上版本改动最大的Android 5.0系统,使用ART运行环境替代了Dalvik虚拟机,大大提升了应用的运行速度,还提出了Material Design的概念来优化应用的界面设计。

最新版本 : https://developer.android.google.cn/about/versions/11

1.2 Android应用开发特色

  1. 四大组件

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

  2. 丰富的系统控件

    Android系统为开发者提供了丰富的系统控件,使得我们可以很轻松地编写出漂亮的界面。当然如果你品位比较高,不满足于系统自带的控件效果,完全可以定制属于自己的控件。

  3. SQLite数据库

    Android系统还自带了这种轻量级、运算速度极快的嵌入式关系型数据库。它不仅支持标准的SQL语法,还可以通过Android封装好的API进行操作,让存储和读取数据变得非常方便。

  4. 强大的多媒体

    Android系统还提供了丰富的多媒体服务,如音乐、视频、录音、拍照等,这一切你都可以在程序中通过代码进行控制,让你的应用变得更加丰富多彩。

    既然有Android这样出色的系统给我们提供了这么丰富的工具,你还用担心做不出优秀的应用吗?好了,纯理论的东西就介绍到这里,我知道你已经迫不及待地想要开始真正的开发之旅了,那我们就启程吧!

1.3 使用Android的日志工具Log

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

  • Log.v()。用于打印那些最为琐碎的、意义最小的日志信息。对应级别verbose,是Android日志里面级别最低的一种。
  • Log.d()。用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。对应级别debug,比verbose高一级。
  • Log.i()。用于打印一些比较重要的数据,这些数据应该是你非常想看到的、可以帮你分析用户行为的数据。对应级别info,比debug高一级。
  • Log.w()。用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下这些出现警告的地方。对应级别warn,比info高一级。
  • Log.e()。用于打印程序中的错误信息,比如程序进入了catch语句中。当有错误信息打印出来的时候,一般代表你的程序出现严重问题了,必须尽快修复。对应级别error,比warn高一级。
posted @ 2021-04-23 18:16  AronJudge  阅读(173)  评论(0编辑  收藏  举报