1.前言
1.1 前期回顾
Android之前,手机导致程序中断的原因可能有:
1)耗尽CPU资源导致电话接不进来;
2)在手机来电或接听时不能安静的隐藏到后台,因为程序与手机OS不能很好的协调运作;
3)导致手机的OS宕机。
开发手机程序与开发桌面程序、开发网站、开发服务器端程序有很大的不同,所用工具不同,框架的行为不同,开发程序收到的限制更多。
Android的目的的解放程序员。
让程序员使用最熟悉的Java及类库,使用最熟悉的Eclipse开发工具;拥有一个严格的、独立的框架,确保程序在手机中成为好公民,不会妨碍其他程序或手机本身的正常运行。
1.2 Android组成
主要组件有:
Activity:用户界面由Activity(对应桌面的窗口或对话框)构建而成。
ContentProvider:为设备中存储的数据提供中间层,以便不同应用程序访问。通过ContentProvider实现数据共享,可以对别人访问数据的方式拥有完全的控制。
Service:Activity和ContentProvider的生命周期短暂,但Service可以独立长期存在。
Intent:是系统消息,在设备内部运行,向应用程序发出各种事件,包括硬件状态变化,收到的数据,应用程序事件。
1.2 Android特性
存储:封装不会变化的数据,如图像;
网络:随时上网,介入网络的方式多样;
多媒体:播放和录制音视频;
GPS:访问位置服务;
手机服务:电话、短信等原始手机服务。
2.项目和目标
2.1 基本概念
工具:Android SDK + Eclipse ADT + Eclipse + 第三方Jar
APK: Android Package文件。即安卓的应用程序。
项目描述文件manifest:AndroidManifest.xml。包含应用程序目录、列出了主要的应用程序组件、权限等。Android运行时通过该文件将应用程序与Android OS 关联。 Android Market 也会用到。
AVD:Android Virtual Device,模拟器测试程序。
创建AVD和项目时,要指定使用API级别。不同级别映射到不同的Android系统。要告诉最大和最小的级别。
2.2 创建项目
命令行: android create peoject命令
Eclipse方式
Android项目目录结构:
AndroidManifest.xml:描述被构建的应用程序及程序包含哪些组件。
Build.xml:Ant脚本,编译应用程序和在设备上安装应用程序。
Default.properties和local. properties:属性文件,构建Ant使用。
Assets:文件夹,存放需要打包到应用程序的静态文件,以便部署到设备中。
Bin:文件夹,存放编译后的应用程序
Gen:文件夹,Android构建工具存放他们生产源代码的地方
Libs:存放Jar
Src:Java的应用程序源码
Res:存放应用程序资源,如图标、GUI布局,被打包后编译到应用程序中。
Tests:存放独立的Android项目,以便测试。
首次编译时,Android在构建项目时在主活动命名空间目录的外部创建R.Java文件。该文件包含很多变量,与res对应的资源一一对应。
Res资源
该文件夹子目录有:
Res/drawable:存放图像
Res/layout:存放基于XML的UI布局
Res/menu:存放基于XML的菜单描述
Res/raw:存放通用文件
Res/values:存放字符串、尺寸值
Res/xml:存放XML文件
编译结果:
放于bin目录下。该目录的子目录有:
Bin/classes:存放编译后的Java文件
Bin/classes.dex:存放基于编译后的Java类创建的可执行文件
Bin/yourapp.ap_:存放应用程序的资源,打包为ZIP文件
Bin/yourapp-debug.apk:实际的Android应用程序
.apk文件是一个压缩的ZIP文件,包含.dex文件、资源的编译版。
.apk文件经过了数字签名。
AndroidManifest.xml
描述文件AndroidManifest.xml是Android应用程序的基础。
创建项目时,自动生成。
根元素是manifest,在AndroidManifest.xml中,只有特性attribute带有命名空间的前缀,元素上木有。
Uses-permission:应用程序正常运行所需的权限
Permission:为活动和服务声明权限。表示其他服务使用当前应用程序所需要的权限。
Instrumentation:在关键系统事件中调用的代码
Uses-library:引入可选的Android组件
Uses-sdk:当前应用程序基于哪个版本的SDK开发
Application:定于与当前描述文件对应的应用程序细节。
描述文件的核心内容通过Application元素描述。包含activity元素。
描述文件中的provider元素表示contentProvider,可以为当前活动或经用户授权的设备的其它应用程序的活动提供数据。
发布应用程序时还应添加android:versionCode和android:versionName2个属性。
相关推荐
"Android学习笔记1"这个压缩包文件很可能是开发者在实践中积累的经验和代码示例的集合,对于初学者和有经验的开发者来说,都是宝贵的资源。这里,我们将深入探讨Android开发的一些关键概念和技术。 首先,Android是...
### Android学习笔记1—SAX解析XML #### SAX解析XML概览 在Android开发中,XML文件被广泛用于布局设计、资源定义等场景。而为了处理这些XML文件,开发者需要了解不同的XML解析技术,其中SAX(Simple API for XML)...
"Android学习笔记" Android学习笔记是Android开发者的必读书籍,书中涵盖了Android系统架构、Activity、Intent、资源管理等多方面的知识。本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中...
Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) ...
### Android学习笔记 #### 1. Android概述 **1.1 Android的特性** - **应用框架**:Android提供了一个强大的应用框架,使得开发者能够轻松地重用基础组件和服务,简化了应用程序的开发流程。 - **Dalvik虚拟机**...
### Android开发学习笔记 #### Button按钮的实现与交互 在Android开发中,`Button`控件是最常用的用户界面元素之一,用于触发特定的操作或事件。本文档将详细讲解如何创建并自定义一个简单的按钮,并设置点击事件...
【Android学习笔记】 Android平台是谷歌推出的一个开放源代码的移动设备操作系统,它为开发者提供了一个全面的软件包,包括操作系统、中间件和关键应用程序。这个平台的主要目标是促进移动应用的创新和多样性,允许...
Android学习笔记(1)-永远不变的Hello World Google的Android SDK发布也有一段时间了,一直想研究一下却苦于找不到时间。利用这个周未,开始强迫自己再次进入学习状态,原因很简单:我看好开放的gPhone。 SDK的下载...
Android开发学习笔记(整理),整理论坛android学习笔记,较完整的讲解了android的内容。包括:view、activity、service、intent、广播机制、http连接、数据sqllite存储、后台线程、各种layout、偏好、本地文件操作、...
这篇学习笔记主要涵盖了关于布局的一些基本概念,特别是`fill_parent`和`wrap_content`这两种尺寸指定方式,以及如何通过XML布局文件来精确控制组件的位置。 首先,`fill_parent`和`wrap_content`是Android布局中的...
根据给定的信息,我们可以从Java和Android学习笔记中提取出一系列重要的知识点,下面将逐一进行详细解释。 ### Java基础知识 #### 1. 命令行基础操作 - **`javacmd`**: 这个命令是Java命令行工具的一部分,用于...
这篇学习笔记将引导新手入门,通过创建第一个简单的案例来了解Android Studio的基本操作。 首先,让我们了解一下Android Studio的核心功能。它基于IntelliJ IDEA,具备代码自动补全、重构、调试等强大的开发特性。...
Android基础学习笔记主要涵盖了一系列关于Android开发的基本概念和关键组件,以下是这些知识点的详细解析: 1. **Activity**: 是Android应用程序的基本单元,它代表用户在屏幕上看到的一个界面。每个Activity都必须...
Android学习笔记全全整理,是针对想要深入理解并掌握Android开发技术的学习者们的一份宝贵资源。这份笔记涵盖了从基础到高级的多个方面,旨在帮助读者建立起完整的Android知识体系。以下将详细介绍其中可能包含的...
Android学习笔记整理.pdf
本篇学习笔记主要涵盖了ArcGIS for Android的基础配置和核心组件MapVie的使用。 首先,配置ArcGIS for Android项目需要在`Project`级别的`build.gradle`文件中添加Esri的仓库,确保能获取到所需的库。接着,在`...