深入学习Android第一个应用程序

学习了上一章搭建Android开发环境与开发第一个应用程序(一)的内容后,下面我们来深入学习第一个应用程序。

在第一个应用程序在模拟器中运行起来后,我们也只是有一个感性的认识,而对程序的结构也没有深入的了解与说明,只是简单的建立第一个应用程序,那么下面我们来对这个应用程序做下深入的说明。

首先从代码结构说起:

java源代码存放在src目录下,这与所有的Java项目都是一样的,并没特殊之处。在这的包声明为org.ourpioneer。

Aandroid自动控制生成的文件实在gen目录下存放,R.java是这里面最重要的一个,其中会自动放置我们添加的所有资源和组件,比如文字信息,图片信息,视图控件信息,布局信息等。在这我们不能修改该文件的任何内容,否则程序会引发严重错误。再有一点是我们编写的程序不会直接与资源,组件文件打交道,这都是通过R.java中的信息来获取的。

Android 2.3.3是说我们构建Android项目使用的最低版本号,也就是说我们构建的程序不能在低于2.3.3版本的Android设备上运行。在这里我们也可以看到我们引用Android类库的位置。

Android Dependencies是我们项目引用的依赖,这里仅有一个,我们可以点看它的内容。

assets表示资源,是程序资源文件存放的地方,这些资源比如图片,音乐,文字和配置信息等。但是查看时文件夹是空的,说明我们没有使用,主要是因为我们现在一般使用res文件夹来存放这些信息了。

bin目录,存放的是我们项目编译之后的文件,同时也可以在这里找到生成的apk包,那么可以在Android设备上使用该apk来进行安装。

我们真正存放资源文件的地方是res目录,根据命名来看,存放的是图片的文件夹一定是以drawable开头的目录。ldpi存放低分辨率图片,mdpi存放中等分辨率图片,hdpi存放高清图片,xhdpi存放的就是超高清的图片了。它们针对的是不同分辨率的Android设备。在我们创建的项目中,这四个图片文件夹下都有内容相同的一个图片(ic_launcher.png),打开后发现它们的分辨率是不同的。

res下的layout目录存放的是布局管理器的配置信息,values目录存放的是所有的文字信息,也就是用于显示的文字和布局的配置是分离的,其作用是便于项目的维护。layout下的main.XML会自动反映到R.java中,如果我们再在layout目录下创建一个布局文件,那么这个文件名也会自动反映到R.java中。

res中的values下的文件都是资源文件,若我们继续新建,都是resources类型的文件,而在resources中的string类型值会被自动反映到R.java中。resources有string,color,style等子类型,它们也都会自动反映到R.java中,因为这些都是我们程序中的资源。如果将它们的name属性修改或者将它们删除,那么R.java中的内容也会自动被修改或移除,这都是同步进行的。

下面了解一下strings.xml,我们打开看看这个文件:

Xml代码

根元素是resources,说明这也是一种资源,而子元素string说明是字符串类型的资源,这里存在两个string类型的值,分别是app_name和hello,它们可以在项目的其它地方使用。

补充说明几点内容:

为了今后的扩展,我们也可以在res/values下创建其它文件,例如存放数组的arrays.xml,存放样式的styles.xml等。

同时我们也可以在res下创建raw文件夹用于放置多媒体原生文件,如视频,音频等。用于放置配置信息的,我们可以创建xml文件夹。创用于放置动画效果的,我们可以创建anim文件夹。

再来看看布局管理器配置文件main.xml:

Xml代码

我们先不深入研究布局管理器,这里面是我们第一个程序的界面中的内容。TextView,一个线性布局管理器中仅有一个组件,用于显示文本信息,这里的android:text属性就是使用的strings.xml中的hello字符串“Hello World, HelloAndroidActivity!”。

下面再来看看AndroidManifest.xml,这是一个Android项目级的配置文件,是Android项目中最重要的组成部分。比如,现在在这个文件中有如下信息:

Xml代码

manifest是这里的根元素,schema声明也不多做解释,其中的package是我们打包的信息,versionCode和versionName表示我们程序的版本。uses-sdk元素的minSdkVsersion表示的是最小版本,2.3.3就是10。

元素icon表示我们程序安装在Android设备上的图标,也就是drawable文件夹下的ic_launcher.png。label表示在Android设备中程序的显示名称,就是前面strings.xml中的app_name字符串。

元素是程序中的Activity声明,其中的name连同根元素manifest中的package共同组成Activity的类全名,就是org.ourpioneer.HelloAndroidActivity。

下面看看R.java,看看此时项目为我们自动生成了哪些信息:

Java代码

注释中声明,Android生成的文件是不允许修改。final类型的类是不允许被继承的,在R.java中声明的静态内部类就是我们上面说的各种资源,比如attr,drawable,layout,string等,那么我们在程序中就可以通过R.string.hello来获取到hello。

最后看一下我们仅有的一个Java类,也就是HelloAndroidActivity,这是一个Activity程序,简单来说就是我们和Android程序进行交互的接口,通过Activity程序,我们可以完成界面的显示和事件的处理。

Java代码

HelloAndroidActivity类继承了android.app.Activity类,那么就是Android中的一个人机交互程序,覆盖onCreate方法,说明在程序创建时要做的事情,调用父类中方法,也就是可以看作为Android程序的生命周期方法。然后设置使用的布局管理器,调用方式是通过R.java来进行的。这里R.layout.main就是调用我们layout目录下的main.xml中编写的布局管理器和组件。

到这里,我们解释了第一个应用程序,对第一个应用程序有了更深一部的了解。在此之前我们已经在模拟起中看到了这个程序,但还没在真正的Android设备中来运行。如果要在Android设备中安装,那么就要先进行apk文件的创建。我们在项目的bin目录下可以获得为我们自动创建的apk文件,但是我们还是通过手动的方式来看看如何进行apk文件的打包。

首先在AndroidManifest.xml中添加下面的内容:

Xml代码

也就是说我们要有安装包的权限。

之后在Eclipe中的项目上点击邮件,选择Export导出,看到如下内容:

我们选择Export Android Application继续安装,

这里是选择我们要导出的Aandroid项目,我们只有一个HelloAndroid,那么就选择继续,

第一次导出需要创建keystore文件,我们选择一个keystore文件的位置,并输入密码继续,

填写这么多内容就足够了,密码是我们上个页面设置的,然后继续,

选择apk文件的位置,点击完成,我们就得到了导出的apk安装文件。

下面来看看我们在Android设备中来进行实际安装。这里的运行环境为Motorola Defy+,Android版本为2.3.7的MIUI,下面的运行效果是我们的最终效果,和在模拟器中的运行效果是一致的,如果Android设备使用的ROM不同,那么UI显示也略有不同:

深入了解了第一个应用程序说明后,对下面我们学习应用程序的扩充有一定的帮助,希望朋友们耐心记忆。

第一个android应用程序,深入学习Android 第一个应用程序相关推荐

  1. Android群英传神兵利器读书笔记——第一章:程序员小窝——搭建高效的开发环境

    Android群英传神兵利器读书笔记--第一章:程序员小窝--搭建高效的开发环境 目录 1.1 搭建高效的开发环境之操作系统 1.2 搭建开发环境之高效配置 基本环境配置 基本开发工具 1.3 搭建程 ...

  2. Windows网络编程案例教程-董相志 学习记录 第一个网络程序hostent

    <Windows网络编程案例教程>-董相志 学习记录 第一个网络程序hostent 第一章 网络编程概述 1.3.5第一个网络程序--hostent 对主机的名称和地址解析 WinSock ...

  3. 听说写博客是程序猿学习的第一步

    听说写博客是程序猿学习的第一步 对ICT类技术神往已久,尤其是编程和算法.只是苦于自制力有限,始终无法入门.每每看到别人学习编程.解决了问题,我总是很兴奋,憧憬着自己也能像他们一样用代码实现一些自己的 ...

  4. c# 程序员学习android(1)引导界面--viewpager的使用

    本次之前说一下android开发工具.android开发工具有2种,一种是eclipse 一个是谷歌android-studio-bundle 前者需要配置,后者不需要.会自动下载sdk.配置方法我就 ...

  5. 【Android -- 动画】如何学习 Android 动画?

    文章目录 Android Training & Guides 学习路线图 官方博客 GitHub 高星(感兴趣的)项目 Android Training & Guides Androi ...

  6. android编程从零开始,从零开始学习android开发

    博主最近开通了Android栏目,现在正在从零开始学习android,遇到的所有值得分享的知识点以及遇到的问题将发布在这个博客的android栏目下. 因为我有着深厚的java底子,所以学习起来得心应 ...

  7. 开启微信小程序的学习窗口(第一课)

    第一个问题 什么是微信小程序 微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫 ...

  8. c# 程序员学习android(2)登陆界面

    上次说的是引导界面本次我们说说登陆界面 android的登陆界面很多.我想做一个类似于qq的但是头像是圆形的这种,下面是样图 我想做成这样的,这里有两个技术难点,一个是这个圆形的图,一个是下面的用户名 ...

  9. android最新知识点总结,学习android之 知识点总结

    开发andorid程序必备: Eclipse 3.5以上版本 SDK类似于java中的jdk. Adt 是开发Eclipe上的一个插件. 组件使用: TestView: 为文本设置超链接,需设置该属性 ...

  10. android设置列表id,学习Android绑定列表的时候提示:You must supply a resource ID for a TextView,有完整示例代码...

    这个是代码,我都是照着示例做的,但还是不行,查了一天了,到底是哪里出问题呢 万分感谢 package cn.com.ava.lesson4_fancy_view; import android.con ...

最新文章

  1. vue-devTools插件安装流程
  2. vue引入图片路径的三种主要方法
  3. 415. Add Strings
  4. PHP访问MySQL数据库
  5. [CF.Skills]Windows Mobile如何编程实现免提功能
  6. 数据分析与挖掘建模实战001:导学,概述
  7. 引领架构创新之路第八届系统架构师大会撼世来袭
  8. linux wc 修改文件,Linux wc命令
  9. sql 连接高级语言之后查询出现乱码_还有不会用 SQL 的程序员吗?
  10. vue学习笔记—bootstrap+vue用户管理
  11. matlab 全局符号变量,优化全局变量使用 - MATLAB Simulink Example - MathWorks 中国
  12. 手提计算机10发现不到打印机,笔记本电脑搜索不到打印机怎么样解决
  13. 纯CSS3绘制的小猫笑脸动画
  14. 什么pdf转换成word转换器在线好
  15. 如何下载台湾的硕博论文
  16. firefox常见问题解答
  17. 写给在校生——听师兄传的IT之道
  18. 易语言源码利用QQ CK批量导入登录京东/京喜账号,进行登录
  19. Stanford Parser句法分析标注含义讲解
  20. 什么是SPOOLing?

热门文章

  1. java程序员必须会的技能
  2. Oracle DUL/AUL/ODU 工具说明
  3. 庆祝自己通过系分考试,分发资料
  4. 蓝桥杯 错误票据——2013年省赛C/C++ A组
  5. idea 2019.2 svn 忽略文件/目录 .idea *.iml target log
  6. php 中echo用法,php中echo()函数的用法(附代码)
  7. 显示屏连接控制卡超时_天津塘沽、开发区怎么更改led电子显示屏字幕,如何修LED屏...
  8. Mybtis进行mysql数据库的修改表名操作
  9. mysql 系统变量_MySQL系统变量(查看和修改)
  10. java 正则表达式 替换 html,java 正则表达式 替换 html