android学习笔记(by quqi99 msn: )
android platform是一个用于开发移动程序的软件包,它包括了操作系统、中间件及一些关键应用。开发者能使用android sdk为android platform开发应用,这些应用使用j**a语言书写,运行在虚拟机dalvik(一个专为手机程序开发的基于linux内核的j**a虚拟机)。
应用框架,让一些基础设施得以重用。
dalvik虚拟机,专为开发移动程序优化。
集成的浏览器,(基于webkit引擎)
优化的图形库,(2d图形库以及基于opengl es 1.0规范的3d图形库)
sqlite,用于结构化数据的存储,是一个数据库。
多**支持,支持多种音频,**格式(mpeg4, h.264, ***, aac, amr, jpg, png, gif)
gsm技术(依赖具体硬件)
bluetooth, edge, 3g, wifi(依赖具体硬件)
camera, gps, compass, accelerometer(依赖具体硬件)
丰富的开发环境(debug工具,内存及性能工具,eclipse的插件等)
android操作系统的模块如下:
应用:android已集成了一些应用,如邮件客户端,sms程序,日历,地图,浏览器等。
应用框架:程序库:
例行程序。linux内核。
使用eclipse + android development tools (adt)插件。在help > software updates > find and install...中键入更新地址:
使用eclipse插件。
1、建立的工程类型为:andvoid project
2、建立launch configuration. run > open run dialog...or run > open debug dialog
命令行运行程序。
1、创建工程 activitycreator
2、编译。在所在的目录ant一下。
3、启动模拟器。 运行命令:emulator
4、在模拟器中,切换到主屏幕。
5、在命令行输入: adb install myproject/bin/.apk将其上载至模拟器。
6、在模拟器中选择程序并启动。
android需要专门的编译工具来正确的编译资源文件和android程序的其他部分。基于此,你需要为你的程序准备一个专门的编译环境。
andorid的编译过程通常包括编译xml和其他资源文件、创建正确的输入格式。经过编译的android程序是一个。apk文件,.
apk文件是一个压缩文件,它其中包含了。dex文件、资源文件、raw data文件和其他文件。
andoriod暂时还不支持用本地**(c/c++)开发第三方程序。
移除andorid程序。
要移除你安装在模拟器上的程序,你需要通过run adb并删除相应的。apk文件。通过adb shell命令在模拟器上打开一个unix shell,进入目录data/app/,通过命令rm 你程序的名称。
apk来移除文件。
andvoid用于调试的手段有:
ddms,ddms是一个图形化的程序,支持端口**(因此你可以在程序中设置断点),支持模拟器上的截屏,支持线程和堆栈信息和其他的一些特性。
logcat,dump一份系统消息的日志。这些消息包括模拟器抛出错误时的堆栈跟踪。
android log, 打印日志的类,用来将消息写入模拟器上的日志文件中。如用于打印verbose级别的日志。
traceview,android可以保存一个日志用来记录被调用的方法以及该方法被调用的次数,通过traceview你可以在一个图形化的界面中查看这个日志文件。
可接解设置emulator的设置以方便调试,模拟器上调试和测试的设置。
android提供了众多的设置使你可以更容易的调试和测试程序。要进入开发设置页面,在模拟器中转到dev tools > development settings。在该设置页面有以下选项:
debug app:选择要调试的程序。你不需要设定其关联至调试器,但是设定这个值有两个效果:
o 在调试的时候,如果你在一个断点处暂停了过长的时间,这个设定会防止android抛出一个错误
o 这个设定使你可以选择“等待调试器”选项,使程序只有在调试器关联上之后才启动
wait for debugger:阻塞所选的程序的加载直到有调试器关联上,这样你就可以在oncreate()中设置断点,这对于调试一个activity的启动进程是非常重要的。当你对该选项进行了更改,任何正在运行的程序的实例都会被终止。
你只有在上面的选项中选择了一个调试程序才能够选中该选项。你一也可以在**中添加waitfordebugger()来实现同样的功能。
immediately destroy activities:告诉系统一旦一个activity停止了就销毁该activity(例如当android释放内存的时候)。这对于测试**onfreeze(bundle)/oncreate(是非常有用的,否则会比较困难。
如果你的程序没有保存状态,那么选择这个选项很可能会引发很多问题。
show screen updates:对于任何正在被重绘的screen sections都会在其上闪现一个粉红色的矩形。这对于发现不必要的screen绘制是很有必要的。
show cpu usage:在屏幕上方显示cpu信息,显示有多少cpu资源正在被使用。上方红色条显示总的cpu使用率,它下方绿色的条显示cpu用在compositing the screen上的时间。
注意:在没有重启模拟器之前,一旦你开启了该功能就不能关闭。
show screen fps:显示当前的帧率。这对于查看游戏达到的总的帧率是非常有用的。注意:在没有重启模拟器之前,一旦你开启了该功能就不能关闭。
show background:当没有activity screens可见时,显示一个背景模式。一般是不会出现的,仅仅在debug的时候会出现。
设定的选项在模拟器重启之后仍然有效,如果要取消设定的选项,在取消设定以后还要重启模拟器,才能生效。
一个andvoid应用包括四个部分:
activity活动 (个人认为 :类似于jsp, 也相当于swt中的shell, view则相当于wegiet)
intent receiver (个人认为 :类似于struts action)
service (个人认为 :类似于servlet)
content provider (个人认为 :用于持久化)
用上面哪些组件,要在文件中声明。
1、 activity. 一个activity是应用中的一个单一的屏幕,它继承自activity类,它将显示由views组成的ui以及响应事件。(个人理解,相当于jsp)
2、 intent与intent filters. intent用于从一个屏幕跳到别一个屏幕,描述一个应用想做什么,它的数据结构包括action与data两部分,action如main、view、pick、edit等等, data被表达成一个uri;intentfilter相当于告诉跳到哪个activity,;intentreceiver用于响应事件,虽然它不显示ui,但它可以用notificationmanager去通知用户。它需要在文件中注册,或者是用硬编码。
3、 service是一段有生命周期的无ui的**。
4、 content provider, 持久化,例如存储在文件系统中,或者存储在sqlite数据库中。
1,**例子工程。
例如:notepadv1工程是问题工程,notepadv1solution则是相应的解决工程。
2,3个例子的函义如下:
通过练习1>
1. 数据库对象的例子程序。
2. 如何在一个activity初始化的时候创建数据库对象。
3. 如何为一个activity创建一个pop菜单。
4. 如何得到一个用户在pop菜单中选择的item 的id
5. 如何向一个listview中写入数据。
通过练习2>
1. 如何取得数据集中被选择数据行的id, 注意rows是j**a的一个listarray对象,所以它有它的getselection()的方法。
2. 如何调用一个subactivity以及在调用一个subactivity之前应该做些事情。
3. 要实现一个方法, 当subactivity返回后,应该做些什么。
4. 关于layout。由于android采用mvc的模式, 所以屏幕的布局采用了xml进行定义。一个好的布局会让程序显的更漂亮。可以参考 有很多的布局模式可供利用。
5. 如何创建一个开始的时候**中不含oncreate()的类,因为到目前为止还没有创建过自己的类,以前看到的类和修改的方法都是已经写好的了。不过这个类也是一个从继承的。创建后还是要通过source override一个oncreate的。
6. 从一个subactivity返回时,在返回之前应该做哪些事情。
7. 如何在中声明一个新的activity
8. 如何创建一个内部隐含的onclicklister及实现其应有的功能。
Android学习笔记
1 stringbuffer的使用 stringbuffer类和string一样,也用来代表字符串,只是由于stringbuffer的内部实现方式和string不同,所以stringbuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于string类。所以在实际使用时,如果经常需要对一个...
android学习笔记
目录。1 拨号器。2 短信发送器。3 单元测试1 4 单元测试2 5 文本文件读写。6 跨应用文件访问。7 访问sd卡。8 dom解析xml 9 sax解析xml文件。10 使用pull解析xml文件。11 共享首选项。12 跨包访问共享首选项。13 编程式布局。14 sqlite数据库操作。15 ...
Android学习笔记
android学习笔记 mars 1 android环境搭建。a adt bundle windows x86 b 配置环境变量 虚拟机运行的环境变量 随便整一个 i.android sdk home c android work d 2 android目录结构。a src 源文件 j a b as...