- 浏览: 977026 次
- 性别:
- 来自: 深圳
博客专栏
-
飞雪的Android学习总...
浏览量:146020
文章分类
最新评论
-
lovebingheji:
感谢,看完了
Spring方法注入 -
ruijin5566:
package concurrent;
import ja ...
淘宝面试题:如何充分利用多核CPU,计算很大的List中所有整数的和 -
helonghui:
Nginx在高并发的时候,内存开销比Apache更加有优势!
使用Nginx搭建PHP服务器 -
xjgpeople:
不错,写的非常不错
基于Android的浮动组件,可以用于应用中的新功能展示等等。 -
Bj_junxia:
不允许加入了,呜呜呜。。。。
Android系列教程之五:Activity的生命周期
Android系列教程目录:
-
Android教程之一:Window下搭建Android开发环境
-
Android教程之二:Linux下搭建Android开发环境
-
Android教程之三:第一个Android应用,HelloWorld
本文版权归飞雪无情 所有,转载请注明出处, 永久链接: http://flysnow.iteye.com/blog/812375
我新建了一个Android的技术交流群,群号为86686524 120059404 ,感兴趣的可以申请加入,大家一块学习。
一: Android 项目的目录结构
-
Android
项目结构概览。其实
Android
项目的目录结构和
Java
的差不多,没有太大变化,如下图:
- 可以看到 src 文件夹里的是源文件, Android2.2 是引用的类库,这些和 java 的都一样,那么下面的这个 gen 是什么呢?这个里面的类就是 ADT 自动生成的啦,一般只有一个 R.java 文件,是不能修改的,那么他是怎么生成的呢,看到下面的 res 文件夹了吗? R.java 就是根据资源文件夹 res 生成的 ,R.java 里放的就是 res 中资源文件索引,用一个常量标记 res 中的一个资源文件,便于我们在代码中引用。
-
现在让我们看看
res
文件夹,这下面又有几种类别,其中
drawable
是放图片的,有
drawable-hdpi,drawable-ldpi,drawable-mdpi
之分,对应的是高密度图片,低密度图片,和中等密度的图片,如果你要使用一个图片,你根据密度的不同做了三种相同的图片分别放到这三个文件夹里,那么你的应用运行在不同分辨率机器上的时候,就会根据该机器的分辨率自动选择合适的图片,怎么样智能吧!下图是密度和手机尺寸对应关系表。
Layout 中放的就是布局文件了, Android 支持通过 xml 生成视图,这样视图就和逻辑控制的代码分离了便于管理。
Values 中放的就是我们常用的字符串,颜色值,数组等 .
其实资源文件还有多种,这里生成的 HelloWorld 结构中没有,比如动画 , 菜单等。
接下来的这个 AndroidManifest.xml 很重要,每个 Android 项目都有一个,这是 Android 的配置文件,我们可以在这里配置应用的属性,定义 Activity ,声明使用的权限等等,这里就不具体介绍,后面的章节会讲到 .default.properties 也是一个配置文件。
二: Android 项目文件的具体讲解
- 首先看这个 HelloWorld 类。
public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
他继承了 Activity ,前面讲了,一个 Activity 可以想象成一个手机的屏幕,用于展示一屏的内容,所以所有要展示内容的屏幕都要继承 Activity 才能实现,接着覆盖了 onCreate() 方法对该 Activity 进行初始化 setContentView(R.layout. main ); 设置了使用 main.xml 这个布局文件作为当前 Activity 的内容展示 .main.xml 就是放在 res 下, layout 下面的文件 xml 布局文件 , 我们可以直接使用 R.layout.main 进行直接的引用他,这也是 Android 亮点的地方,省得我们为了引用一个 xml 文件再使用 File 类去读取,我们要做的只是把这个 xml 文件的索引给 Android ,他会自动的帮我们找到它并使用 .
2. main.xml 布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
布局文件的内容不多 , 开始就是一个 LinearLayout 组件的定义,然后在这个 LinearLayout 放了一个用于显示文字的 TextView 。现在来看一下几个参数 :
- . LinearLayout 一个线性布局面板,只能垂直和水平布局, android:orientation="vertical" 代表里面的子元素只能垂直排列,而使用 android:orientation="horizontal" 就标识里面的子元素水平排列 ..
- . android:layout_width 定义当前视图占的宽度,这里是 fill_parent 即为充满整个屏幕。而设置成 wrap_content 会根据当前视图的大小只能的改变宽度
- . android:layout_height 是定义视图的高度,这里也是填充整个屏幕。而设置成 wrap_content 会根据当前视图的大小只能的改变高度。
- . android:text 是这是 TextView 要显示的文本,可以是字符串,也可以是一个字符串的引用,这里是一个引用,引用的是 strings.xml 定义好的名字为 hello 的字符串
3. string.xml 介绍。
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, HelloWorld!</string> <string name="app_name">HelloWorld</string> </resources>
这里我们看看就明白了,只要是定义一个个的 K-V 的键值对,供其他地方使用。比如上面的 main 中对 hello 的引用。这对字符的统一管理和国际化有很大的意义。
4. AndroidManifest.xml 的介绍
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.flysnow" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HelloWorld" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="8" /> </manifest>
这是项目的重要配置文件,诸如 Activity ,权限, Intent 等都在这里配置
- Package: 定义了该应用的包。
- android:versioCode 定义了应用的版本号
- android:versionName 定义了应用的版本名字
- application 标签定义了一个应用,一个项目最多有一个 Application 标签。
- android:icon="@drawable/icon" 定义了应用的图标 引用资源文件中的 icon 图片
- android:label="@string/app_name" 定义了应用的名称
- activity 标签定义了一个 Activity ,你的每一个 Activity 必须在这里定义,否则不能运行 .
- Android:name 定义了 Activity 的类名 , 这里的 .HelloWorld 是以上面的 Package 定义为基础的,也就是 Package(com.flysnow) 加上这个 android:name(.HelloWorld) 要能定位到这个 Activity(com.flysnow.HelloWorld) ,否则就是找不到 .
- android:label 定义了该 Activity 的标题
- intent-filter 定义一个 Intent 过滤器,用于标记对应的 Activity ,以便 Android 系统能找到该 Activity ,定义的是隐性的 Intent ,主要使用两个子标签 action 和 category 来区分每个 Intent 。
最后的 <uses-sdk android:minSdkVersion="8" /> 就是定义应用的最低 SDK 的级别,前面讲过,,,想看的可以参见 Android教程之三:第一个Android应用,HelloWorld
三:小结
为了把 Android 项目的各个部分说清楚,啰嗦的多了一点,希望个为看官耐心看完 .
下节预告, Activity 的生命周期
评论
发表评论
-
android新建大分辨率模拟器不能启动的问题
2015-03-08 17:36 0新建的Android模拟器的分辨率超过一定大小的时候,就无法启 ... -
android覆盖式引导
2015-03-08 17:35 0我们在开发产品的时 ... -
Android产品开发中常用的一些开源项目
2015-03-08 17:27 2212你在工作中可能会遇到同时给你说不要重复发明轮子,其实这个说的 ... -
Android HttpClient Session保持
2015-03-08 17:20 14538现在单机版本的App已经 ... -
java.lang.UnsupportedOperationException android.view.GLES20Canvas.clipPath
2015-03-08 17:18 2104今天自定义控件使用Canvas绘图的时候遇到的这个错误,看错 ... -
解决Android SDK Manager不能更新的问题
2015-03-08 17:16 3221今天打算更新到Android4.3,看看里面的新的API,D ... -
PenddingIntent.getActivity
2013-03-11 16:40 0PenddingIntent.getActivity -
关于Android的Holo主题
2013-02-22 23:47 8137Android曾经为了优化用户体验,把原生的 ... -
Android Layout布局文件里的android:layout_height等属性为什么会不起作用?
2013-01-29 00:19 20576有的时候,我们配置好的布局文件,在加载完成添加到我们 ... -
震动反馈
2013-01-10 20:58 0震动反馈 -
Android ViewGroup.setDescendantFocusability函数
2013-01-05 12:15 22449这个函数是在ViewGroup里定义的,主要用于控制child ... -
Android设计应用图标不用愁---Asset Studio Integration来帮你
2011-11-12 00:18 8199Android Asset StudioWeb版是 ... -
最新最全的Android4.0 API源代码下载和完整Android4.0源代码下载教程
2011-11-15 09:41 2306这时刚刚整理好的最新的,包含所有的API的源代码,第一次上传的 ... -
基于Android的浮动组件,可以用于应用中的新功能展示等等。
2011-12-10 17:12 4685前言 在开发Android应用时,加新功能是必不可少 ... -
提取出的最新Android4.0 API 源代码
2011-11-15 14:06 4047提取出的Android4.0 API 的源代码,也就是andr ... -
Android中我为什么发不了邮件--Android邮件发送详解
2011-07-19 22:50 15642版权所有@飞雪无情,转载请著名出处:http:/ ... -
Android Developer和Google Group可以正常访问了
2011-06-21 08:56 2393Android Developer和Google Group可 ... -
Android中关于线程使用的几点注意事项
2011-05-21 22:43 8722版权所有:飞雪无情 ... -
Android系列教程之十二:Intents and Intent Filters(三)
2011-03-29 10:02 12941接上节继续。。版权所有:飞雪无情,转载请注明出处: ... -
android.resource://这个Uri你知道吗
2011-03-28 11:22 10267转自:http://www.android123.com.cn ...
相关推荐
这个史上最详细的Android Studio系列教程,无疑是学习Android应用开发的宝贵资源。 一、Android Studio的基础设置与安装 Android Studio的下载可以在Google的官方网站上找到,它提供了Windows、macOS和Linux等多个...
"老罗Android开发视频教程 Android入门介绍【9集全】"是一个针对初学者的系列教程,旨在帮助那些对Android编程感兴趣的朋友们快速掌握基础知识。这个教程可能由知名的IT教育者老罗(这可能是指罗永浩,一位在中国...
Android学习系列教程实例文档涵盖了Android开发的核心知识点。它详细地介绍了从基础到高级技术的各个方面,旨在帮助开发者深入理解Android系统架构、开发过程以及优化技巧等。 首先,文档回顾了Android的发展历史,...
3. **Android Studio项目创建**:从新建项目开始,你将学习如何设置项目结构,理解AndroidManifest.xml文件的作用,以及如何创建Activity和布局资源文件。 4. **UI设计**:Android的界面设计主要通过XML布局文件...
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
### 新版Android开发教程&笔记四--Dalvik ADB #### Android虚拟机Dalvik解析 随着Google发布的Android SDK,不仅带来了新的开发环境和技术规范,更重要的是引入了一个全新的虚拟机技术——Dalvik虚拟机。这一技术...
Android开发是全球最受欢迎的移动应用开发平台之一,广泛应用于智能手机、平板电脑以及各种智能设备上。这份"Android开发教程笔记完全版"涵盖了Android开发的基础到高级主题,旨在帮助开发者全面理解并掌握Android...
ADT(Android Development Tools)插件为Eclipse提供了一系列开发Android应用所需的工具和向导。 #### 创建Android项目 创建Android项目是构建应用的第一步。可以通过两种方式创建:使用Eclipse IDE搭配ADT插件,...
本系列教程将深入探讨线性布局的使用方法和技巧,帮助初学者更好地掌握Android界面设计。 1. 线性布局介绍 线性布局是最基础的布局,通过`<LinearLayout>`标签定义。它可以设置垂直(默认)或水平排列子视图,通过`...
虽然Android Studio在学习和适应方面会有一些成本,比如与Eclipse不同的快捷键、目录结构以及Gradle的学习等,但是随着开发者们逐渐熟悉这款工具,它所带来的便利性和高效性将大大超出预期。此外,尽管Android ...
Android Studio的项目结构清晰明了,包括src、res、build.gradle等关键目录。src包含源代码,res存储资源文件,如布局、图片、字符串等。在设置中,开发者可以配置项目的编译版本、图标、签名等信息。 三、编写代码...
7. **数据存储**:Android提供了多种数据存储方式,如Shared Preferences(轻量级键值对存储)、SQLite数据库(结构化数据存储)、文件存储以及Content Provider。 8. **网络编程**:Android应用常常需要与服务器...
### Android核心分析系列教程知识点概览 #### 一、Android核心分析之——分析方法论探讨之设计意图 在这一章节中,作者强调了研究Android的重要性,并指出研究Android不仅仅是学习其技术细节,更重要的是理解其...
- **实践操作**:跟随教程完成一系列实战项目,如购物应用、社交应用等。 - **持续集成与部署**:学习如何利用Jenkins等工具实现自动化构建和部署流程。 通过上述内容的学习,可以全面掌握Android应用开发的基础...
* 配置项目结构,例如项目名称、包名、项目路径等。 * 编写Java代码,例如MainActivity.java。 * 编译和运行应用程序。 Android Studio的安装需要先安装JDK,并配置Java环境变量,然后安装Android Studio,最后配置...
- **软件结构**:Android系统的架构可以分为四层:Linux内核层、系统运行库层、应用框架层、应用程序层。 - **Linux内核层**:提供核心系统服务,如内存管理、进程管理、网络堆栈、驱动模型等。 - **系统运行库层*...
这是学习Android开发的第一步,通过这个过程,开发者可以熟悉开发环境和基本的项目结构。 #### 用户界面(UI)和布局 在Android开发中,用户界面是非常关键的一部分。文档提到了创建交互式UI、使用布局管理器(如...
### Android NDK 开发教程概览 #### 一、引言 随着移动互联网技术的不断发展,Android 应用开发已成为软件行业中不可或缺的一部分。为了满足不同层次的开发需求,Google 提供了多种工具和技术栈,其中 Android NDK ...