安卓开发步骤.docx

上传人:b****5 文档编号:5627500 上传时间:2022-12-29 格式:DOCX 页数:51 大小:62.37KB
下载 相关 举报
安卓开发步骤.docx_第1页
第1页 / 共51页
安卓开发步骤.docx_第2页
第2页 / 共51页
安卓开发步骤.docx_第3页
第3页 / 共51页
安卓开发步骤.docx_第4页
第4页 / 共51页
安卓开发步骤.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

安卓开发步骤.docx

《安卓开发步骤.docx》由会员分享,可在线阅读,更多相关《安卓开发步骤.docx(51页珍藏版)》请在冰豆网上搜索。

安卓开发步骤.docx

安卓开发步骤

Androidplatform是一个用于开发移动程序的软件包,它包括了操作系统、中间件及一些关键应用。

开发者能使用androidSDK为Androidplatform开发应用,这些应用使用JAVA语言书写,运行在虚拟机Dalvik(一个专为手机程序开发的基于linux内核的JAVA虚拟机)。

1什么是Android

1.1Android的特性

ü应用框架,让一些基础设施得以重用

üDalvik虚拟机,专为开发移动程序优化

ü集成的浏览器,(基于WebKit引擎)

ü优化的图形库,(2D图形库以及基于OpenGLES1.0规范的3D图形库)

üSQLite,用于结构化数据的存储,是一个数据库

ü多媒体支持,支持多种音频,视频格式(MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)

üGSM技术(依赖具体硬件)

üBluetooth,EDGE,3G,WiFi(依赖具体硬件)

üCamera,GPS,compass,accelerometer(依赖具体硬件)

ü丰富的开发环境(DEBUG工具,内存及性能工具,Eclipse的插件等)

1.2Android的架构

Android操作系统的模块如下:

Ø应用:

Android已集成了一些应用,如邮件客户端,SMS程序,日历,地图,浏览器等

Ø应用框架:

Ø程序库:

Ø例行程序

ØLinux内核

2Andvoid起步

2.1开发环境配置

使用Eclipse+AndroidDevelopmentTools(ADT)插件。

在Help>SoftwareUpdates>FindandInstall....中键入更新地址:

https:

//dl-

2.2运行第一个Andvoid程序

使用Eclipse插件

1、建立的工程类型为:

AndvoidProject

2、建立LaunchConfiguration.Run>OpenRunDialog...orRun>OpenDebugDialog

命令行运行程序

1、创建工程activityCreatoryour.package.name.ActivityName

2、编译。

在build.xml所在的目录ant一下。

3、启动模拟器.运行命令:

emulator

4、在模拟器中,切换到主屏幕。

5、在命令行输入:

adbinstallmyproject/bin/.apk将其上载至模拟器。

6、在模拟器中选择程序并启动。

Android需要专门的编译工具来正确的编译资源文件和Android程序的其他部分。

基于此,你需要为你的程序准备一个专门的编译环境。

Andorid的编译过程通常包括编译XML和其他资源文件、创建正确的输入格式。

经过编译的Android程序是一个.apk文件,.apk文件是一个压缩文件,它其中包含了.dex文件、资源文件、rawdata文件和其他文件。

Andoriod暂时还不支持用本地代码(C/C++)开发第三方程序。

移除Andorid程序

要移除你安装在模拟器上的程序,你需要通过runadb并删除相应的.apk文件。

通过adbshell命令在模拟器上打开一个UNIXshell,进入目录data/app/,通过命令rm你程序的名称.apk来移除文件。

2.3调试程序

Andvoid用于调试的手段有:

DDMS,DDMS是一个图形化的程序,支持端口转发(因此你可以在程序中设置断点),支持模拟器上的截屏,支持线程和堆栈信息和其他的一些特性。

Logcat,Dump一份系统消息的日志。

这些消息包括模拟器抛出错误时的堆栈跟踪。

AndroidLog,打印日志的类,用来将消息写入模拟器上的日志文件中。

如Log.v()用于打印verbose级别的日志

Traceview,Android可以保存一个日志用来记录被调用的方法以及该方法被调用的次数,通过Traceview你可以在一个图形化的界面中查看这个日志文件。

可接解设置emulator的设置以方便调试,

模拟器上调试和测试的设置

Android提供了众多的设置使你可以更容易的调试和测试程序。

要进入开发设置页面,在模拟器中转到DevTools>DevelopmentSettings。

在该设置页面有以下选项:

•Debugapp:

选择要调试的程序。

你不需要设定其关联至调试器,但是设定这个值有两个效果:

•在调试的时候,如果你在一个断点处暂停了过长的时间,这个设定会防止Android抛出一个错误

•这个设定使你可以选择“等待调试器”选项,使程序只有在调试器关联上之后才启动

•WaitforDebugger:

阻塞所选的程序的加载直到有调试器关联上,这样你就可以在onCreate()中设置断点,这对于调试一个Activity的启动进程是非常重要的。

当你对该选项进行了更改,任何正在运行的程序的实例都会被终止。

你只有在上面的选项中选择了一个调试程序才能够选中该选项。

你一也可以在代码中添加waitForDebugger()来实现同样的功能。

•Immediatelydestroyactivities:

告诉系统一旦一个activity停止了就销毁该activity(例如当Android释放内存的时候)。

这对于测试代码onFreeze(Bundle)/onCreate(android.os.Bundle)是非常有用的,否则会比较困难。

如果你的程序没有保存状态,那么选择这个选项很可能会引发很多问题。

•Showscreenupdates:

对于任何正在被重绘的screensections都会在其上闪现一个粉红色的矩形。

这对于发现不必要的screen绘制是很有必要的。

•ShowCPUusage:

在屏幕上方显示CPU信息,显示有多少CPU资源正在被使用。

上方红色条显示总的CPU使用率,它下方绿色的条显示CPU用在compositingthescreen上的时间。

注意:

在没有重启模拟器之前,一旦你开启了该功能就不能关闭。

•ShowscreenFPS:

显示当前的帧率。

这对于查看游戏达到的总的帧率是非常有用的。

注意:

在没有重启模拟器之前,一旦你开启了该功能就不能关闭。

•Showbackground:

当没有activityscreens可见时,显示一个背景模式。

一般是不会出现的,仅仅在Debug的时候会出现。

设定的选项在模拟器重启之后仍然有效,如果要取消设定的选项,在取消设定以后还要重启模拟器,才能生效。

2.4andvoid中的概念

一个andvoid应用包括四个部分:

nActivity活动(个人认为:

类似于JSP,也相当于SWT中的Shell,View则相当于wegiet)

nIntentReceiver(个人认为:

类似于Strutsaction)

nService(个人认为:

类似于Servlet)

nContentProvider(个人认为:

用于持久化)

用上面哪些组件,要在AndroidManifest.xml文件中声明。

1、Activity.一个activity是应用中的一个单一的屏幕,它继承自Activity类,它将显示由Views组成的UI以及响应事件。

(个人理解,相当于JSP)

2、Intent与IntentFilters.Intent用于从一个屏幕跳到别一个屏幕,描述一个应用想做什么,它的数据结构包括action与data两部分,它是一个消息操作对象,一个被动的数据结构。

action如MAIN、VIEW、PICK、EDIT等等,data被表达成一个URI;IntentFilter相当于告诉跳到哪个activity,;IntentReceiver用于响应事件,虽然它不显示UI,但它可以用NotificationManager去通知用户。

它需要在AndroidManifest.xml文件中注册,或者是用Context.registerReceiver()硬编码。

3、Service是一段有生命周期的无UI的代码。

4、ContentProvider,持久化,例如存储在文件系统中,或者存储在SQLite数据库中。

2.5例子

1,下载例子工程。

例如:

Notepadv1工程是问题工程,Notepadv1Solution则是相应的解决工程。

2,3个例子的函义如下:

通过练习1>

1.数据库对象的例子程序

2.如何在一个Activity初始化的时候创建数据库对象

3.如何为一个Activity创建一个pop菜单

4.如何得到一个用户在POP菜单中选择的ITEM的ID

5.如何向一个ListView中写入数据

通过练习2>

1.如何取得数据集中被选择数据行的ID,注意rows是java的一个listarray对象,所以它有它的getSelection()的方法

2.如何调用一个SubActivity以及在调用一个SubActivity之前应该做些事情。

3.要实现一个方法,当SubActivity返回后,应该做些什么

4.关于layout。

由于Android采用MVC的模式,所以屏幕的布局采用了XML进行定义。

一个好的布局会让程序显的更漂亮。

可以参考有很多的布局模式可供利用。

5.如何创建一个开始的时候代码中不含onCreate()的类,因为到目前为止还没有创建过自己的类,以前看到的类和修改的方法都是已经写好的了。

不过这个类也是一个从android.app.Activity继承的。

创建后还是要通过SourceOverride一个onCreate的

6.从一个SubActivity返回时,在返回之前应该做哪些事情

7.如何在AndroidManifest.xml中声明一个新的Activity

8.如何创建一个内部隐含的onClickLister及实现其应有的功能。

通过练习3>

1.除了onCreate()还有哪些和lifecycle有关的方法

a.onFreeze():

b.onPause()

c.onResume()

等等…

2.大部分程序都有必要考虑lifecycle的问题,应该把下面的这个图记住:

3.为了不丢失需要保存的信息,要明确的理解Activity的各个状态,并相应的给出在各个状态的行为。

4.开始的时候对于onFreeze()和onPause()有些理解上的困难,要多读几遍DOC来会理解。

通过额外练习>

进一步的理解lifecycle和通过手机按键进行操作时的时间和程序状态关系

另外,SDK目录下也有一些例子。

练习目标:

1.使用ListActivities,并使用菜单

2.学习使用操作SQLite数据库

3.使用ArrayAdapter绑定数据到ListView中

4.掌握一些基本的操作,如菜单的显示,菜单命令的处理,增加数据项等。

第一步:

在SDK中下载获得Notepadv1的代码,并导入到Eclipse中。

导入步骤:

a.在PackageExplorer中,右键选择Import.../General/ExistingProjectsintoWorkspace

b.点Browse按钮,选择Notepadv1的目录,并点OK

c.你将会看到Notepadv1被列在项目区中,默认会被打勾,如果没有打勾,请手动勾上。

d.点Finish

e.Notepadv1将被列在PackageExplorer中

f.如果有提示关于AndroidManifest.xml的错误,请选中此项目,并右键选择AndroidTools->FixProject,他将会自动帮你修复错误。

第二步:

看一下数据库操作类:

DBHelper,还是比较简单的,自己看去:

)。

第三步:

打开res/layout/notepad_list.xml这个文件,快速的看下就可以了:

a.

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

>,XML文件的固定头

b.一个Layout的定义,这里是LinearLayout,但不一定是这个,可以是其他的Layout

第四步:

在上面的那个文件中加入:

list"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"/>

empty"

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"

android:

text="@string/no_notes"/>

a.ListView和TextView不会同是显示,如果没有数据,则默认显示TextView(这个View里会显示一个字符串)。

如果有数据,则会显示ListView。

b.@是默认的关键字,XML解析器将会自动替换这个符号后面的ID

c.android:

list和android:

empty是android平台预定义好的ID,如果你想显示空的TextView,可以调用setEmptyView().

第五步:

建立一个新文件res/layout/notes_row.xml,文件内容如下:

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

>

xmlns:

android="

android:

layout_width="wrap_content"

android:

layout_height="wrap_content"/>

然后保存,R.java下将会自动刷新。

第六步

改变继承类

publicclassNotepadv1extendsListActivity

第七步:

看一下这三个事件:

onCreate():

界面初始化的时候调用

onCreateOptionsMenu():

按了Menu按钮的时候调用

onOptionsItemSelected():

选择了一个菜单项的时候调用

第八步:

改写OnCreate函数:

privateDBHelperdbHelper;

@Override

publicvoidonCreate(Bundleicicle)

{

super.onCreate(icicle);

setContentView(R.layout.notepad_list);

dbHelper=newDBHelper(this);

fillData();

}

第九步:

在strings.xml中增加:

AddItem

并在Notepadv1类中加入:

publicstaticfinalintINSERT_ID=Menu.FIRST;

改写onCreateOptionsMenu()

@Override

publicbooleanonCreateOptionsMenu(Menumenu){

booleanresult=super.onCreateOptionsMenu(menu);

menu.add(0,INSERT_ID,R.string.menu_insert);

returnresult;

}

第十步:

改写onOptionsItemSelected()

@Override

publicbooleanonOptionsItemSelected(Itemitem){

switch(item.getId()){

caseINSERT_ID:

createNote();

break;

}

returnsuper.onOptionsItemSelected(item);

}

第十一步:

实现两个函数:

privatevoidcreateNote(){

StringnoteName="Note"+noteNumber++;

dbHelper.createRow(noteName,"");

fillData();

}

privatevoidfillData(){

//Weneedalistofstringsforthelistitems

Listitems=newArrayList();

//Getalloftherowsfromthedatabaseandcreatetheitemlist

Listrows=dbHelper.fetchAllRows();

for(Rowrow:

rows){

items.add(row.title);

}

//Nowcreateanarrayadapterandsetittodisplayusingourrow

ArrayAdapternotes=

newArrayAdapter(this,R.layout.notes_row,items);//指定notes_row视图,作为数据容器。

setListAdapter(notes);

}

第十二步:

运行:

RunAs->AndroidApplication

2.6开发工具

2.6.1仿真器

仿真器是在计算机中运行的一个虚拟的移动装置,用它来设计、调试应用。

2.6.2ADT

ADT是一个用于开发andvoid应用的确良eclipse插件,它方便了我们的开发。

例如,它让我们方便从eclipse内部访问DDMS工具(可用于截屏,管理port-forwarding,设断点,查看线程和进程信息)

2.6.3DDMS

DDMS(DalvikDebugMonitorService)和Dalvik虚拟机集成,将在IDE和模拟器起到一个转发服务。

用它能管理仿填器或者设备的进程,并且辅助调试。

你可用它杀死进程,选择某一进程去DEBUG,产生TRACE数据,查看堆和线程信息等等。

2.6.4ADB

ADB(AndvoidDebugBridge)。

在命令行操作。

它能安装.apk文件到仿真器上等等。

用于将文件发送到仿真器。

adb(AndroidDebugBridge)是Android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态。

还可以进行以下的操作:

1、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;

2、在设备上运行shell命令;

3、管理设备或手机模拟器上的预定端口;

4、在设备或手机模拟器上复制或粘贴文件;

以下为一些常用的操作:

1、安装应用到模拟器:

adbinstall

比较郁闷的是,Android并没有提供一个卸载应用的命令,只能自己手动删除:

adbshell

cd/data/app

rmapp.apk

2、进入设备或模拟器的shell:

adbshell

通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个LinuxShell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用以下的方式:

adbshell[command]

如:

adbshelldmesg会打印出内核的调试信息。

3、发布端口:

你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。

如:

adbforwardtcp:

5555tcp:

8000

4、复制文件:

你可向一个设备或从一个设备中复制文件,

复制一个文件或目录到设备或模拟器上:

adbpush

如:

adbpushtest.txt/tmp/test.txt

从设备或模拟器上复制一个文件或目录:

adbpull

如:

adbpull/addroid/lib/libwebcore.so.

5、搜索模拟器/设备的实例:

取得当前运行的模拟器/设备的实例的列表及每个实例的状态:

adbdevices

6、查看bug报告:

adbbugreport

7、记录无线通讯日志:

一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:

adbshell

logcat-bradio

8、获取设备的ID和序列号:

adbget-product

adbget-serialno

9、访问数据库SQLite3

adbshell

sqlite3

2.6.5aapt

Aapt(AndvoidAssetPackagingTool),用于创建.apk文件。

2.6.6aidl

Aidl(AndvoidInterfaceDescriptionLanguage)用于产生代码。

2.6.7sqlite3

用于访问SQLite数据文件。

2.6.8Traceview

查看LOG信息

2.6.9mksdcard

Helpsyoucreateadiskimagethatyoucanusewiththeemulator,tosimulatethepresenceofanexternalstoragecard(suchasanSDcard

2.6.10dx

Dx工具用于重写.class字节码到Andvoid字节码

2.6.11activityCreator

用于产生ant文件的脚本。

当然,若用eclipse插件就不需要它了。

2.7Andvoid应用的生命周期

在大部份情况下,每个Android应用都将运行在自己的Linux进程当中。

当这个应用的某些代码需要执行时,进程就会被创建,并且将保持运行,直到该进程不再需要,而系统需要释放它所占用的内存,为其他应用所用时,才停止。

Android一个重要并且特殊的特性就是,一个应用的进程

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

当前位置:首页 > 工程科技 > 能源化工

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

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