android-测试题-答案

android-测试题-答案
android-测试题-答案

第一天:

1,

对于如下的一些映射关系,当请求URL为”/xxx/yyy/a.do”时,哪个Servlet会响应()Servlet1映射到/abc/*

Servlet2映射到/*

Servlet3映射到/abc

Servlet4映射到*.do

(10分)

A、Servlet1

B、Servlet2

C、Servlet3

D、Servlet4

参考答案:B

答案说明:url-pattern匹配规则:

①完全匹配:以“/”开头,以字母(非“*”)结束

如:/test/list.do

②目录匹配:以“/”开头且以“/*”结尾

如:/test/*

/*

③扩展名匹配:以“*.”开头,以扩展名结束

如:*.do

④“/”用来表明对应的Servlet为应用默认的Servlet。在这种情况下Servlet路径是请求的URI去掉上下文路径并且路径信息为null。

2、

下列选项中,哪个方法可以准确的获取请求页面的一个文本框的输入(文本框的名称为name)()。(10分)

A、request.getParamter(name)

B、request.getParamter(“name”)

C、request.getParamterValues(name)

D、request.getParamterValues(“name”)参考答案:B

答案说明:request.getParameter("name")根据name获取value值

request.getParameterNames("name")根据name获取一组值,如多选框

3、

在web.xml中下面哪一个标签标示servlet的URL映射()(10分)

A、mapping

B、servlet-url

C、url-mapping

D、servlet-mapping 参考答案:D

答案说明:

HelloServlet

/hello

多选题共2题满分:20分

4、

下列选项中,说法正确的是()。(10分)

A、客户端每次请求都会创建一个request 对和response对象并且把这2个对象传递到doGet方法和doPost方法中

B、在浏览器的地址栏输入地址,点击回车,这个过程称为一次请求

C、HttpServletResponse,是一个接口,父接口是Servlet

D、服务器端根据客户端的请求,返回数据到浏览器中进行显示,这个过程称为一次响应

参考答案:A,B,D

答案说明:C错误原因:HttpServletResponse,是一个接口,父接口是ServletResponse

5、

下列选项中,()是http相应包含的组成部分。(10分)

A、响应体

B、响应头

C、响应尾

D、响应行

参考答案:A,B,D

答案说明:HttpServletResponse,是一个接口,父接口是ServletResponse,代表响应对象。http的响应包含三部分组成:

第一部分:响应行第二部分:响应头第三部分:响应体

判断题共0题满分:0分

填空题共1题满分:10分

6、

_____是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。(10分)

参考答案:Servlet

答案说明:Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。

简答题共1题满分:20分

7、

请简述HttpServletRequest实例的getContextPath()方法,getRequestURL()方法和getParameter("name")方法的作用。(20分)

参考答案:request.getContextPath()获取根路径;

request.getRequestURL();获取请求的url;

request.getParameter("name")根据name获取value值;

答案说明:request对象是请求对象。请求一次就创建一个request对象,并且存储了请求的信息。所以在表单提交中,我们可以通过request对象获取用户提交的所有信息。

HttpServletRequest类中的常用方法:

request.getContextPath()获取根路径。

request.getParameter("name")根据name获取value值

request.getParameterNames("name")根据name获取一组值,如多选框

request.getRequestURL();获取请求的url

request.getRequestDispatcher("路径").forward(request,response)转发是一次请求

request.getCookie();获取请求中的cookie

request.getSession(true)获取session。默认参数为true表示如果没有获取到,则重新创建并返回;false如果没有获取到,返回null

代码题共1题满分:20分

8、

写一个HelloServlet,实现向页面输出内容hi czbk。(20分)

参考答案:JavaWeb101.txt下载

答案说明:实现Servlet

(1)实现Servlet接口

如果实现接口,需要把接口里面的方法都实现。

(2)继承GenericServlet,HttpServlet类

如果继承类,不需要把类中的方法都实现。

(3)需要web服务器知道java程序不是一个普通的java程序,而是一个servlet 通过配置进行操作,在web项目中,web.xml里面进行配置。

[1]定义一个类继承httpServlet

public class HelloServlet extends HttpServlet {

//处理get请求

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

PrintWriter writer = resp.getWriter();//向浏览器的输出流

writer.println("");

writer.println("");

writer.println("hi czbk");

writer.println("");

writer.println("");

}

//处理post请求

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

doGet(req, resp);

}

}

[2]重写2个方法doGet,doPost

[3]在在web.xml中配置

HelloServlet

cn.itcast.servlet.ServletDemo1

HelloServlet

/hello

第二天:

1、

关于ANR描述错误的是()。(10分)

A、ANR 全称是Application Not Responding

B、出现ANR 异常不会影响用户使用

C、在主线程中执行了耗时的操作会引起ANR

D、应用超过5秒钟不响应用户操作会出现anr

参考答案:B

答案说明:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择让程序继续运行,但是,他们在使用你的应用程序时,并不希望每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样,系统不会显示ANR给用户。

2、

关于handler消息分发机制,下列()方法可以延时发送消息。(10分)

A、sendEmpty(..)

B、sendEmptyMessage(..)

C、sendMessageDelayed(..)

D、sendMessage(..)

参考答案:C

答案说明:我们利用Handler的sendMessageDelayed(msg,secs*1000),可以要求secs秒后,将信息放置在队列中,排队处理,很简单就能实现。

3、

关于Android中消息机制说法正确的是()。(10分)

A、Handler只能用来发送消息

B、Handler是用来发送消息和处理消息的

C、MessageQueue是用来收集消息并主动发送消息

D、Looper是主消息的循环器.Looper是由handler创建的

参考答案:B

答案说明:Handler顾名思义就是处理者的意思,它主要用于发送消息和处理消息。一般使用Handelr对象的sendMessage()方法发送消息,发出的消息经过一系列的辗转处理后,最终会传递到Handler对象的handlerMessage()方法中.

多选题共2题满分:20分

4、

下列选项中说法正确的是()。(10分)

Android期末考试复习试卷(仅供参考)

一、选择题(20分,每小题2分) 1、下列不是手机操作系统的是( D )。 A Android B Window Mobile C Apple IPhone IOS D Windows Vista 2、下列选项哪个不是 Activity 启动的方法(B ) A startActivity B goToActivity C startActivityForResult D startActivityFromChild 3、下列哪个不是 Activity 的生命周期方法之一(B ) A onCreate B startActivity C onStart D onResume 4、下列哪个可做 Android 数据存储(A ) A SQlite B M ySql C Oracle D DB2 5、下列哪个可做EditText编辑框的提示信息( D ) A android:inputType B android:text C android:digits D android:hint 6、Math.ceil(99.1) 的结果是(B ) A 99 B 100 C 99.1 D 99.0 7、android 中下列属于Intent的作用的是(C) A实现应用程序间的数据共享 B是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D处理一个应用程序整体性的工作 8、关于 res/raw 目录说确的是A A这里的文件是原封不动的存储到设备上不会转换为二进制的格式 B这里的文件是原封不动的存储到设备上会转换为二进制的格式 C这里的文件最终以二进制的格式存储到指定的包中 D这里的文件最终不会以二进制的格式存储到指定的包中 9、Math.round(11.5)等于多少(). Math.round(-11.5)等于多少( C) A 11 ,-11 B 11 ,-12 C 12 ,-11 D 12 ,-12 10、我们都知道Hanlder是线程与Activity通信的桥梁,如果线程处理不当,你的机器就会变得越慢,那么线程销毁的方法是(A ) A onDestroy() B onClear() C onFinish() D onStop() 二、填空题(10 分,共10 题,每空1 分) 1、为了使 android 适应不同分辨率机型,布局时字体单位应用( sp ),像素单位应用( sp )和(dip ) 2、定义 LinearLayout 水平方向布局时至少设置的三个属性: ( android:orientation), (android:layout width)和(android:layout height)

Android adb(调试桥)的应用及操作命令 有米分享

Android adb(调试桥)的应用及操作命令 试阅: ……Android日志系统有循环缓冲区,并不是所有的日志系统都有默认循环缓冲区。为了得到日志信息,你需要通过-b 选项来启动logcat 。如果要使用循环缓冲区,你需要查看剩余的循环缓冲期: ?radio —查看缓冲区的相关的信息. ?events —查看和事件相关的的缓冲区. ?main —查看主要的日志缓冲区 -b 选项使用方法: [adb] logcat [-b ] 下面的例子表示怎么查看日志缓冲区包含radio 和 telephony信息: adb logcat -b radio 查看stdout 和stderr 在默认状态下,Android系统有stdout 和 stderr (System.out 和System.err )输出到/dev/null ,在运行Dalvik VM的进程中,有一个系统可以备份日志文件。在这种情况下,系统会用stdout 和stderr 和优先级 I.来记录日志信息 通过这种方法指定输出的路径,停止运行的模拟器/设备,然后通过用 setprop 命令远程输入日志 $ adb shell stop $ adb shell setprop log.redirect-stdio true $ adb shell start 系统直到你关闭模拟器/设备前设置会一直保留,可以通过添加 /data/local.prop 可以使用模拟器/设备上的默认设置 Logcat命令列表 Option Description -b 加载一个可使用的日志缓冲区供查看,比如event 和radio . 默认值是main 。具体查看Viewing Alternative Log Buffers. -c 清楚屏幕上的日志.

(完整word版)AndroidAPP开发期末复习资料

1.短信的内容提供者是() A. ContactProvider B. MessageProvider C. SmsProvider D. TelephonyProvider 2.以下是Android中用于xml解析方式的是()。 A. SAX B. DOM C. XmlPullParser D. Juint 3.下列选项中,关于Bitmap类描述正确的是()。 A. Bitmap类表示画 B. Bitmap类代表画布 C. Bitmap类是最常用的绘图类 D. Bitmap类表示位图工厂 4.Dalvik虚拟机是基于()的架构。 A.栈 B.堆 C. 寄存器 D. 存储器 5.在Android UI开发中,常见的刮刮卡是通过()实现的。 A.FrameLayout B.LinearLayout C.RelativeLayout D.TableLayout 6.注册一个短信到来的广播事件需要在清单文件配置什么权限()。 A. B. C. D. 7.关于服务的创建说法错误的是()。 A. Android中创建服务需要继承Service类 B. Android 中的服务需要在清单文件配置。

Android期末测试题(附带答案)

一、选择题 1、下列哪项不是Android四大组件( C ) A.Seivice B. Activity C. Handler D. Content Provider 2、Android是如何组织Activity的( B ) A.以堆的方式组织Activity B. 以栈的方式组织Activity C. 以树形方式组织Activity D. 以链式方式组织Activity 3、关于线程说法不正确的是( B ) A. 在 android 中,我们可以在主线程中,创建一个新的线程 B. 在创建的新线程中,它可以操作 UI 组件 C. 新线程可以和 Handler 共同使用 D. 创建的 Handler 对象,它隶属于创建它的线程 4、下列关于内存回收的说明,哪个是正确的(B ) A.程序员必须创建一个线程来释放内存 B.内存回收程序负责释放无用内存 C.内存回收程序允许程序员直接释放内存 D.内存回收程序可以在指定的时间释放内存对象 5、设置xml布局文件中的字体大小一般用什么单位( c ) A.dp B. px C. sp D. pt 6、关于service生命周期的onCreate()和onStart()说法正确的是( D ) A.当第一次启动的时候先后调用onCreate()和onStart()方法 B.当第一次启动的时候只会调用onCreate()方法 C.如果service已经启动,将先后调用onCreate()和onStart()方法 D.如果service已经启动,只会执行onStart()方法,不再执行onCreate()方法 7、Android项目工程下面的assets目录,以下说法正确的是( A ) A.这里的文件是原封不动的存储到设备上不会转换为二进制的格式 B.主要放置多媒体等数据文件 C.主要放置图片文件 D.放置字符串,颜色,数组等常量数据 8、在android中使用SQLiteOpenHelper这个辅助类,生成一个可操作的数据库,调用的方法是( A )A.getReadableDatabase() B.getDatabase() C.getEnbleDatabase() D.createDateBase() 9、Activity从可见状态变为半透明遮盖状态时,生命周期中哪个方法被调用( B )

android试卷A及答案

Android应用试卷A 一、选择题(10分) 1. 下列不是手机操作系统的是?(D) A.Android B. Window Mobile C. Apple IPhone IOS D. windows vista 2. 下列选项哪个不是Activity启动的方法?(B ) A. startActivity B. goToActivity C. startActivityForResult D. startActivityFromChild 3. 下列哪个不是Activity的生命周期方法之一?(B ) A. onCreate B startActivity C. onStart D. onResume 4. 下列哪个可做Android数据存储?( A ) A. SQlite B. MySql C. Oracle D. DB2 5. 下列哪个可做EditText编辑框的提示信息?( D ) A. android:inputType B. android:text C. android:digits D. android:hint 二、真空题(2分) 1. 为了使android适应不同分辨率机型,布局时字体单位应用sp ,像素单位应用sp 和dip 。 2. 定义LinearLayout水平方向布局时至少设置的三个属性: android:orientation ,android:layout_width 和android:layout_height 。 3. 设置 ImageView控件为灰色的方法是:android:background=”#040” 。 4. layout布局文件的命名不能出现字母大写。 5. 设置EditText只能输入”1234567890.+-*/%()”属性:android:digits 。 6. 设置TextView字体的属性是:android:textSize 。 三、简答题(30分) 1. Android项目中的入口Activity怎么写?如何注册一般的Activity? (1) Android项目中的入口Activity:

在Eclipse上调试Android应用程序

在Eclipse上调试Android应用程序 以前一直用VC开发,VC开发工具调试程序非常简单,按F7源码编译通过后,按F5就开始调试了。为了开发Android程序,使用Eclipse开发环境,刚接触Eclipse不久,对Eclipse 环境不够熟悉,在这之前开发Android程序都是通过Trace定位问题的,后来得知Eclipse也可以进行单步调试,经过动手试验,发现调试过程类似VC开发环境,下面是调试步骤: 1. 首先启动Eclipse,启动Android模拟器 2. 打开DDMS界面,选择要调试的设备,并指定要调试的进程,例如: 3.设置好断点,打开调试界面,按F11开始调试,可以F6进行单步调试。 ******************************** DDMS 的全称是Dalvik Debug Monitor Service,是Android 开发环境中的Dalvik虚拟机调试监控服务。它为我们提供例如:为测试设备截屏,针对特定的进程查看正在运行的线程以及堆信息、Logcat、广播状态信息、模拟电话呼叫、接收SMS、虚拟地理坐标等等。 在集成开发环境中,有DDMS控制台窗口。如,MyEclipse中,有个叫DDMS的Console。 1.如何启动DDMS 这个工具存放在SDK-tools路径下,启动方法: 1) 直接双击ddms.bat运行; 2) 在Eclipse调试程序的过程中启动DDMS,在Eclipse如下: Window-Open Perspective-DDMS,点击启动就可以了 DDMS对Emulator和外接测试机同等效用,如果系统检测到它们(VM)同时运行,那么DDMS 将会默认指向Emulator,以上两种启动后的操作有些不一样,建议分别尝试下; (WGY-Dalvik:虚拟机;Monitor:监听器)

(完整版)Android应用开发期末考试题

试题 一、选择题 1 android虚拟设备的缩写是(AVD) 2 Android SDK目前支持的操作系统(DOS) 3 Android开发工具插件(ADT)没有提供的开发功能(自动更新) 4Android SDK提供一些开发工具可以把应用软件打包成Android格式文件(APK) 5 Android当中基本的所有的UI都是由(view)或者其子类实现的 6以下不是Android中调试项目的正确步骤(测试用例) 7下列不是Activity的生命周期方法之一的是(OnResume) 8以下可以做EditText编辑框的提示信息是(adroid:hint) 9以下不是Activity启动的方法是(gotoActivity) 10以下不是手机操作系统的是(windows vista) 二、填空题 1 Android平台由操作系统,中间件,用户界面和应用软件组成的。 2 Android平台提供了2D,3D的图形支持,数据库支持SQLite,并且集成了浏览器 3目前已知的可以用来搭建Android开发环境的系统有windows,Linux,Mac 等4开发中推荐使用的IDE开发组合为IDE,eclipse,ADI来开发 5 Android SDK主要以java语言为基础 6创建工程时需要填写的信息名称有工程名,包的名字,Activity的名字还有应用的名字

7 Android.jar是一个标准的压缩包,其内容包含的是编译后的class,包含了全部的API 三、简答题 1 Android SDK中API的包结构的划分?至少五个 android.util,android.os,android.content,android.view,android.graphics,android.text 2 Android软件框架结构自上而下可分为哪些层? 应用程序(Application)、应用程序框架(Application Framework)、各种库(Libraries)和Android运行环境(RunTime)、操作系统层(OS) 3 Android应用程序的4大组件是什么? Activity、Broadcast Intent Receiver、Service、Content Provider 4 Android应用工程文件结构有哪些? 源文件(包含Activity),R.java文件,Android Library,assets目录res目录,drawble目录,layout目录,values目录,AndroidManifest.xml 5 Android开发应用程序最有可能使用到的应用框架部分是哪些? 一组View(UI)组件,Content Providers,Resource Manger,Notification Manger,Activiy Manger 6 Android底层库包含哪些? 系统C库,媒体库,Surface Manager,LibWebCore,SGL 四、编程 1实现点击一个按钮,结束当前Activity并将需要返回的数据放置并关闭当前窗体请编写核心代码 Bundle bundle = new Bundle ( ); Bundle.putString(“store”,”数据来自Activity1”) ;

Android的调试打印接口分析

Android的调试打印接口分析 Android输出Log可以通过使用Android.util中的Log类来实现。android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及Log.e() 。根据首字母对应VERBOSE、DEBUG、INFO、WARN、ERROR。例如,在执行下面的代码后,会输出Log到LogCat View 里: Log.v("tag", "message"); Java中原有的打印语句System.out.println()的打印也会被输出到LogCat,它的Tag标签是” System.out” 在Eclipse下会通过如下的窗口显示: 在机顶盒命令模式下,则需要执行logcat命令在串口输出打印(或者将打印输出到指定文件)。 1、使用android.util.log的优点 1)功能强大,使用方便 Logcat可以根据调试级别输出不同等级的信息(VERBOSE,DEBUG,INFO, WARN,ERROR),而且可以过滤输出指定tag的调试信息; 2)系统自动添加调试信息,定位问题快捷 程序异常退出、强制关闭、长时间无响应时,系统会自动生成log打印。包括系统基本信息(内存,CPU ,进程队列,虚拟内存,垃圾回收等)、时间信息和虚拟机信息(包括进程的,线程的跟踪信息)。 2、使用android.util.log的缺点 中间件其它模块的打印最后统一由rocme_porting_dprintf()实现,独独android的java输出使用了自己的底层实现(调用Linux的write( int fildes, const void* buf,size_t nbyte )),不够统一。 3、Android中Java打印在底层改由rocme_porting_dprintf()实现的优点 中间件打印最后统一由rocme_porting_dprintf()实现,这样只需修改porting就可以实现打印的开关、打印终端的控制(串口、控制台……)。 4、Android中Java打印改由rocme_porting_dprintf()实现的缺点 1)Android log原有的输出等级控制和输出过滤的功能将丧失,Android内部C和C++实现中用LOGV、LOGD、LOGI等分等级输出的打印将全部会输出,除非rocme_porting_dprintf()也实现分等级输出的功能; 2)Android在运行Java应用的时候,会将每个进程的标准输出sdtout等重定向到/dev/log/下的三个文件(main、radio、events)中进行缓存,执行logcat命令后再重定向到串口进行输出。若改用rocme_porting_dprintf(),则需要其实现将每个进程的标准输出sdtout重定向,

Android基础阶段 测试题

一、选择题(每题2分,共20分) 1.给定java代码,如下: public byte count(byte b1,byte b2){ return______; } 要使用这段代码能够编译成功,横线处可以填入()。(选择一项)a)(byte) (b1-b2) b)(byte) b1-b2 c) b1-b2 d) (byte) b1/b2 2.在Java中,下列()语句不能通过编译。 (选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; c) int a= 3+5 d) float f=5+5.5; 3.给定如下java代码,编译运行之后,将会输出()。 public class Test{ public staticvoid main(String args[]){ int a=5; System.out.println(a%2==1) ?(a+1) /2:a/2) ; } } a)1 b)2 c)2.5 d)3 4. 有关线程的哪些叙述是对的?( ) A、当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。 B、使用Start()方法可以使一个线程成为可运行的,但它不一定立即开始运行。 C、一个线程可能因为不同的原因停止并进入就绪状态。 D、一旦一个线程被创建,它立即开始运行。 5.下列属于Intent的作用的是( ) A、实现应用程序间的数据共享

B、是一段长的生命周期,没有用户界面的程序,可以保持应用在后台运行,而不会因为切换页面而消失 C、可以实现界面间的切换,可以包含动作和动作数据,连接四大组件的纽带 D、处理一个应用程序整体性的工作 6.关于下列程序段的输出结果,说法正确的是:() public class MyClass{ static int i; public static void main(String argv[]){ System.out.println(i); } } A、有错误,变量i没有初始化。 B、null C、1 D、0 7.下列属于SAX解析xml文件的优点的是() A、将整个文档树在内存中,便于操作,支持删除,修改,重新排列等多种功能 B、不用事先调入整个文档,占用资源少 C、整个文档调入内存,浪费时间和空间 D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会 消失 8.下列哪些语句关于内存回收的说明是正确的? ( ) A、程序员必须创建一个线程来释放内存 B、内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 9.下面在AndroidManifest.xml文件中注册BroadcastReceiver方式正确的是() A、 B、

Android练习题及答案

练习题 一、选择题 1. 下面哪个属于体系结构中的应用程序?( ) (A) (B) (C)浏览器(D) 2. 应用程序需要打包成( )文件格式在手机上安装运行。 (A) (B) (C) (D) 3. 在的生命周期中,当被某个覆盖掉一部分后,会处于哪种状态?( ) (A) 暂停(B) 活动(C) 停止(D) 销毁 4. 中下列属于的作用的是( )。 (A) 实现应用程序间的数据共享() (B) 是一段长的生命周期,没有用户界面的程序,可以保持在后台运行,而不会因为切换页面而消失() (C) 可以实现界面间的切换,可以包含动作和动作数据,是连接4大组件的纽带 (D) 处理一个应用程序整体性的工作 5. 项目启动时最先加载的是文件,如果有多个,以下哪个属性决定了该最先被加载?( )。 (A) (B)(没有) (C) (D) 6. 如果需要捕捉某个组件的事件,需要为该组件创建( ) (A)属性(B)监听器(C)方法(D)工程 7.关于描述正确的是( )。 (A)该布局为绝对布局,可以自定义控件的的位置 (B)该布局为切换帧布局,可实现标签切换的功能 (C)该布局为相对布局,其中控件的位置都是相对位置

(D)该布局为表格布局,需要配合一起使用 8.关于的说法不正确的是 ( )。 (A)它实现不同进程间通信的一种机制(B)它采用队列的方式来存储 (C)既是消息的发送者也是消息的处理者(D) 它实现不同线程间通信的一种机制 9. 下列哪种不是的存储方式?( ) (A) (B) (C) (D) 10. 下列关于的描述,不正确的是 ( )。 (A)是系统的后台服务组件,适用于开发无界面、长时间运行的应用功能 (B)比的优先级高,不会轻易被系统终止 (C)有两种不同的使用方式,一种是以启动方式使用,另一种是以绑定方式使用 (D)每个服务都继承自基类 二、填空题 1. 目前,常见的智能手机操作系统有、和等。 2第一次被创建的时候调用的方法是()。 3.为了使系统适应不同分辨率机型,布局时使用的字体和像素单位分别是 和。 4支持的4大重要组件,分别是、、和。 5. 4.0中提供了5种布局管理器:、、、和。 6类不能直接使用关键字来创建类的对象实例,而是首先创建其内部 类类的对象,再调用这个内部类的()方法来显示对话框。

Android常用调试工具

Android问题分析工具 Android应用开发过程中,会遇到各种各样的问题。好的分析方法和分析工具,能起到事半功倍的效果。下面是几个常用的小工具,希望能对大家有所帮助。 1. 查看当前堆栈 1) 功能:在程序中加入代码,使可以在logcat中看到打印出的当前函数调用关系 2) 方法: new Exception(“print trace”).printStackTrace(); 2. MethodTracing 1) 功能:用于热点分析和性能优化,分析每个函数占用的CPU时间,调用次数,函 数调用关系等 2) 方法: a) 在程序代码中加入追踪开关 1. import Android.os.Debug; 2. …… 3. Android.os.Debug.startMethodTracing(“/data/tmp/test”); // 先 建/data/tmp目录 4. …… // 被追踪的程序段 5. Android.os.Debug.stopMethodTracing(); b) 编译,运行后,设备端生成/data/tmp/test.trace文件 c) 把trace文件复制到PC端 1. $ adb pull /data/tmp/test.trace ./

d) 使用Android自带工具分析trace文件 1. $ $Android_SRC/out/host/linux-x86/bin/traceview test.trace 此时可看到各个函数被调用的次数CPU占用率等信息 e) 使用Android自带工具分析生成调用关系类图 1. $ apt-get install graphviz # 安装图片相关软件 2. $Android_SRC/out/host/linux-x86/bin/dmtracedump -g test.png test.trace 此时目录下生成类图test.png 3) 注意 trace文件生成与libdvm模块DEBUG版本相冲突,所以此方法只适用于对非DEBUG 版 本模拟器的调试,否则在分析trace文件时会报错 3. HProf (Heap Profile) 1) 功能: 用于java层面的内存分析,显示详细的内存占用信息,指出可疑的内存泄漏对象 2) 方法: a) 在代码中加入dump动作 1. import Android.os.Debug; 2. import java.io.IOException; 3. …… 4. try { 5. Android.os.Debug.dumpHprofData(“/data/tmp/input.hprof”); // 先 建/data/tmp目录 6. } catch (IOException ioe) { 7. } b) 把hprof文件复制到PC端 1. $ adb pull /data/tmp/input.hprof ./

《Android程序设计》期末试题B

一、判断题(每小题2分,共10分) 1、Android是J2ME的一个实现。() 2、View是ViewGroup的子类。() 3、一个Intent可以包含多个category。() 4、Android系统下的文件,可以被本系统里的所有应用程序访问。() 5、无论Service是以启动方式还是绑定方式运行,该Service类都要重写onBind 方法。() 二、单项选择题(在每小题的四个备选答案中,有且只有一个正确答案,请将正确答案的序号填在题干的括号内。每小题2分,共20分) 1、下列关于继承的哪项叙述是正确的?() A、在Java中类允许多重继承 B、在Java中一个类只能实现一个接口 C、在Java中一个类不能同时继承一个类和实现一个接口 D、在Java中接口允许继承自另一个接口 2、以下哪种方式不能退出当前活动状态的Activity?() A、调用finish()方法 B、单击(返回)按钮 C、单击(回到桌面)按钮 D、Activity运行时出现异常 3、对于TextView,使用哪个属性来设置显示的文本?() A、android:textSize B、android:text C、android:textColor D、android:string 4、要处理Button的点击事件,需要注册哪个监听器?() A、OnClickListener() B、OnButtonClickListener() C、OnButtonListener() D、OnItemClickListener() 5、浏览网页使用的Intent的Action是什么?() A、ACTION_CALL B、ACTION_EDIT C、ACTION_SEND D、ACTION_VIEW 6、Android 关于启动方式的service生命周期的onCreate()和onStartCommand()方法,说法正确的是()

Android移动应用试题(带答案)

<>试题 一.选择题(2’X12) 1.下面哪一个不属于Android体系结构中的应用程序层 A.电话簿 B.日历 C.SQLite D.SMS程序 2.下面哪种说法不正确 A.Android应用的gen目录下的R.java被删除后还能自动生成; B.res目录是一个特殊目录,包含了应用程序的全部资源,命名规则可以支持数字(0-9) 下横线(_),大小写字母(a-z , A-Z); C.AndroidManifest.xml文件是每个Android项目必须有的,是项目应用的全局描述。其 中指定程序的包名(pack age=”…”)+指定android应用的某个组件的名字(android:name=”…”)组成了该组件类的完整路径 D.assets和res目录都能存放资源文件,但是与res不同的是assets支持任意深度的子目 录,在它里面的文件不会在R.java里生成任何资源ID 3.在一个相对布局中怎样使一个控件居中 A.android:gravity="center" B.android:layout_gravity="center" C.android:layout_centerInParent="true" D.android:scaleType="center" 4.下面是一段生成对话框的代码,哪一行有错误? Builder builder = new Builder(getApplicationContext()); 1 builder.setTitle("提示").setMessage("请选择"); 2 builder.setPositiveButton("重置", new OnClickListener() 3 { 4 public void onClick(DialogInterface dialog, int which) 5 { 6 Log.i("log", "重置被按了!"); 7 } 8 }); 9 builder.setNegativeButton("取消", null); 10 builder.setNeutralButton("确定", new OnClickListener() 11 { 12 public void onClick(DialogInterface dialog, int which) 13 { 14 Toast.makeText(getApplicationContext(), "确定被按了!", 15 Toast.LENGTH_SHORT).show(); 16 } 17

android调试桥(adb)常用命令

Android 调试桥(adb)是多种用途的工具,该工具可以帮助你管理设备或模拟器的状态。 可以通过下列几种方法加入adb: ?在设备上运行shell命令 ?通过端口转发来管理模拟器或设备 ?从模拟器或设备上拷贝来或拷贝走文件 下面对adb进行了介绍并描述了常见的使用. Contents 概要 发出adb命令 查询模拟器/设备实例 给特定的模拟器/设备实例发送命令 安装软件 转发端口 从模拟器/设备中拷入或拷出文件 Adb命令列表 启动shell命令 通过远程shell端运行sqllite3连接数据库 UI/软件试验程序Monkey 其它的shell命令 启用logcat日志 使用logcat命令 过滤日志输出 控制日志输出格式 查看可用日志缓冲区 查看stdout 和stderr Logcat命令列表 停止adb服务 概要 Android 调试系统是一个面对客户服务系统,包括三个组成部分: ?一个在你用于开发程序的电脑上运行的客户端。你可 以通过shell端使用adb命令启动客户端。其他 Android工具比如说ADT插件和DDMS同样可以产 生adb客户端. ?在你用于发的机器上作为后台进程运行的服务器。该 服务器负责管理客户端与运行于模拟器或设备上的 adb守护程序(daemon)之间的通信。.

?一个以后台进程的形式运行于模拟器或设备上的守 护程序(daemon)。. 当你启动一个adb客户端,客户端首先确认是否已有一个adb服务进程在运行。如果没有,则启动服务进程。当服务器运行,adb服务器就会绑定本地的TCP端口5037并监听adb客户端发来的命令,—所有的adb客户端都是用端口5037与adb服务器对话的. 接着服务器将所有运行中的模拟器或设备实例建立连接。它通过扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备。一旦服务器找到了adb守护程序,它将建立一个到该端口的连接。请注意任何模拟器或设备实例会取得两个连续的端口——一个偶数端口用来相应控制台的连接,和一个奇数端口用来响应adb连接。比如说: 模拟器1,控制台:端口5554 模拟器1,Adb端口5555 控制台:端口5556 Adb端口5557... 如上所示,模拟器实例通过5555端口连接adb,就如同使用5554端口连接控制台一样. 一旦服务器与所有模拟器实例建立连接,就可以使用adb命令控制和访问该实例。因为服务器管理模拟器/设备实例的连接,和控制处理从来自多个adb客户端来的命令,你可以通过任何客户端(或脚本)来控制任何模拟器或设备实例. 以下的部分描述通过命令使用adb和管理模拟器/设备的状态。要注意的是如果你用,装有ADT 插件的Eclipse开发Android程序,你就不需要通过命令行使用adb。ADT插件已经透明的把adb集成到Eclipse中了,当然,如果必要的话你也可以仍然直接使用adb,比如说调试. 发出adb命令 发出Android命令:你可以在你的开发机上的命令行或脚本上发布Android命令,使用方法: adb [-d|-e|-s ] 当你发出一个命令,系统启用Android客户端。客户端并不与模拟器实例相关,所以如果双服务器/设备是运行中的,你需要用-d选项去为应被控制的命令确定目标实例。关于使用这个选项的更多信息,可以查看模拟器/设备实例术语控制命令 . 查询模拟器/设备实例 在发布adb命令之前,有必要知道什么样的模拟器/设备实例与adb服务器是相连的。可以通过使用devices命令来得到一系列相关联的模拟器/设备: adb devices ?作为回应,adb为每个实例都制定了相应的状态信息: ??序列号——由adb创建的一个字符串,这个字符串 通过自己的控制端口-

Android应用软件开发高级工程师考试试题

CEAC国家信息化中心计算机教育认证 (Android应用软件开发高级工程师) 考试试卷(综合) 姓名__________身份证号_______________成绩__________ 单选题 1:以下哪个不是Adapter的子类接口?( 1 分)( ) A:ListAdatper B:SpinnerAdapter C:WrapperListAdapter D:SimpleAdatper 2:定义字符串:String str=”abcdefg”;则str.indexOf(‘d’)的结果是()。(1 分) A:‘d’B:true C: 3 D:4 3:下面关于包的说明正确的是()。( 1 分) A:包把相关的类组织在一个目录下,便于引用 B:只有public 类才能放到包中 C:不同源文件中的类不能放到同一个包中 D:包的申明必须放到程序的第一行 4:一维数组arr,如何获取其数组元素数量()。( 1 分) A:arr.size B:arr.size-1 C:arr.length-1 D:arr.length 5: Android应用程序的四大组件是指()。( 2 分) A:Activity、Dialog、Service和Intent B:Activity、Service、BroadCast Receiver和Content Provider C:Activity、Service、BroadCast Receiver和Intent D:Activity、Dialog、Service和Content Provider

6下面哪个方法不属于InputStream类?( 2 分)( ) A:int read(byte[]) B:void flush() C:int read() D:void close() 7:给定下列代码: public class Person{ static int arr[]=new int[10]; public static void main(String a[]){ System.out.println(arr[1]); } } 下列说法正确的有()。( 2 分) A:编译时程序将发生错误 B:编译时程序正确但是运行时出错 C:输出为0 D:输出为null 8:访问Student类中的number成员之值哪种方式正确?()class Student{ private static int number=1; public static int getNumber(){ return number; } } ( 2 分) A:Student.number; B:new student().number; C:Student.getNumber(); D:new student().getnumber(); 9:Activity中onCreate(Bundle savedInstanceState)方法中的参数为saveInstanceState,关于saveInstanceState的错误的描述是()。( 2 分) A:saveInstanceState参数采用key-value的形式存储数据 B:saveInstanceState保存的是Activity的实例状态

android虚拟机和调试

Android虚拟机安装和调试简单教程 虚拟机选择 随着google被墙,安装安卓虚拟机真的是非常困难,你可能试过离线下载和在线下载,但是都是比较困难。Genymotion工具就是提供了Android虚拟环境,能够让我们快速安装和使用,同时在Eclipse中安装插件也可以让自己开发的程序运行在Genymotion的Android虚拟机 Genymotion安装 注册登录 进入Genymotion官网,点击下载按钮,这里必须要输入邮箱。如果是已经注册过直接输入邮箱即可。 如果未注册,输入邮箱和两次密码后,系统会发送一封邮件到你邮箱,请一定要去验证后在进行下一步下载。 注意:一定要进行验证。 1.下载 因为Genymotion运行需要VirtualBox,如果电脑中没安装过,选这个版本。这个版本包含Oracle VirtualBox 4.2.12支持,因此您不用再手动下载安装VirtualBox。

1.如果已经安装过VirtualBox,选择这个版本 2.运行安装Genymotion 双击运行下载的Genymotion安装文件,选择中文语言并点击下一步,下一步

3.可更改安装路径,点击浏览Browse.. 软件默认的路径为C:\Program Files\Genymobile\Genymotion 然后下一步

4.在弹出框选择是否创建快捷菜单[Don't create a Start Menu folder] 点击下一步 5.在弹出框选择是否创建桌面快捷方式[Create a desktop icon], 点击下一步-->安装-->完成

Android虚拟机ADT安装及显示helloword应用

一下载相关资源 ADT(Android开发工具)(Android Development Tools的缩写) https://www.360docs.net/doc/e23151338.html,/sdk/index.html,点击“Download the SDK ADT Bundle for Windows”,在新打开的页面中选中“I have read and agree with the above term s and conditions”同意许可协议,选择32进制还是64进制,再次点击“Download the SDK ADT Bundle for Windows”按钮就正式开始下载了,文件大小400MB左右。 原来需要单独下载Eclipse和ADT插件,我发现最新的ADT包中已经集成了这两个东西,也就是说,下载则一个就够了,省心。 二搭建Android虚拟机(模拟器) 将下载到压缩包解压缩到一个目录中,需要用到的开发程序都是“绿色”的,也就是说,不需要安装解压缩之后就可以开工了。 执行/sdk/tools/android.bat,会启动Android SDK Manager,正常的话我们可以看到SDK platform已经安装好了,如图: 下面再按如图所示,在菜单中打开:Tools/Manage AVDs,如图:

这个AVD是Android Virtual Device的缩写,可以理解为虚拟机、模拟器,要调试开发应用,当然需要创建一台虚拟机了,点击“New” 在弹出的窗口中为新虚拟机进行一些简单的设置,如图所示:

AVD name:给虚拟机起一个名字 Device:设备(与电脑的分辨率是宽的不同,手机的分辨率是高的,所以当你选择过大的分辨率时,在电脑上可以显示不全,调试麻烦,我就吃了这个亏高度不要高于800)Target:Android的版本,没有特殊情况就用最新版 SD Card:我设置了200MiB 设好之后点击“OK”,顺利的话会显示创建结果,如图:

相关文档
最新文档