安卓考试复习.docx

上传人:牧羊曲112 文档编号:3432146 上传时间:2023-03-13 格式:DOCX 页数:14 大小:44.32KB
返回 下载 相关 举报
安卓考试复习.docx_第1页
第1页 / 共14页
安卓考试复习.docx_第2页
第2页 / 共14页
安卓考试复习.docx_第3页
第3页 / 共14页
安卓考试复习.docx_第4页
第4页 / 共14页
安卓考试复习.docx_第5页
第5页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《安卓考试复习.docx》由会员分享,可在线阅读,更多相关《安卓考试复习.docx(14页珍藏版)》请在三一办公上搜索。

1、安卓考试复习1、 安卓核心组件有哪些? 提供界面显示的Activtiy,提供后台计算的Service,提供进程间通信的Intent和提供广播接收的BroadcastRsceiver. 安卓用什么数据库? SQLite 2、 R.java 是什么文件?干什么用的?在什么地方? R.java文件是Android项目自动生成的终态类 R.java文件除了有自动标识资源的索引功能之外,还有另一个主要的功能,当res目录中的某个资源在应用中没有被使用到,在该应用被编译的时候系统就不会把对应的资源编译到该应用的APK包中,这样可以节省Android手机的资源。 gen/目录下 3、安卓平台架构分为几层?各

2、是什么? Android 系统分为四层,从下往上分别是Linux Kernel,Libraries 和Android Runtime,Application Frameworl,Applications. 4、在manifest文件中如何注册一个activity? 5、 Activity的生命周期有哪些状态?状态转换时调用的方法各是什么? 一个Activity有三种状态: 激活或者运行状态,运行在前台(在当前Activity栈的栈顶)。 暂停状态,失去了焦点但是仍然对用户可见,比如有其他的Activity在它之上,或者透明或者没有遮住整个屏幕。 停止状态,被其他Activity覆盖,需要注意的

3、是包括暂停状态在内,这两种状态都仍然保存了所有状态信息,直到被系统终止。 1 void onCreate 2 void onStart 3 void onRestart 4 void onResume 5 void onPause 6 void onStop 7 void onDestroy 6、同一个应用之间Activity互相调用要用什么Intent? 显式Intent直接用组件的名称定义目标组件,这种方式很直接。但是由于开发人员往往并不清楚别的应用程序的组件名称,因此,显式Intent更多用于在应用程序内部传递消息。比如在某应用程序内,一个Activity启动一个Service。 7、什

4、么是Dalvik Virtual Machine? 是一种暂存器型态的虚拟机器。简称DVM,DVM在撰写开发时就已经设想用最少的记忆体资源来执行,以及同时可执行多个VM为前提来开发的。 8、什么是Content Provider? Content Provider,即内容提供商或者 内容提供器内容提供器是应用程序之间共享数据的接口,Android系统将这种机制应用到方方面面。比如:联系人提供器专为不同应用程序提供联系人数据;设置提供器专为不同应用程序提供系统配置信息,包括内置的设置应用程序等。 9、什么是Broadcast Receiver? 广播接收器是一个专注于接收广播通知信息,并做出对应

5、处理的组件。 应用程序可以拥有任意数量的广播接收器以对所有它感兴趣的通知信息予以响应。所有的接收器均继承自BroadcastReceiver基类。 广播接收器没有用户界面。然而,它们可以启动一个activity来响应它们收到的信息,或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力闪动背灯、震动、播放声音等等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。 10、什么是Intent? Intent主要是解决Android应用的各项组件之间的通讯。 Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android

6、则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。 11、什么是Service,Service有哪些状态? Service是android 系统中的四大组件之一,它跟Activity的级别差不多,但不能自己运行只能后台运行,并且可以和其他组件进行交互。 onCreate , onBind2种状态 12、安卓的资源有哪些类型?各放在什么位置? Bool 用XML格式定义的布尔值 文件位置:res/values/filename.xml Color 用XML格式定义的颜色值 文件位置:res/values/colors.xml Dimensin 用

7、XML格式定义的数量值 文件位置:res/values/filename.xml ID 用XML格式定义的紫苑唯一ID 文件位置:res/values/filename.xml Integer 用XML格式定义的整数资源 文件位置:res/values/filename.xml Integer Array 用XML格式定义的整数数组 文件位置:res/values/filename.xml Typed Array 用XML格式定义的TypedArray 文件位置:res/values/filename.xml 13、 IPC是什么意思?和Intent有什么关系? IPC是内部进程通信的简称,

8、是共享命名管道的资源。Android中的IPC机制是为了让Activity和Service之间可以随时的进行交互,故在Android中该机制,只适用于Activity和Service之间的通信,类似于远程方法调用,类似于C/S模式的访问。通过定义AIDL接口文件来定义IPC接口。Servier端实现IPC接口,Client端调用IPC接口本地代理 14、 Broadcast有哪几种?区别? 实现广播的方法有两种。一种是在androidmanifest.xml当中去注册广播,另一种方法是在代码中动态注册广播,这两种方法虽然都能实 现广播机制,但是还是有很大不同,所以运用也要分情况。如果我们在an

9、droidmanifest.xml中去定义的话,那么该广播是在activity 结束之后也不会结束的,原因在于它已经写在了manifest.xml文件当中,也就是注册到了系统当中,所以无论你的activity是否存在,对于该 广播没有影响。而在java代码中动态注册广播,在该activity结束后,我们可以注销该广播,也就是它随着activity的消失而消失 15、Ordered broadcast如何决定接收者的顺序? Ordered Broadcast的接收者将按预先声明的优先级依次接受Broadcast。 16、安卓原生支持几种IO机制?各自有什么特点? 17、安卓原生的content

10、provider有哪些? AlarmClock,Browser,CalendarContract,CallLog,ContactsContract(包括有Contacts,Groups,PhoneLookup等),MediaStore(AudioAlbums,Artists,Genres,Playlists,Files,Images,Video)和Setting. 18、如何创建一个content provider? 打开EOE工程,创建一个新的Eoe类,扩展Content Provider。重写onCreate、getType、query、insert、delete和update方法。 19

11、、安卓下访问一个文件,要写到文件最后,要用什么模式打开文件? 20、判断SD卡是否可用,用什么方法? android.telephony.TelephonyManagerandroid.app.Activity.getSystemService 方法 、android.os.Environment及21、 Shared Preferences 是什么?有什么用? haredPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完

12、成,它提供了Android平台常规的Long长整形、Int整形、String字符串型的保存 22、要从远端URL播放多媒体文件用什么stream? adodb.stream 23、创建一个安卓数据库都有哪些途径? 24、安卓有几种布局管理器?各有什么特点? 1.FrameLayout:children按照从左上开始的顺序排列,主要用于tabed view或者图片切换功能;最简单的布局模型,在这种布局下每个添加的子控件都被放在布局的左上角,并覆盖在前一子控件的上层。 2.线性布局:children排列成一行多列或者一列多行的形式,应该是应用程序中最常用的布局方式,它提供了控件水平或者垂直排列的模

13、型,同时我们可通过设置子控件的weight布局参数控制各个控件在布局中的相对大小。 3.相对布局:children是相互之间相关位置或者和他们的parent位置相关,参照控件可以是父控件,也可以是其他子控件,但被参照的控件必须要在参照它的控件之前定义。相对布局模型所涉及的属性设置比较多,但并不复杂。 4.TableLayout:children按照行列的排序,类似于html的table;模型以行列的形式管理子控件,每一行为一个TableRow的对象,也可为一个View的对象。TableRow可添加子控件,每添加一个子控件为一列。 5.坐标布局的子控件需要指定相对于此坐标布局的横、纵坐标值,否则

14、将会像FrameLayout那样被排在左上角。手机应用需要适用于不同的屏幕大小,而这种布局模型不能自适应屏幕尺寸大小,所以应用得相当少。 25、按下button,被调用的回调函数是什么? callback 26、安卓内建的theme有哪些? 1 .Theme 2. Theme_Black 3. Theme_Light 4. Theme_Dialog 5. Theme_InputMethod 6. Theme_Panel 7 .Theme_Wallpaper 27、各种对话框共同的父类是是什么? 28、 View类是什么?起什么作用? View作为UI的最基本的元件,负责绘制UI元素和界面动作的

15、监听。可以认为是Button,文本域等界面元素或者其他View的容器。 29、 Options Menu是什么? Android手机上有个Menu按键,当Menu按下的时候,每个Activity都可以选择处理这一请求,在屏幕底部弹出一个菜单,这个菜单我们就叫做选项菜单(OptionsMenu) Android 的上下文菜单 (Context Menu) 30、 Android 原生支持哪几种 Dialog? 31、安卓画图相关的主要有哪3个类?各自作用? 1) Color :颜色对象,相当于现实生活中的 调料 2) Paint : 画笔对象,相当于现实生活中画图用的 笔主要的还是对画笔进行设置

16、 3) Canvas : 画布对象,相当于现实生活中画图用的 纸 或 布三者相结合,就能画出基本的图形 32、复合控件是什么? 复合控件是原子的、可重复使用的widget,它包含多个子控件,以某种布局方式联系在一起。 33、 ADB是什么?ADB工具一般存放在什么位置? adb是androidsdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机). 它的主要功能有: * 运行设备的shell(命令行) * 管理模拟器或设备的端口映射 * 计算机和设备之间上传/下载文件 * 将本地apk软件安装至模拟器或android设备当前用户的工作目录

17、 34、安卓开发环境包括哪些东西? 设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件 35、安卓应用程序有哪些类型? 前台应用程序 后台应用程序 间歇式应用程序 小组件 36、 和 是什么?各自干什么用的? 使用权限 用来保护用户资源的安全 利用特征 Android Market会根据uses-feature过滤所有你设备不支持的应用。 37、周期性Alarm用什么方法创建? 38、安卓如何获得位置提供者,具体方法类有哪些? 39、安卓收到一个短信,会触发什么样的broadcast? sendOrderedBroadcast 40、什么是ADT-Plugin? ADT

18、是一个Eclipse集成开发环境设计的有效、快速构建Android应用程序的插件。 ADT扩展了Eclipse的功能,让您快速建立新的Android项目,创建一个应用程序UI,添加基于Android框架API的程序包,使用SDK工具调试你的程序,甚至导出签名的apk格式的文件来发布你的应用程序。 发送短信. Send text messages package com.sms; import android.app.Activity; import android.app.PendingIntent; import android.content.Intent; import android.

19、os.Bundle; import android.telephony.SmsManager; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Send_smsActivity extends Activity private Button mButton1;

20、 private EditText mEditText1; private EditText mEditText2; public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); mEditText1 = (EditText) (EditText) this.findViewById(R.id.mEditText1); mEditText2 = (EditText) (EditText) this.findViewById(R.

21、id.mEditText2); mButton1 = (Button) (Button) this.findViewById(R.id.mButton1); mEditText1.setText(请输入电话号码); mEditText2.setText(请输入短信内容!); mEditText1.setOnClickListener(new EditText.OnClickListener public void onClick(View v) mEditText1.setText(); ); mEditText2.setOnClickListener(new EditText.OnClick

22、Listener public void onClick(View v) mEditText2.setText(); ); mButton1.setOnClickListener(new Button.OnClickListener Override public void onClick(View v) String strDestAddress = mEditText1.getText.toString; String strMessage = mEditText2.getText.toString; SmsManager smsManager = SmsManager.getDefaul

23、t; / TODO Auto-generated method stub if(isPhoneNumberValid(strDestAddress)=true & iswithin70(strMessage)=true) try / SmsManager manager = SmsManager.getDefault; / smsManager.sendTextMessage(10086,null,hi,this is sms,null,null); PendingIntent mPI = PendingIntent.getBroadcast(Send_smsActivity.this, 0,

24、 new Intent, 0); smsManager.sendTextMessage(strDestAddress, null, strMessage, mPI, null);/ / smsManager.sendTextMessage(10086,null,hi,this is sms,mPI,null); catch(Exception e) e.printStackTrace; Toast.makeText(Send_smsActivity.this, duanxin功! , Toast.LENGTH_SHORT).show; / mEditText1.setText(); / mEd

25、itText2.setText(); else if (isPhoneNumberValid(strDestAddress)=false) if(iswithin70(strMessage)=false) Toast.makeText(Send_smsActivity.this, 电话号码格式错误+短信内容超过70字,请检查!, Toast.LENGTH_SHORT).show; else 成 Toast.makeText(Send_smsActivity.this, 电话号码格式错误,请检查! , Toast.LENGTH_SHORT).show; else if (iswithin70(s

26、trMessage)=false) Toast.makeText(Send_smsActivity.this, 短信内容超过70字,请删除部分内容!, Toast.LENGTH_SHORT).show; ) ; public static boolean isPhoneNumberValid(String phoneNumber) boolean isValid = false; String expression = 10-910; String expression2 =10-910; CharSequence inputStr = phoneNumber; Pattern pattern

27、 = Ppile(expression); Matcher matcher = pattern.matcher(inputStr); Pattern pattern2 =Ppile(expression2); Matcher matcher2= pattern2.matcher(inputStr); if(matcher.matches|matcher2.matches) isValid = true; return isValid; public static boolean iswithin70(String text) if (text.length= 70) return true;

28、else return false; 如何读取SD卡. /sdcard是否可读写 public boolean IsCanUseSdCard try return Environment.getExternalStorageState.equals( Environment.MEDIA_MOUNTED); catch (Exception e) e.printStackTrace; return false; 如何获取当前地理位置. import android.location.Location; import android.location.LocationManager; Locati

29、on loc; LocationManager locMan; loc = locMan.getCurrentLocation(strProvider); Lat = (float)loc.getLatitude; Lon = (float)loc.getLongitude; 如何显示一个Status Bar Notification. 1. 获得NotificationManager对象的引用: String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (NotificationM

30、anager) getSystemService(ns); 2. 初始化Notification对象: int icon = R.drawable.notification_icon; CharSequence tickerText = Hello; long when = System.currentTimeMillis; Notification notification = new Notification(icon, tickerText, when); 3. 定义通知消息和PendingIntent对象: Context context = getApplicationContext

31、; CharSequence contentTitle = My notification; CharSequence contentText = Hello World!; Intent notificationIntent = new Intent(this, MyClass.class); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); notification.setLatestEventInfo(context, contentTitle, content

32、Text, contentIntent); 4. 把Notification对象传递给NotificationManager: private static final int HELLO_ID = 1; mNotificationManager.notify(HELLO_ID, notification); 如何播放res/raw/abc.mp3. InputStream is = getResources.openRawResource(R.id.filename); 如何打开一个contact with ID 3. 如何找到一个ID为tabHost的View 10. public voi

33、d onCreate(Bundle savedInstanceState) 11. super.onCreate(savedInstanceState); 12. TabHost tabHost = getTabHost; 13. LayoutInflater.from(this).inflate(R.layout.tab1, tabHost.getTabContentView,true); 14. LayoutInflater.from(this).inflate(R.layout.tab2, tabHost.getTabContentView,true); 15. LayoutInflat

34、er.from(this).inflate(R.layout.tab3, tabHost.getTabContentView,true); 16. tabHost.addTab(tabHost.newTabSpec(TAB1) 17. .setIndicator(线性布局).setContent(R.id.layout01); 18. tabHost.addTab(tabHost.newTabSpec(TAB2) 19. .setIndicator(绝对布局).setContent(R.id.layout02); 20. tabHost.addTab(tabHost.newTabSpec(TA

35、B3) 21. .setIndicator(相对布局).setContent(R.id.layout03); 22. 23. 如何点按一个Button后,让某个TextView内容发生变化。 public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) LayoutInflater inflater = LayoutInflater.from(this); final View v = inflater.inflate(R.layout.view02, null); Button Right = (Butto

36、n) v.findViewById(R.id.right); Right.setOnClickListener(new righonclickListener); AlertDialog.Builder builder = new AlertDialog.Builder(this) .setTitle(请选择:) .setView(v) .setIcon(arg0.getId) .setPositiveButton(确定, new DialogInterface.OnClickListener Override public void onClick(DialogInterface dialo

37、g, int which) TextView num_tv = (TextView) v.findViewById(R.id.morensl); num_tv.setText(String.valueOf(m_ClickNum); String numStr = num_tv.getText.toString; ) .setNegativeButton(取消, null); AlertDialog alert = builder.create; alert.show public class righonclickListener implements OnClickListener Override public void onClick(View arg0) m_ClickNum + ;

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号