从零开始写第一个Android应用程序

学习Android准备知识

安卓四层系统构成:

  • 第一层:最底层 Linux层
  • 第二层:函数库层 由C或者C++写
  • 第三层:Application FrameWork 应用框架层
  • 第四层:最上层 应用层

在很久以前,安卓还是用的jvm虚拟机,但是好景不长,赚了钱的google因为版权问题被sun公司告了。

sun公司提出和解的条件就是每年给他在这个项目上10%的收益。这怎么能够行呢??google每年都在这个项目上都会有很大一笔收益。就这样看着这么多钱分给sun怎么行???

于是,google独立开发了另外一个虚拟机,名字叫做dvm (Dalvik vm,Dalvik虚拟机)。

JVM与dvm的区别:

JVM:

  • 编译后的文件格式:.java->.class->.jar
  • 基于的架构: 基于栈的架构

dvm:

  • 编译后的文件格式:.java->.class->.dex->.odex
  • 基于的架构:基于寄存器的架构(基于寄存器的架构明显比基于栈的架构快,寄存器是cup上的一个高速存储部件)

但是,就算这样google还是败诉了,因为dvm上用了8行左右的java代码。

ART模式

  • ART是Android Runtime的简称。

学习安卓不得不说的就是ART模式,这可是能够和IOS抗衡的一个基石。

它与传统Dalvik模式的区别:

Dalvik模式:

  • 在4.4以前安卓应用程序都在Dalvik模式的虚拟机上面运行。这种编译模式是还要依靠一个编译器来实现与应用程序沟通。
  • 应用程序每次运行时都需要将程序内的代码转换为机器码才能够运行。
  • 这种无形中附加的一道手续就加快了耗电较快,占用内存较大,就算高性能手机用久了也会出现卡顿。

ART模式:

  • 相对于ART模式,就很好的解决了这个问题。在安装应用程序时,自动对程序代码进行了预读取编译,让程序内的代码直接编译成机器语言,免去了Dalvik模式的要时时转换代码,实现了高效率,省电,占用更低的系统内存,手机运行流畅。
  • 但是凡事都有两面性,ART解决了该问题的同时,也会有占用略高的存储空间,注意是存储空间,而不是运行内存,安装程序时要相对普通Dalvik模式要长一些时间来实现预编译。

安装Android编程软件:

这里笔者用的最古老的Android编程软件,eclipse(下载地址),很多人都说google已经出了自己的亲儿子了Android Studio。但是由于笔者的老师用的是eclipse,所以这也就没有办法了。后续我会更新怎样安装Android Studio的相关文章。

安装方法:

  • 直接下载这个zip文件,直接解压并且安装好jdk就能够使用。

这里说一下重要的集成环境文件:

在sdk->platform-tools中

  • dx.bat是把所有.class文件编译成.dex文件的工具
  • aapt.exe(Android Application Package tools安卓应用打包工具)
  • adb.exe(Android Debug Bridge 安卓调试桥,能够在电脑上对手机进行应用的安装卸载等)

在sdk->platform中

  • 存放的都是一些安卓平台的版本,17版本是安卓4.2

创建第一个安卓应用程序Hello World

  • 右键点击创建一个安卓应用程序:

从零开始写第一个Android应用程序_第1张图片

从零开始写第一个Android应用程序_第2张图片

从零开始写第一个Android应用程序_第3张图片

接下来一路Next!!

接下来就是运行!!

介绍安卓应用程序目录结构:

继第一个安卓应用程序之后,我们来了解一下安卓的工程目录结构:

  • bin:编译之后产生,内含apk
  • src:存源代码
  • gen:在gen下面有一个非常重要的文件就是R.java文件,这个文件相当于一个资源字典,但是这个资源字典只能够查到res中的资源,却不能够查到assets中的文件
  • assets:专业名词叫做资产目录,这里存一些音频视频的资源文件或者一些xml文件等,基本上很多东西都可以放。
  • libs这里面放一些额外的jar包。
  • res:
    res是放资源的目录,这里面主要放图片资源(屏幕适配用的),布局资源,字符串等。
    下面讲解res下面的一些存储目录:
    drawable:放图片资源,你会发现有很多drawable开头的文件夹,这些文件夹是放不同图片做屏幕适配用的。
    layout:里面放一些布局文件,通常是xml类型的文件。
    menu:menu就对应主菜单键,能够配置主菜单的文件。
    values:values放一些字符串、颜色、styles。但是具体的values开头的文件夹也有很多,要想加字符串就加到第一个values中就行了。

AndroidManifest.xml:在所有的文件夹后面有一个AndroidManifest.xml文件,这个文件的重要性和我们JavaWeb中的web.xml差不多,AndroidManifest.xml一般配置四大组件、访问权限等整体属性。专业名称叫做清单文件。

那么既然AndroidManifest.xml如此重要就看看AndroidManifest.xml的一些内容吧。

首先从文件的开始你会看到:

android:versionCode:这个是版本的版本。这个字符串是不会显示给用户的一般是整数数值。
android:versionName:是对当前版本的描述。会被提取出来显示给用户。

android:minSdkVersion:允许最低的运行环境是多少,这里的值就是我们创建项目时设置的最低运行环境的值。
android:targetSdkVersion:目标运行环境,我的理解就是,targetSdkVersion是,如果这个版本还没有出来就是可以设置的,到了这个版本出来的时候就可以选择目标版本来运行你的应用程序。但是你也不能够盲目的设置。因为如果这个版本取消了某些类,可能你的应用程序就报废了。一般建议就设置到最新版本之后包括最新版本就行了。

接下来的标签application代表当前的应用。

在application标签里面有一些属性。
android:allowBackup代表是否可以备份应用程序的数据。一般我建议涉及很机密的应用程序不要设置这个值为true,因为如果可以进行备份了。那么如果其他人获取到了我们的备份数据,别人就可以在其它安卓设备上或者安卓虚拟机上边安装同款应用,并且同步这些数据到应用就可以查看你的聊天记录,或者关于金融方面的一些东西。因为这个时候你的应用状态被同步后就相当于被备份的时候。

android:icon:是指应用程序的图标。
android:label是指应用程序的名称。
android:theme代表应用程序主题的意思。

OK!!!

你可能感兴趣的:(Android)