1、Android期末考试复习1 SharedPreferences的使用 :能够使用SharedPreferences进行存储数据(数据来源可多种,比如来源于输入文本),能够读出存储数据,并显示(比如显示在textView中)存储时,看清楚指定的存储文件名、看清要求 :package class MainActivity extends Activity private TextView tv; String s; Override protected void onCreate(Bundle savedInstanceState) (savedInstanceState); setConten
2、tView tv=(TextView)findViewById public void onClick(View v) SharedPreferences sp=(MODE_PRIVATE); switch() case ().putString(hello, )mit(); , Write Data is Successed!, 1000).show(); break; case s=(hello, ); (s); break; 数据存储位置:DDMS-File Explore-data-data-(package名称)-Shared_prefs-2、OptionMenu,XML的建立,on
3、CreateOptionsMenu()、onOptionsItemSelected()的方法使用Menu-: : American China England Chile Chad #ff006e #6eff00#006eff:简述Android 平台的特征有哪些。答:开放性、挣脱运行商的束缚、丰富的硬件选择、无缝结合的Google应用2.简述Android 平台开发环境搭建的步骤。答:安装Java JDK,安装Eclipse,安装Android SDK,搭建Eclipse集成开发环境(IDE)、配置ADT(Android Development Tools)、创建AVD(Android Vi
4、rtual Device)3.简述Android系统架构从高到低的几个层次。答:四个层次,分别是:应用程序层(Applications)、应用程序框架层(Application Framework)、各种库(Libraries)和运行环境(Runtime)、Linux内核(Linux kernel)4.应用程序的基本组件有哪些答:Activity、Service、Content Provider、BroadCast Receiver根据应用程序的组件以及组件当前运行状态将所有的进程按重要性程度从高到低划分为几个答:可以划分为5个:前台进程、可见进程、服务进程、后台进程、空进程6.随着Activ
5、ity的创建和销毁,可能会经历哪四种状态答:活动状态:当前的Activity,位于Activity栈顶,用户可见,并且可以获得焦点 暂停状态:失去焦点的Activity,依然可见,即使在内存低的情况下,也不会被系统杀死停止状态:该Activity被其他Activity所覆盖,不可见,但是仍然保存所有的状态和信息。当内存低的情况下,它将要被系统杀死销毁状态:该Activity结束,或Activity所在的Dalvik进程结束7.使用资源包括哪几种方法答:在代码里使用资源类;在代码里调用资源类并实例化;从其他资源类里引用主要包含哪些功能答:说明application的java数据包,数据包名是ap
6、plication的唯一标识描述application的component说明application的component运行在那个process下声明application的权限,用以访问受保护的API,以及与其他application进行交互声明application的其他必备权限,用以与component进行交互列举application运行时所需要的配置信息,这些声明信息只有在程序开发和测试时存在,在发布前被删除声明application所需要的Android API的最低级版本列举application所需要链接的库9.应用程序的界面布局主要有哪些答:线性布局(LinearLayout
7、)、表格布局(TableLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)应用程序的菜单有哪几种答:Android应用程序的菜单有3种:选择菜单(Option Menu)、上下文菜单(Context Menu)、子菜单(Sub Menu)11.在界面上创建一个Spinner(含数据选项)的步骤。答:1、在布局文件中添加标记,并为其指定android:entries属性2、编写用于指定列表项的数组资源文件,并将其保存在res/values目录中,在该文件中添加一个字符串组12.现行布局中属性orientation的作用是什么答:用于设置布局管理器内组件的排
8、列方式,其可选的值为horizontal和vertical,默认值为vertical中实现事件处理的步骤答:(1)将事件监听器注册到事件源(2)触发事件源上的事件(3)生成时间对象(4)触发事件监听器,事件被作为参数传入事件处理器(5)调用事件处理器做出响应14.简述Android平台提供了那些数据存储方法。答:Preferences、File、SQLite、ContentProvider,网络15.简述Android模拟器中应用程序使用SD卡的步骤。答:(1)调用Environment的getExternalStorageState()方法判断手机上是否插入了SD卡, 并且应用程序具有读写S
9、D卡的权限(2)调用Environment的getExternalDirectory()方法来获取外部存储器,也就是SD卡的目录(3)使用FileOutputStream、FileInputStream、FileReader和FileWriter来读写SD卡16.简述创建或打开一个SQLite数据库的方法有哪些答:openDataBase、openOrCreateDataBase17.使用ContentProvider来实现数据共享,都涉及到哪些辅助类。答:onCreate()、insert()、delete()、update()、query()、getType()18.开发ContentPr
10、ovider的步骤答:(1)开发一个ContentProvider子类,并实现增、删、改、查等方法(2)在里面注册该ContentProvider()和bindService()启动服务的区别:服务不能自己运行,需要通过调用startService()或bindService()方法启动服务。这两个方法都可以启动Service,但是它们的使用场合有所不同。1.使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服务仍然运行。使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止。2.采用startService(
11、)方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onStart()方法。如果调用startService()方法前服务已经被创建,多次调用startService()方法并不会导致多次创建服务,但会导致多次调用onStart()方法。采用startService()方法启动的服务,只能调用()方法结束服务,服务结束时会调用onDestroy()方法。()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onBind()方法。这个时候调用者和服务绑定在一起,调用者退出了,系统就会先调用服务的onUnbind()方法,接着调用
12、onDestroy()方法。如果调用bindService()方法前服务已经被绑定,多次调用bindService()方法并不会导致多次创建服务及绑定(也就是说onCreate()和onBind()方法并不会被多次调用)。如果调用者希望与正在绑定的服务解除绑定,可以调用unbindService()方法,调用该方法也会导致系统调用服务的onUnbind()-onDestroy()方法。20. 请解释下在单线程模型中Message、Handler、MessageQueue、Looper之间的关系。Handler简介:一个Handler允许你发送和处理Message和Runable对象,这些对象和
13、一个线程的MessageQueue相关联。每一个线程实例和一个单独的线程以及该线程的MessageQueue相关联。当你创建一个新的Handler时,它就和创建它的线程绑定在一起了。这里,线程我们也可以理解为线程的MessageQueue。从这一点上来看,Handler把Message和Runable对象传递给MessageQueue,而且在这些对象离开MessageQueue时,Handler负责执行他们。Handler有两个主要的用途:(1)确定在将来的某个时间点执行一个或者一些Message和Runnable对象。(2)在其他线程(不是Handler绑定线程)中排入一些要执行的动作21.
14、 handler机制的原理andriod提供了Handler 和 Looper 来满足线程间的通信。Handler先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(MessageExchange)。1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的MessageQueue(消息队列)。2)Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到MessageQueue里;或者接收Looper从Message Queue取出)所送来的消息。3) Message Queue(消息队列):用来存放线程放入的消息。4)线程:U
15、Ithread 通常就是main thread,而Android启动程序时会替它建立一个MessageQueue。一、 选择题1 android虚拟设备的缩写是(AVD)2 Android SDK目前支持的操作系统(DOS)3 Android开发工具插件(ADT)没有提供的开发功能(自动更新)4 Android SDK提供一些开发工具可以把应用软件打包成Android格式文件(APK)5 Android当中基本的所有的UI都是由(view)或者其子类实现的6以下不是Android中调试项目的正确步骤(测试用例)7下列不是Activity的生命周期方法之一的是(OnResume)8 以下可以做E
16、ditText编辑框的提示信息是(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创建工程时需要填写的信息名称有工
17、程名,包的名字,Activity的名字还有应用的名字7 是一个标准的压缩包,其内容包含的是编译后的class,包含了全部的API三、 简答题1 Android SDK中API的包结构的划分至少五个, 2 Android软件框架结构自上而下可分为哪些层应用程序(Application)、应用程序框架(Application Framework)、各种库(Libraries)和Android运行环境(RunTime)、操作系统层(OS)3 Android应用程序的4大组件是什么Activity、Broadcast Intent Receiver、Service、Content Provider4
18、Android应用工程文件结构有哪些源文件(包含Activity),文件,Android Library,assets目录res目录,drawble目录,layout目录,values目录,5 Android开发应用程序最有可能使用到的应用框架部分是哪些一组View(UI)组件,Content Providers,Resource Manger,Notification Manger,Activiy Manger6 Android底层库包含哪些系统C库,媒体库,Surface Manager,LibWebCore,SGL四、 编程1实现点击一个按钮,结束当前Activity并将需要返回的数据放
19、置并关闭当前窗体请编写核心代码Bundle bundle = new Bundle ( );(“store”,”数据来自Activity1”) ;Intent mIntent = new Intent( );(bundle);setResult(RESULT_OK, mIntent);finish( );2手动绑定列表控件的核心代码listMapdata;listView listview = null;data = new ArrayList Map( );Mapitem;item = new HashMap( );(“姓名” , “张三小朋友”);(“性别” , “男”);(item);i
20、tem = new HashMap( );(“姓名” , “王五同学”);(“性别” , “男”);(item);listView = new ListView(this);SimpleAdapter adapter = new SimpleAdapter(this,data, new String “姓名”,”性别”, new int ) ;(adapter);setContentView(listView);实验例题: SharePreferencepackage class MainActivity extends Activity implements private static f
21、inal String FILENAME = huanghuai; private EditText username = null,userage = null; private Button submit = null; private Button show = null; Override protected void onCreate(Bundle savedInstanceState) (savedInstanceState); setContentView username = (EditText) findViewById userage = (EditText) findVi
22、ewById submit=(Button)findViewById show=(Button)findViewById (this); (this); Override public void onClick(View v) SharedPreferences share = (FILENAME,; switch () case editor = (); String name = ().toString().trim(); String age = ().toString().trim(); (name, name); (age, (age); (); break;case (name,
23、没有 姓名信息); (age, 0); break; default: break; OptionMenupackage class MainActivity extends Activity private ImageView imageView = null; Override protected void onCreate(Bundle savedInstanceState) (savedInstanceState); setContentView imageView = (ImageView) findViewById Override public boolean onCreateO
24、ptionsMenu(Menu menu) getMenuInflater().inflate menu); return true; Override public boolean onOptionsItemSelected(MenuItem item) int itemId = (); if (itemId = Resources resources = getBaseContext().getResources();Drawable btnDrawable = (btnDrawable); return (item); ListViewpackage class MainActivity
25、 extends Activity private ListView listView = null; Override protected void onCreate(Bundle savedInstanceState) (savedInstanceState); listView = new ListView(this); (new ArrayAdapter(this, (new ItemClickEvent(); setContentView(listView); Override public boolean onCreateOptionsMenu(Menu menu) getMenu
26、Inflater().inflate menu); return true; private List getData() List data = new ArrayList(); (Test data1); (Test data2); (Test data3); (Test data4); return data; protected class ItemClickEvent implements OnItemClickListener Overridepublic void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) 菜单的创建package class MainActivity extends Activity ListView lv=null; Override protected void onCreate(Bundle savedInstanceState) (savedInstanceState); lv=new ListView(this); ArrayAdapter
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1