Andorid学习笔记
第一章、Andorid开始启程
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,即想要打印的具体的内容。