国家开放大学《Android核心开发技术》形考任务1-7参考答案.docx

上传人:国**** 文档编号:12221877 上传时间:2023-06-04 格式:DOCX 页数:25 大小:88.24KB
下载 相关 举报
国家开放大学《Android核心开发技术》形考任务1-7参考答案.docx_第1页
第1页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

国家开放大学《Android核心开发技术》形考任务1-7参考答案.docx

《国家开放大学《Android核心开发技术》形考任务1-7参考答案.docx》由会员分享,可在线阅读,更多相关《国家开放大学《Android核心开发技术》形考任务1-7参考答案.docx(25页珍藏版)》请在冰点文库上搜索。

国家开放大学《Android核心开发技术》形考任务1-7参考答案.docx

国家开放大学《Android核心开发技术》形考任务1-7参考答案

题目随机,下载后利用查找功能完成学习任务

形考任务1

1.使用AndroidStudio创建项目时,关于“CompanyDomain”说法正确的是()。

A.公司中文名称

B.公司英文名称

C.公司域名

D.公司IP地址

2.Android是在()发布的1.0版本。

A.2008年9月

B.2009年5月

C.2010年8月

D.2011年4月

3.Android目前的推荐开发工具是()。

A.Eclipse

B.AndroidStudio

C.visualstudio

D.NDK

4.Intent的用处不包含()。

A.打开一个Fragment

B.打开一个Activity

C.打开一个Service

D.启动一个BroadcastReceiver

5.一个Activity首次创建会调用()生命周期方法。

A.onCreate()

B.onPause()

C.onStart()

D.onResume()

6.Activity全生命周期中,第一个需要执行的方法是()。

A.onStart()

B.onCreate()

C.onReStart()

D.onResume()

7.Activity可视生命周期中,第一个需要执行的方法是()。

A.onStart()

B.onCreate()

C.onReStart()

D.onResume()

8.AndroidStudio是基于哪个Java集成开发环境?

()

A.IntelliJIDEA

B.Eclipse

C.Dreamweaver

D.VisualStudio

9.Android项目工程下面的assets目录的作用是()。

A.放置应用到的图片资源

B.主要放置一些文件资源,这些文件会被原封不动打包到apk里面

C.放置字符串,颜色,数组等常量数据

D.放置一些与UI相应的布局文件,都是xml文件

10.Android应用主要的开发语言是()。

A.C#

B.Swift

C.Java

D.JavaScript

11.Android开发中常用的开发与调试工具有很多,下面相关描述不对的是()。

A.AndroidDebugBridge,简称adb,它只是一个能用来调试Android应用程序的工具

B.DDMS的全称是DalvikDebugMonitorService,是Android开发环境中的Dalvik虚拟机调试监控服务

C.LogCat日志记录工具,这个工具很常用,可以理解为C或Java程序中的控制台输出,常被用来在手写代码的调试方式中,输出调试信息

D.DK的管理器,使用自动更新的方式从Google服务器中下载最新的SDK版本及工具到本机

12.Android虚拟设备的缩写是()。

A.DDMS

B.ADB

C.AVD

D.ADM

13.onPause()什么时候调用?

A.当界面启动时

B.当onCreate方法被执行之后

C.当界面被隐藏时

D.当界面重新显示时

14.下列说法正确的是()。

A.每个进程都运行于自己的java虚拟机(VM)中

B.默认情况下,每个应用程序中均运行于自己的进程中,而且此进程不会被消毁

C.每个应用程序会被赋予一个唯一的linux用户ID,从而使得该应用程序下的文件,其它用户也可以访问

D.一个应用程序数据,可以随意被其它应用程序所访问

15.下面关于Linux内核描述错误的是()。

A.由于Linux内核全部使用Java语言编写,故Android的Linux内核层也全部是用Java语言编写的

B.Linux是一个开源的操作系统,由非营利的组织——Linux基金会所管理

C.Android的内核属于Linux内核的一个分支

D.目前,Android的Linux内核层包括安全管理、内存管理、进程管理、网络协议栈、驱动程序模型和电源管理等

16.下面选项中,()是Android的四大组件之一。

A.ListView

B.Activity

C.Intent

D.Bundle

17.以下关于移动互联网的说法正确的是()。

A.移动互联网是PC互联网的别称

B.移动互联网是将移动通讯和互联网二者结合起来

C.移动互联网市场增长缓慢

D.移动互联网与传统行业正在完全独立

18.使用AndroidStudio创建项目时,“MinimumSDK”的意思是()。

A.最低支持的AndroidAPI版本

B.最高支持的AndroidAPI版本

C.编译AndroidAPI版本

D.最适合的AndroidAPI版本

19.使用AndroidStudio创建项目时,关于“CompanyDomain”说法正确的是()。

A.公司中文名称

B.公司英文名称

C.公司域名

D.公司IP地址

20.使用AndroidStudio创建项目时,关于“Packagename”说法不正确的是()。

A.应用程序包名

B.每一个app都有一个独立的包名

C.如果两个app的包名相同,Android会认为他们是同一个app

D.默认与“CompanyDomain”有关,不可以单独设置Packagename

21.关于Android系统的优势,不正确的是()。

A.开放性

B.与运营商捆绑

C.丰富的硬件选择

D.开发商不受任何限制

22.启动Activity的方法是()。

A.runActivity()

B.goActivity()

C.startActivity()

D.startActivityForIn()

23.下面选项中,()是Android的四大组件之一。

A.ListView

B.Activity

C.Intent

D.Bundle

24.在Android应用程序中,图片应放在()目录下。

A.raw

B.values

C.layout

D.drawable

25.对于“src/main/res/layout”目录,以下正确的是()。

A.用来保存图像文件

B.用来保存与用户界面相关的布局文件

C.用来保存菜单文件

D.用来存放Java类

26.使用AndroidStudio创建一个项目后,AndroidStudio会自动创建相应的项目结构。

(√)

27.我们在写Android项目时可以直接使用Android提供的控件。

(√)

28.singleTop模式启动的Activity在Activity栈中只存在一个。

(×)

29.Activity中,setContentView必须要放在findViewById之前。

(√)

30.Activity可以表现为一个悬浮窗体。

(√)

31.Activity可以通过一个别名去访问。

(×)

32.Activity是为用户操作而展示的可视化用户界面。

(√)

33.AndroidManifest文件的扩展名是apk。

(×)

34.Android的隐式意图至少包含一个category:

"android.intent.category.DEFAULT"。

(√)

35.Fragment必须总是被嵌入到一个activity中,它们的生命周期直接被其所属的宿主activity的生命周期影响。

(√)

36.Fragment表现Activity中用UI的一个行为或者一部分。

(√)

37.Fragment与Activity之间传递数据一般使用setArgument()。

(√)

38.Fragment可以独立于Activity存在。

(×)

39.O2O即OnlineToOffline(在线离线/线上到线下),是指将线下的商务机会与互联网结合,让互联网成为线下交易的前台。

(√)

40.一个应用程序可以有若干个Activity。

(√)

41.以下关于Android的日志输出,Log.i()是输出普通消息。

(√)

42.以下关于Android的日志输出,Log.w()是输出调试信息。

(×)

43.以下关于Android的日志输出,错误消息的颜色是橙色。

(×)

44.使用Fragment时,除了可以继承Fragment,还可以继承DialogFragment、ListFragment、PreferenceFragment。

(√)

45.可以通过设置android:

theme="@android:

style/Theme.Dialog",使Activity显示为对话框模式。

(√)

46.可视生命周期是Activity在界面上从可见到不可见的过程。

(√)

47.在Android平台架构中,底层是基于Windows内核的。

(×)

48.所谓"*.9.png"这是Android里所支持的一种特殊的图片格式,用它可以实现不失真拉伸。

(√)

49.密度无关像素。

(√)

50.Activity的启动模式分为standard、singleTop、singleTask、singleInstance4种。

(√)

形考任务2

【简答题】使用zxing完成扫描二维码的初始化、扫描、结果提示功能,实现主要代码即可。

答:

导入项目

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//初始化CameraManager

CameraManager.init(getpplcatin();

viewfinderView=(ViewfinderView)findViewByld(R.id.viewfinder.view);

txtResult=(TextView)findViewByld(R.id.txtResult);

hasSurface=false;

inactivityTimer=newInactivityTimer(this);

}

打开Eclipse导入源码中的Android项目,然后右击项目选择"Buildpath"--》"AddExternalArchives"把核心库core.jar文件加入到项目中。

此时编译一下项目,会发现报错"Multiplesubstitutionsspecifiedinnon-positionalformat;didyoumeantoaddtheformatted="false"attribute?

”之类的。

打开raw下的Values发现错误是在一个上。

这里把"preferences__custom_,product_search_summary”里的%s%f全部都改成%1$s%1$f(因为我们用不到多国语言,建议只保留默认的Value,其他全部删除)。

.

原因:

由于新的SDK采用了新版本的aapt(Android项目编译器),这个版本的aapt编译起来会比老版本更加的严格,然后在Android最新的开发文档的描述String的部分,已经说明如何去设置%s等符号

“IfyouneedtoformatyourstringsusingString.format(String,bje....,thenyoucandosobyputtingyourformatargumentsinthestringresource.Forexample,withthefollowingresource:

Hello,%1$s!

Youhave%2$dnewmessages.

Inthisexample,theformatstringhastwoarguments:

%1Ssisastringand%2$disadecimalnumber.Youcanformatthestringwitharguementsfromyouraplication…"

经过以上步骤后项目应该就可以运行了。

但是ZXing的android项目东西太多了,有很多是我们不需要的,得新建另一个项目简化它。

简化

在开始前大致介绍一下简化ZXing需要用到各个包、类的职责。

·CaptureActivity。

这个是启动Activity也就是扫描器(如果是第一安装,它还会跳转到帮助界面)。

·CaptureActivityHandler解码处理类,负责调用另外的线程进行解码。

·DecodeThread解码的线程。

·com.google.xing.client.android.camera包,摄像头控制包。

·ViewfinderView自定义的View,就是我们看见的拍摄时中间的框框了。

新建另一个项目。

新建另一个项目将启动的Activity命名为CaptureActivity,并导入核心库。

项目新建完成后我们打开

CaptureActity的布局文件,我这里为main。

把里面的XML修改为:

android="

android:

layout_width="fill_parent"android:

layout_height="fillparent">

id="@+id/preview_view"

android:

layout_width="fill_parent"android:

layout_heigh="illparent"

android:

layout_centerInParent="true"/>

android:

id="@+id/viewfinder_yview"android:

layout_width=fill_parent

android:

layout_height="fil_parent"android:

background="@android:

color/transparent"/>

layout_width="wrap_content"

android:

id="@+id/txtResult"

android:

layout_height="wrap_content"android:

text='@string/hello"/>

可以看到在XML里面用到了ViewfinderView自定义view。

所以新建一个View的包,然后把:

ViewfinderView和ViewfinderResultPointCallback靠到里面(记得对应修改XML里面的包)。

打开CaptureActivity覆盖onCreate方法:

这里调用到的CameraManager类是控制摄像头的包里的类。

新建一个camera包把:

com.google.xing.client.android.camera里面的类全部拷入,另外我把PlanarYUVLuminanceSource也拷入到这个包里面。

根据错误的提示来修正代码,主要是修改正包结构。

(整个简化的流程都是如此:

"根据错误提示,修改代码")。

在修改的过程中,有很多是关于R资源的问题,在此我们需要将Values里面的两个xml资源文件拷入项目中:

colos.xml和ids.xml。

ctrl+b一下看看error是不是少了很多。

在CameraManager中有些地方需要用到项目的配置,这里需要把配置直接写入代码中:

/SharedPreferencesprefs=PreferenceManager.getDefaultSharedPreferences(context);

//是否使用前灯

//if(prefs.getBoolean(PreferencesActivity.KEY_FRONT__LIGHT,false)){

//FlashlightManager.enableFlashlight);

//}

FlashlightManager.enableFlashlight);

使用摄像头需要加入相应的权限:

name="android.permission.CAMERA">

android:

name="android.permission.WRITE_EXTERNAL_STORAGE">

android:

name="android.hardware.camera"/>

name="android.hardware.camera.autofocus'

android:

name="android.permission.VIBRATE"/>

android:

name="android.permission.FLASHLIGHT"/>

当View和camera包里的错误修正完成后,我们继续来看CaptureActivity。

覆盖onResume方法初始化摄像头:

@Override

protectedvoidonResume(){

super.onResume();

SurfaceViewsurfaceView=(SurfaceView)findViewByld(R.id.preview__view);

SurfaceHoldersurfaceHolder=surfaceView.getHolder();

if(hasSurface){

initCamera(surfaceHolder);

}else{

surfaceHolder.addCallback(this);

surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

}

decodeFormats=null;

characterSet=null;

playBeep=true;

AudioManageraudioService=(AudioManager)getSystemService(AUDIOSERVICE);

if(audioService.getRingerMode()|=AudioManager.RINGER__MODE_NORMAL){

playBeep=false;

}

initBeepSound();

vibrate=true;

}

initCamera

privatevoidinitCamera(SurfaceHoldersurfaceHolder){

try{

CameraManager.get).openDriver(surfaceHolder);

}catch(IlOExceptionioe){

return;

}catch(RuntimeExceptione){

return;

}

if(handler==nul){

handler=newCaptureActivityHandler(this,decodeFormats,

characterSet);

}

}

SurfaceHolder接口实现

@Override

publicvoidsurfaceChanged(SurfaceHolderholder,intformat,intwidth,intheight){

}

@Override

publicvoidsurfaceCreated(SurfaceHolderholder){

if(!

hasSurface){

hasSurface=true;.

initCamera(holder);

}

}

@Override

publicvoidsurfaceDestroyed(SurfaceHolderholder){

hasSurface=false;

}

initCamera()方法用于初始化摄像头,如果排除了所有的error,运行项目时就可以看到大致扫描界面了。

surfaceHolderaddCallback(this);表示让CaptureActivity实现其callback接口。

handler=newCaptureActivityHandler(this,decodeFormats,characterSet)用于进行扫描解码处理。

解码

上面的步骤主要都是用于对摄像头的控制,而解码的真正工作入口是在CaptureActivityHandler里面的。

新建一个Decoding包把以下文件拷入包中:

·CaptureActivityHandler

·DecodeFormatManager

·DecodeHandler

·DecodeThread

·FinishListener

·InactivityTimer

·Intents

由于我们的包结构和Zzxing项目的有所不同所以需要注意一下类的可访问性

同样开始ctrl+B编译一下,然后开始修正错误。

在CaptureActivityHandler里把handleMessage里的部分方法先注释掉如:

"decode.succeded"分支,这是解码成功时调用CaptureActivity展示解码的结果。

在DecodeThread类里,修改部分涉及Preference配置的代码:

DecodeThread(CaptureActivityactivity,

VectordecodeFormats,

StringcharacterSet,

ResultPointallbackresultPointCallback){

this.activity=activity;

handlerlnitLatch=newCountDownLatch

(1);

hints=newHashtable(3);

////Theprefscan'tchangewhilethethreadisrunning,sopickthemuponcehere,

//if(decodeFormats==null|IdecodeFormats,isEmpty()){

//SharedPreferencesprefs=PreferenceManager.getDefaultSharedPreferences(activity);

//decodeFormats=newVector

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

当前位置:首页 > 成人教育 > 电大

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2