Android初学者学习笔记自己整理.docx

上传人:b****7 文档编号:8733753 上传时间:2023-02-01 格式:DOCX 页数:19 大小:1.15MB
下载 相关 举报
Android初学者学习笔记自己整理.docx_第1页
第1页 / 共19页
Android初学者学习笔记自己整理.docx_第2页
第2页 / 共19页
Android初学者学习笔记自己整理.docx_第3页
第3页 / 共19页
Android初学者学习笔记自己整理.docx_第4页
第4页 / 共19页
Android初学者学习笔记自己整理.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

Android初学者学习笔记自己整理.docx

《Android初学者学习笔记自己整理.docx》由会员分享,可在线阅读,更多相关《Android初学者学习笔记自己整理.docx(19页珍藏版)》请在冰豆网上搜索。

Android初学者学习笔记自己整理.docx

Android初学者学习笔记自己整理

Android笔记

使用Android和EclipseADT创建并运行应用程序

在Android简介的开始部分,我将帮助您尽可能快地创建一个简单的Android应用程序。

您将使用Android4.2和EclipseAndroidDevelopmentTools(ADT)插件来创建一个基于Java的HelloWorld应用程序。

为Android建立开发环境的途径有两种。

刚接触Eclipse和Android的开发人员可以先下载ADT(AndroidDeveloperTools)Bundle。

ADTBundle捆绑了一个AndroidSDK和一个Eclipse版本,其中已经安装了ADT插件。

这个程序包可帮助您快速、轻松地使用Android。

如果Eclipse已经安装在台式机上并设置好,那么请手动下载并安装AndroidSDK。

基础AndroidSDK包含一些可简化Android开发的系统工具,但它缺乏开发特定Android版本所需的Android库。

为您的操作系统下载基础AndroidSDK后,可以访问SDK安装目录的工具目录,并运行清单1中的Android脚本。

清单1.启动AndroidSDKManager

~/Development/tools/android/android-sdk-mac_x86/tools$>./android

该脚本启动了AndroidSDKManager,您可以下载Android的各种版本和库,并创建模拟程序或虚拟设备实例。

AndroidSDKManager打开了一个窗口,其中显示一个很长的要下载的选项的列表,如图1所示。

图1.SDKManager

在左侧复选框中,选择Tools,然后选择Android4.2(API17)。

该文件夹将会显示许多项选择项。

选择SDKPlatform和ARMEABIv7aSystem图片,如图2所示。

图2.SDKManager中的选择

单击Installpackages并承受任何必要许可;管理器将完成其余步骤。

创建一个模拟器

接下来,创建一个模拟器实例,这是一个运行应用程序的虚拟设备。

模拟器必须以Android的特定版本为目标,因此我们将创建一个运行Android4.2的模拟器实例。

再次启动SDKManager(如果已关闭的话)。

如果AndroidSDK工具或平台工具已更新,则重启SDKManager。

在SDKManager顶层菜单中,选择Tools>ManageAVDs会打开关于AndroidVirtualDeviceManager的新对话框,如图3所示。

图3.AndroidVirtualDeviceManager

该对话框列出了您的机器上定义的所有模拟器。

模拟器列表在创建模拟器之前是空的。

单击New打开CreateanewAndroidVirtualDevice(AVD)对话框,在其中可以定义一个模拟器。

在Target下拉列表中选择Androidversion4.2。

在AVDName文件夹中,为模拟器命名,我使用的名称是Android_4.2。

当您准备好测试应用程序时,就可以使用该名称从命令行启动模拟器。

图4.创建一个新的Android虚拟设备

在图4中,您可以看到一些AVD选项,包括设备类型、摄像头设置、存和存储。

在我的示例中,选择了GalaxyNexus,对它使用了一个200MB的SD卡。

最后,我选中了UseHostGPU模拟选项,这可以提高模拟器实例的性能。

单击OK,在AVD对话框中查看列出的新的虚拟设备。

选择该设备并单击Start,这将打开一个带有启动选项的对话框。

现在,使用默认值并单击Launch。

模拟器实例的启动时间较长,因此这个时候可以去喝一杯咖啡,浏览一下Facebook或更新您的Twitter状态。

图5.新的Android设备!

过一会后,一个闪亮的模拟器设备(类似图5)将会显示在您的主屏幕上,这意味着您可以开始创建Android4.2应用程序了。

设置EclipseADT

如果Eclipse已经安装到系统中,那么您必须在继续后面的操作之前添加AndroidDevelopmentTools(ADT)插件库。

在Eclipse菜单中,打开Help>FindNewSoftware。

单击Add和ADT插件的URL:

s:

//dl-ssl.google./android/eclipse/(参见图6)。

图6.添加ADT插件库

完成插件下载后,根据操作说明完成安装。

将ADT插件配置为可以使用您刚才安装的SDK。

现在,您的项目已针对Android4.2平台完成了设置,并使用了您配置好的模拟器。

回页首

使用Android4.2!

要在Eclipse中创建Android应用程序,请选择创建AndroidApplicationProject的选项。

在NewAndroidApplication对话框中,提供应用程序名称、项目名称和包名称。

应用程序名称是用户在设备图标中看到的容;而项目名称是您的项目在Eclipse中的名称。

图7.创建一个新的Android项目

在图7所示的NewAndroidApplication对话框中执行下面的步骤:

1.在TargetSDK下拉列表中,选择API17:

Android4.2(JellyBean),然后单击Next。

2.在下一个对话框中,保留默认设置,但是您可以将最终生成的代码放到任意位置。

单击Next。

3.保留ConfigureLauncherIcon对话框中的默认设置并单击Next。

4.保留CreateActivity对话框和最终对话框中的默认设置,这些设置用于选择应用程序的行为。

单击Finish。

如果项目创建成功,您会看到一个新的项目,其用户界面类似图8中所示的界面。

图8.Eclipse中的样例启动项目

在Android模拟器中运行应用程序

默认情况下,使用ADT项目向导创建的Android项目将创建一个简单的HelloWorld移动应用程序(参见图8)。

在开始修饰这个应用程序之前,让我们来看一看在模拟器上运行这个基本应用程序会发生什么。

如果Android4.2模拟器处于关闭状态,请打开它。

这一次不会在AVDManager中启动模拟器,而是通过命令行启动它。

您可以从SDK的tools目录访问emulator脚本。

在启动脚本时,系统会要求您提供您的模拟器的名称。

我的模拟器的名称为Android_4.2,因此我在清单2中运行脚本来启动我的模拟器实例:

清单2.在命令行中访问模拟器

~/Development/tools/android/android-sdk-mac_x86/tools$>./emulator-avdAndroid_4.2

启动您的模拟器实例,返回Eclipse,然后选择您的项目。

右键单击并选择RunAs>AndroidApplication。

图9.从Eclipse中运行项目

默认情况下,Eclipse将在目前正运行的模拟器上部署您的应用程序(图9)。

您的模拟器实例现在显示了一个白色的屏幕,其中显示了所有Java开发人员都喜欢的问候语!

如果Eclipse因为某种原因在模拟器上运行应用程序时出现故障,则需要返回到RunAs选项并选择RunConfigurations。

在Target选项卡中,重新选择Automaticallyselectcompatibledevice,并确保您的模拟器也被选中。

图10.HelloWorld!

回页首

基本Android应用程序

您现在有了一个基本的HelloWorld应用程序,可以在任何与4.2兼容的Android设备上运行它。

最后,您可能希望定制这个应用程序,以便添加更多的功能。

目前,我希望对Android应用程序进行分析。

Android的特制JVM

Android应用程序是使用Java代码进行编写的,但并没有在标准JVM上运行它们。

作为Android构建的一部分,我们会对Java字节代码进行转换,并针对移动设备的存和处理需求进行特殊处理。

请参阅参考资源,详细了解Android应用程序的架构和Dalvik虚拟机。

回到EclipseIDE。

在项目的src目录中,导航到项目的.java文件。

如果您保留了所有默认值,那么该文件的名称应为MainActivity。

Activity类是Android移动应用程序的驱动引擎,类似于servlets对于Java服务器端应用程序的意义。

每个Activity都有一个生命周期,类似于Javaapplet的生命周期。

HelloWorld应用程序只包含基本的架构,因此其Activity非常简单。

首先,该类将从Android的Activity类扩展。

activity的入口点是onCreate方法,它在应用程序加载时由平台启动。

这个方法中的关键代码是setContentView调用。

清单3显示了默认的MainActivity类。

清单3.MainActivity

package.example.hello;

importandroid.os.Bundle;

importandroid.app.Activity;

importandroid.view.Menu;

publicclassMainActivityextendsActivity{

Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

Override

publicbooleanonCreateOptionsMenu(Menumenu){

getMenuInflater().inflate(R.menu.activity_main,menu);

returntrue;

}

}

在清单3中,setContentView加载了activity_main布局,它是您在第一次打开项目时在Eclipse中看到的视图的名称。

该名称与res/layout目录中的activity_main.xml文件对应。

打开该文件,查看应用程序的图形化表示。

在视图的左下方的选项卡中,有一个查看原始XML文件的选项,可以单击该选项来查看原始文件,容类似于清单4。

清单4.原始布局的定义

android="schemas.android./apk/res/android"

xmlns:

tools="schemas.android./tools"

android:

layout_width="match_parent"

android:

layout_height="match_parent"

tools:

context=".MainActivity">

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

layout_centerHorizontal="true"

android:

layout_centerVertical="true"

android:

text="string/hello_world"/>

Android视图是在XML文件中定义的。

每个视图都有一个布局,您可以向其中添加小部件,比如按钮或文本字段。

目前,样例应用程序有一个RelativeLayout和一个小部件:

TextView。

如果仔细观察这个小部件,您会发现一个文本字段,它被设置为一个引用:

string/hello_world。

该变量是指向实际字符串的指针,您可以在res/values/strings.xml文件中找到它。

打开该文件。

要查看原始XML,请单击左下方区域的strings.xml选项卡。

清单5.strings.xml文件

xmlversion="1.0"encoding="utf-8"?

>

Hello4.2

Helloworld!

Settings

清单5中的第二个字符串定义将hello_world映射到HelloWorld!

Androidmanifest

您目前已经了解了Android应用程序的三个重要元素是如何联系起来的:

行为、布局和资源文件。

在应用程序启动时,AndroidOS将调用MainActivity的onCreate方法。

onCreate方法随后会加载布局,该布局从另一个XML资源文件获取一些值。

在本例中,结果是一个显示了“HelloWorld!

”的简单的UI。

但是,设备如何知道应该调用哪个Activity?

现在是AndroidManifest.xml发挥作用的时候了。

在项目根目录中查看这个文件。

单击该文件,Eclipse会加载一个简洁的定制视图,视图左下角有一些选项卡。

单击标签为AndroidManifest.xml的选项卡将会显示清单6所示的原始XML。

清单6.AndroidManifest.xml

xmlversion="1.0"encoding="utf-8"?

>

android="schemas.android./apk/res/android"

package=".example.hello"

android:

versionCode="1"

android:

versionName="1.0">

android:

minSdkVersion="8"

android:

targetSdkVersion="17"/>

android:

allowBackup="true"

android:

icon="drawable/ic_launcher"

android:

label="string/app_name"

android:

theme="style/AppTheme">

android:

name=".example.hello.MainActivity"

android:

label="string/app_name">

name="android.intent.action.MAIN"/>

name="android.intent.category.LAUNCHER"/>

该文件的作用是向底层设备解释您的应用程序。

它包含一个名为application的XML块,其中定义了activity。

您的MainActivity将被引用,action被定义并包含一个category。

action会告诉设备要启动哪一个Activity。

在本例中,action将您的Activity描述为MAIN。

AndroidManifest.xml文件中的其他重要声明包括uses-sdk部分,它表示min版本为8(即Android2.2.x),目标版本为17,即Android4.2。

我在后面的文章中将会介绍这些细节。

现在,只需明白Android平台提供了可以兼容早期版本的库就足够了

 

Android常用缩写

SDK:

softwaredevelopmentkit软件开发工具包

AWT:

abstractwindowtoolkit抽象窗口工具

DalvikVM:

(冰岛小镇的名称)经过优化后的JVM叫做dalvikvm

ADT:

androiddevelopmenttoolsAndroid开发工具

(AndroidSDK包含一个Eclipse插件名为ADT)

IDE:

integrateddevelopmentenvironment集成开发环境

Eclipse是一个集成开发环境。

它把开发需要的很多工具都集成到一起,方便开发人员进行开发。

QEMU:

处理器模拟器

Invoke调用——invokewebbrowser调用web浏览器。

Intent意图

Action功能

View看

Parse分析描述uri.parse(“.goole.”);

Uri:

web上可用的每种资源,如HTML文档,图像,视频,程序等,由一个通用资源标示符等进行定位。

URL是URI的一个子集。

即URI包含URL。

AVD:

AndroidvirtualdeviceAndroid运行的虚拟设备

Internalstorage:

存储器。

(定义Android手机类型)

Snapshot快照功能

UseHostGPU使用主机GPU

Allocate:

分配面向

Failedtoallocatememory面向存错误

SimpleOnGesture[ˈdʒɛstʃɚ]Listener:

简单的手势动作监听

Navigationtype:

导航类型

LinearRelative(亲属)Table3种布局类型

onFling/Fling:

扔,投掷

motioneven/motion:

动作

swipedetector:

重击探测器

 

基础知识

Android的开发使用的是Java语言,所以我们需要下载JVM(Java虚拟机)来解释运行Java字节码。

JVM通常会提供必需的优化使Java运行时能达到与C等其他编译语言相当的性能水平。

因为Android属于Java的分支,可以这么说Android是Java的简化。

所以我们可以想到Android不需要全部的Java容,他所使用的JVM也就当然是简化后的JVM,相比Java的JVM要简化很多,当然这也限制了手机的存,处理器速度和功能。

经过优化后的JVM叫做dalvikVM。

一个手持设备的总RAM可能只有64MB。

可供应用程序使用的空间可能只有20MB。

SD卡:

就我们说的手机的存储卡。

DalvikVM获取生成的Java类文件,将他们组合成一个或多个dalvik可执行文件,该可执行文件的后缀名为.dex。

它重用多个类文件的重复信息与未压缩的.jar文件相比,有效地将空间需求减少了一半。

例:

Android中WEB浏览器的.dex约200K,而对应的未压缩的.jar版本约500K。

DalvikVM使用了一个不同的汇编代码生成方法。

使用寄存器而不是栈作为主要的数据存储单元。

采用dalvikVM后,Android中最终的可执行程序代码不是基于Java字节码,而是基于.dex文件。

这意味着无法直接运行Java字节码,必须首先得到Java类文件与.class文件,然后将他们转换成.dex文件。

.Java–>.class->.dex

minimumrequiredSDK又为miniSdk,是你程序最低支持的SDK版本,这个现在一般miniSDK设定一般为8或者10.

Takequiz:

测试takeourquiztofindout。

来做做测试寻找答案吧。

Android基本组件

View:

构成用户界面的组件

View是一个UI元素,是构成用户界面的基本构建块。

View是分层的,它们知道如何绘制自身。

View可以是一个按钮,标签或文本字段,或者各种其他UI元素。

Activity:

屏幕

Activity是一个用户界面的概念。

Activity通常表示应用程序中的一个屏幕。

它通常包含一个或多个view。

Intent:

意图(消息机制)

Intent通常定义执行某种工作的“意图”。

(意图:

某种目的。

)intent封装了几种概念,所以理解他们的最正确方法就是查看他们的使用示例。

可以使用intent来执行以下任务。

<广播消息启动service启动activity显示网页或一组联系人拨出或接听>

Intent并不总是由应用程序发起,系统也会使用他们来向应用程序传递特定的事件(比如收到一条文本消息)。

Intent可以是显式的,也可以是隐式的。

如果只是希望显示一个URL,那么系统将会决定哪些组件能满足此意图,你也可以提供由什么来处理改意图的具体信息,intent将操作和操作处理程序轻松地在一起。

Contentprovider:

content目标provider提供者(共享数据)

我们常常需要在设备上的移动应用之间共享数据。

因此,Android为应用程序定义了一种标准机制来共享数据(比如联系人列表),无需公开底层存储、结构和实现。

通过contentprovider可以公开数据,允许应用程序使用来自其他应用程序的数据。

Service:

服务

Android中的service类似于windows或其他平台中的服务,他们都是可能长时间运行的后台进程。

Android定义了两种类型的service:

本地service和远程service。

本地service市izhineng有承载该service的应用程序访问的组件。

而远程service是供在设备上运行的其他应用程序访问的service。

电子应用程序用于查询新的组件,就是一个service示例。

如果这种service不能被在设备上运行的其他应用程序使用,那么它就是本地service,如果有多个应用程序使用该service,那么它就是远程service,也可以扩展service类来编写自己的service。

AndroidManifest.xml

AndroidManifest.xml它定义应用程序的容和行为。

例如它列出应用程序的activity和service,以与运行应用程序所需的权限。

AVD

AVD使开发人员无需使用And

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1