Andorid诞生
Android 是一个开源的,基于 Linux 的移动设备操作系统,如智能手机和平板电脑。Android 是由谷歌及其他公司带领的开放手机联盟开发的。
Android 提供了一个统一的应用程序开发方法,这意味着开发人员只需要为 Android 进行开发,这样他们的应用程序就能够运行在不同搭载 Android 的移动设备上。
谷歌在2007年发布了第一个测试版本的 Android 软件开发工具包(SDK),第一个商业版本的 Android 1.0,则发布于2008年9月。
Android操作系统最初是由安迪·鲁宾(Andy Rubin)开发出的,2005年被Google收购,并于2007年11月5日正式向外界展示了这款系统。
Android 架构
Android 操作系统是一个软件组件的栈,在架构图中它大致可以分为五个部分和四个主要层。
Android 的历史
Android 的代码名称现在从 A 排到了 L,分别是 Aestro, Blender, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwitch, Jelly Bean, KitKat and Lollipop。
让我们按顺序了解 Android 的历史。
纸杯蛋糕 (Cupcake)
甜甜圈 (Donut)
闪电泡芙 (Eclair)
冻酸奶 (Froyo)
姜饼 (Gingerbread)
蜂巢 (Honeycomb)
冰淇淋三明治 (Ice Cream Sandwich)
果冻豆 (Jelly Bean)
奇巧 (KitKat)
棒棒糖 (Lollipop)
Android应用开发特色
1、四大组件
活动(Activity )服务(Service)广播接收器(Broadcast Receiver )内容提供器(ContentProvider)
2、丰富的系统控件
3、SQLite数据库
4、强大的多媒体
5、地理位置的定位
Android目录结构
Android系统就是通过包名来区分不同的应用程序,因此包名一定要具有唯一性。
app
项目中的代码、资源等内容几乎都是放置在这个目录下的,我们后面的开发工作也基本都是在这个目录下进行的
java
java目录是放置我们所有Java代码的地方,展开该目录,你将看到我们刚才创建的HelloWorldActivity文件就在里面。
res
在项目中使用到的所有图片、布局、字符串等资源都要存放在这个目录下。
当然这个目录下还有很多子目录,图片放在drawable目录下,布局放在layout目录下,字符串放在values目录下。
所有以 drawable开头的文件夹都是用来放图片的
所有以mipmap开头的文件夹都是用来放应用图标的
所有以values开头的文件夹都是用来放字符串、样式、颜色等配置的
layout文件夹是用来放布局文件的
之所以有这么多mipmap开头的文件夹,其实主要是为了让程序能够更好地兼容各种设备。drawable文件夹也是相同的道理,虽然Android Studio没有帮我们自动生成,但是我们应该自己创建drawable-hdpi、drawable-xhdpi、drawable-xxhdpi等文件夹。
AndroidManifest.xml
这是你整个Android项目的配置文件,你在程序中定义的所有四大组件都需要在这个文件里注册,另外还可以在这个文件中给应用程序添加权限声明
build.gradle
这是app模块的gradle构建脚本,这个文件中会指定很多项目构建相关的配置
Android日志工具
Android中的日志工具类是Log ( android.util.Log ),这个类中提供了如下5个方法来供我们打印日志。
1、Log.v()。用于打印那些最为琐碎的、意义最小的日志信息。对应级别verbose,是 Android日志里面级别最低的一种。
2、Log.d()。用于打印一些调试信息,这些信息对你调试程序和分析问题应该是有帮助的。对应级别debug,比 verbose高一级。
3、Log.i()。用于打印一些比较重要的数据,这些数据应该是你非常想看到的、可以帮你分析用户行为数据。对应级别info,比 debug高一级。
4、Log.w()。用于打印一些警告信息,提示程序在这个地方可能会有潜在的风险,最好去修复一下这些出现警告的地方。对应级别 warn,比 info高一级。
5、Log.e()。用于打印程序中的错误信息,比如程序进入到了catch语句当中。当有错误信息打印出来的时候,一般都代表你的程序出现严重问题了,必须尽快修复。对应级别error,比 warn高一级。
快捷键logt
private static final String TAG = “MainActivity”;
private void showLog(){
Log.v(TAG,“Hello,I am VERBOSE”); // logv
Log.d(TAG,“Hello,I am DEBUG”); // logd
Log.i(TAG,“Hello,I am INFORMATION”); // logi
Log.w(TAG,“Hello,I am WARNNING”); // logw
Log.e(TAG,“Hello,I am ERROR”); // loge
}
Log.d()方法中传入了两个参数:第一个参数是tag,一般传人当前的类名就好,主要用于对打印信息进行过滤;第二个参数是msg,即想要打印的具体的内容。



