安卓考试复习_第1页
安卓考试复习_第2页
安卓考试复习_第3页
安卓考试复习_第4页
安卓考试复习_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上1、 安卓核心组件有哪些? 提供界面显示的Activtiy,提供后台计算的Service,提供进程间通信的Intent和提供广播接收的BroadcastRsceiver.安卓用什么数据库?SQLite2、 R.java 是什么文件?干什么用的?在什么地方? R.java文件是Android项目自动生成的终态类R.java文件除了有自动标识资源的"索引"功能之外,还有另一个主要的功能,当"res"目录中的某个资源在应用中没有被使用到,在该应用被编译的时候系统就不会把对应的资源编译到该应用的APK包中,这样可以节省Android手机

2、的资源。 "gen/"目录下3、安卓平台架构分为几层?各是什么? Android 系统分为四层,从下往上分别是Linux Kernel,Libraries 和Android Runtime,Application Frameworl,Applications.4、在manifest文件中如何注册一个activity?<activity android:name=".MainActivity"></activity>5、 Activity的生命周期有哪些状态?状态转换时调用的方法各是什么? 一个Activity有三种状态:激活或者运

3、行状态,运行在前台(在当前Activity栈的栈顶)。暂停状态,失去了焦点但是仍然对用户可见,比如有其他的Activity在它之上,或者透明或者没有遮住整个屏幕。停止状态,被其他Activity覆盖,需要注意的是包括暂停状态在内,这两种状态都仍然保存了所有状态信息,直到被系统终止。1234567void onCreate()void onStart()void onRestart()void onResume()void onPause()void onStop()void onDestroy()6、同一个应用之间Activ

4、ity互相调用要用什么Intent(隐式、显式?还是什么?)? 显式Intent直接用组件的名称定义目标组件,这种方式很直接。但是由于开发人员往往并不清楚别的应用程序的组件名称,因此,显式Intent更多用于在应用程序内部传递消息。比如在某应用程序内,一个Activity启动一个Service。7、什么是Dalvik Virtual Machine? (Dalvik虚拟机器)是一种暂存器型态的虚拟机器。简称DVM,DVM在撰写开发时就已经设想用最少的记忆体资源来执行,以及同时可执行多个VM为前提来开发的。8、什么是Content Provider? Content Provider,即内容提供

5、商或者内容提供器内容提供器是应用程序之间共享数据的接口,Android系统将这种机制应用到方方面面。比如:联系人提供器专为不同应用程序提供联系人数据;设置提供器专为不同应用程序提供系统配置信息,包括内置的设置应用程序等。9、什么是Broadcast Receiver?广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。应用程序可以拥有任意数量的广播接收器以对所有它感兴趣的通知信息予以响应。所有的接收器均继承自BroadcastReceiver基类。广播接收器没有用户界面。然而,它们可以启动一个activity来响应它们收到的信息,或者用NotificationManager来通知用户

6、。通知可以用很多种方式来吸引用户的注意力闪动背灯、震动、播放声音等等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。10、什么是Intent?Intent(意图)主要是解决Android应用的各项组件之间的通讯。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。11、什么是Service,Service有哪些状态?Service是android 系统中的四大组件之一(Activity、Service、BroadcastReceive

7、r、ContentProvider),它跟Activity的级别差不多,但不能自己运行只能后台运行,并且可以和其他组件进行交互。onCreate() , onBind()2种状态 12、安卓的资源有哪些类型?各放在什么位置?Bool 用XML格式定义的布尔值 文件位置:res/values/filename.xmlColor 用XML格式定义的颜色值 文件位置:res/values/colors.xmlDimensin 用XML格式定义的数量值 文件位置:res/values/filename.xmlID 用XML格式定义的紫苑唯一ID 文件位置:res/values/fi

8、lename.xmlInteger 用XML格式定义的整数资源 文件位置:res/values/filename.xmlInteger Array 用XML格式定义的整数数组 文件位置:res/values/filename.xmlTyped Array 用XML格式定义的TypedArray 文件位置:res/values/filename.xml13、 IPC是什么意思?和Intent有什么关系?IPC是内部进程通信的简称, 是共享"命名管道"的资源。Android中的IPC机制是为了让Activity和Service之间可以随时的进行交互,故在Android中该机制,

9、只适用于Activity和Service之间的通信,类似于远程方法调用,类似于C/S模式的访问。通过定义AIDL接口文件来定义IPC接口。Servier端实现IPC接口,Client端调用IPC接口本地代理14、 Broadcast有哪几种?区别? 实现广播的方法有两种。一种是在androidmanifest.xml当中去注册广播,另一种方法是在代码中动态注册广播,这两种方法虽然都能实 现广播机制,但是还是有很大不同,所以运用也要分情况。如果我们在androidmanifest.xml中去定义的话,那么该广播是在activity 结束之后也不会结束的,原因在于它已经写在了manifest.xm

10、l文件当中,也就是注册到了系统当中,所以无论你的activity是否存在,对于该 广播没有影响。而在java代码中动态注册广播,在该activity结束后,我们可以注销该广播,也就是它随着activity的消失而消失15、Ordered broadcast如何决定接收者的顺序?Ordered Broadcast的接收者将按预先声明的优先级依次接受Broadcast。16、安卓原生支持几种IO机制?各自有什么特点?17、安卓原生的content provider有哪些?AlarmClock,Browser,CalendarContract,CallLog,ContactsContract(包括有

11、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、安卓下访问一个文件,要写到文件最后,要用什么模式打开文件?20、判断SD卡是否可用,用什么方法?android.telephony.TelephonyMan

12、ager、android.os.Environment及android.app.Activity.getSystemService 方法21、 Shared Preferences 是什么?有什么用?haredPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长整形、Int整形、String字符串型的保存22、要从远端URL播放多媒体文件用什么stream?adodb.strea

13、m23、创建一个安卓数据库都有哪些途径?24、安卓有几种布局管理器(Layout)?各有什么特点?1.FrameLayout:children按照从左上开始的顺序排列,主要用于tabed view或者图片切换功能;最简单的布局模型,在这种布局下每个添加的子控件都被放在布局的左上角,并覆盖在前一子控件的上层。2.线性布局(LinearLayout):children排列成一行多列或者一列多行的形式,应该是应用程序中最常用的布局方式,它提供了控件水平或者垂直排列的模型,同时我们可通过设置子控件的weight布局参数控制各个控件在布局中的相对大小。3.相对布局(RelativeLayout):chi

14、ldren是相互之间相关位置或者和他们的parent位置相关,参照控件可以是父控件,也可以是其他子控件,但被参照的控件必须要在参照它的控件之前定义。相对布局模型所涉及的属性设置比较多,但并不复杂。4.TableLayout:children按照行列的排序,类似于html的table;模型以行列的形式管理子控件,每一行为一个TableRow的对象,也可为一个View的对象。TableRow可添加子控件,每添加一个子控件为一列。5.坐标布局(AbsoluteLayout)的子控件需要指定相对于此坐标布局的横、纵坐标值,否则将会像FrameLayout那样被排在左上角。手机应用需要适用于不同的屏幕大

15、小,而这种布局模型不能自适应屏幕尺寸大小,所以应用得相当少。25、按下button,被调用的回调函数是什么?callback()26、安卓内建的theme有哪些?1 .Theme 2. Theme_Black 3. Theme_Light 4. Theme_Dialog 5. Theme_InputMethod6. Theme_Panel 7 .Theme_Wallpaper27、各种对话框共同的父类是是什么?28、 View类是什么?起什么作用?View作为UI的最基本的元件,负责绘制UI元素和界面动作的监听。可以认为是Button,文本域等界面元素或者其他View的容器。29、 Optio

16、ns Menu是什么? Android手机上有个Menu按键,当Menu按下的时候,每个Activity都可以选择处理这一请求,在屏幕底部弹出一个菜单,这个菜单我们就叫做选项菜单(OptionsMenu)Android 的上下文菜单 (Context Menu)30、 Android 原生支持哪几种 Dialog?31、安卓画图相关的主要有哪3个类?各自作用?1) Color :颜色对象,相当于现实生活中的 调料2) Paint : 画笔对象,相当于现实生活中画图用的 笔主要的还是对画笔进行设置3) Canvas : 画布对象,相当于现实生活中画图用的 纸 或 布三者相结合,就能画出基本的图形

17、32、复合控件(compound views)是什么?复合控件是原子的、可重复使用的widget,它包含多个子控件,以某种布局方式联系在一起。33、 ADB是什么?ADB工具一般存放在什么位置?adb是sdk里的一个工具, 用这个工具可以直接操作管理android或者真实的andriod设备(如G1手机). 它的主要功能有:* 运行设备的(命令行)* 管理或设备的* 计算机和设备之间上传/下载文件* 将本地apk软件安装至或设备当前用户的工作目录34、安卓开发环境包括哪些东西?设备模拟器,调试工具,内存及图表,和Eclipse35、安卓应用程序有哪些类型? 前台应用程序 后台应用程序 间歇式应

18、用程序 小组件36、 <uses-permission> 和 <uses-feature> 是什么?各自干什么用的?使用权限 用来保护用户资源的安全 利用特征 Android Market会根据uses-feature过滤所有你设备不支持的应用。37、周期性Alarm用什么方法创建?38、安卓如何获得位置提供者,具体方法类有哪些?39、安卓收到一个短信,会触发什么样的broadcast?sendOrderedBroadcast40、什么是ADT-Plugin?ADT(Android开发工具包)是一个Eclipse集成开发环境设计的有效、快速构建Android应用程序的插

19、件。 ADT扩展了Eclipse的功能,让您快速建立新的Android项目,创建一个应用程序UI,添加基于Android框架API的程序包,使用SDK工具调试你的程序,甚至导出签名的(或未签名的)apk格式的文件来发布你的应用程序。发送短信.  Send text messagespackage com.sms;  import android.app.Activity;  import android.app.PendingIntent;import android.content.Intent;

20、60;import android.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;

21、60;import java.util.regex.Pattern;   public class Send_smsActivity extends Activity       private Button mButton1;    private EditText mEditText1;    private EditTex

22、t mEditText2;     public void onCreate(Bundle savedInstanceState)           super.onCreate(savedInstanceState);       setContentView(R.layout.main);     &#

23、160;mEditText1 = (EditText) (EditText) this.findViewById(R.id.mEditText1);     mEditText2 = (EditText) (EditText) this.findViewById(R.id.mEditText2);     mButton1 = (Button) (Button) this.findVie

24、wById(R.id.mButton1);       mEditText1.setText("请输入电话号码");      mEditText2.setText("请输入短信内容!");     mEditText1.setOnClickListener(new EditText.OnClickListener()     

25、         public void onClick(View v)                   mEditText1.setText("");             

26、;      );     mEditText2.setOnClickListener(new EditText.OnClickListener()               public void onClick(View v)         

27、             mEditText2.setText("");                    );        mButton1.setOnClickListener(new Button.OnCli

28、ckListener()                   Override      public void onClick(View v)                String strDestAddress&

29、#160;= mEditText1.getText().toString();        String strMessage = mEditText2.getText().toString();         SmsManager smsManager = SmsManager.getDefault();     

30、0;  / TODO Auto-generated method stub      if(isPhoneNumberValid(strDestAddress)=true && iswithin70(strMessage)=true)               try      &

31、#160;             /        SmsManager manager = SmsManager.getDefault();          / smsManager.sendTextMessage("10086",null,&

32、quot;hi,this is sms",null,null);             PendingIntent mPI = PendingIntent.getBroadcast(Send_smsActivity.this, 0, new Intent(), 0);          

33、    smsManager.sendTextMessage(strDestAddress, null, strMessage, mPI, null);/ /        smsManager.sendTextMessage("10086",null,"hi,this is sms",mPI,null);       

34、0;       catch(Exception e)                      e.printStackTrace();                  

35、60; Toast.makeText(Send_smsActivity.this, "duanxin成功!" , Toast.LENGTH_SHORT).show(); /       mEditText1.setText(""); /       mEditText2.setText("");   

36、0;           else               if (isPhoneNumberValid(strDestAddress)=false)                   

37、;      if(iswithin70(strMessage)=false)                            Toast.makeText(Send_smsActivity.this, "电话号码格式错误+短信内容超过70字,请检查!", Toa

38、st.LENGTH_SHORT).show();                         else                       

39、;  Toast.makeText(Send_smsActivity.this, "电话号码格式错误,请检查!" , Toast.LENGTH_SHORT).show();                                &#

40、160; else if (iswithin70(strMessage)=false)               Toast.makeText(Send_smsActivity.this, "短信内容超过70字,请删除部分内容!", Toast.LENGTH_SHORT).show();          

41、                        ) ;         public static boolean isPhoneNumberValid(String phoneNumber)       &#

42、160;boolean isValid = false;     String expression = "10-910"           String expression2 ="10-910"     CharSequence inputStr =&#

43、160;phoneNumber;     Pattern pattern = Ppile(expression);      Matcher matcher = pattern.matcher(inputStr);   Pattern pattern2 =Ppile(expression2);        Match

44、er matcher2= pattern2.matcher(inputStr);      if(matcher.matches()|matcher2.matches()             isValid = true;            

45、 return isValid;        public static boolean iswithin70(String text)        if (text.length()<= 70)        return true;  

46、    else       return false;          如何读取SD卡. /sdcard是否可读写  public boolean IsCanUseSdCard()      try          return Environ

47、ment.getExternalStorageState().equals(                 Environment.MEDIA_MOUNTED);     catch (Exception e)          e.printStackTrace();    

48、      return false;  如何获取当前地理位置. import android.location.Location;import android.location.LocationManager;Location loc;LocationManager locMan;loc = locMan.getCurrentLocation(strProvider);Lat = (float)loc.getLatitude();Lon = (float)loc.getLongitude;如何显示一个Status Bar Notif

49、ication.1. 获得NotificationManager对象的引用: String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns); 2. 初始化Notification对象: int icon = R.drawable.notifica

50、tion_icon; CharSequence tickerText = "Hello" long when = System.currentTimeMillis(); Notification notification = new Notification(icon, tickerText, when);3. 定义通知消息和PendingIntent对象: Context context

51、0;= getApplicationContext(); CharSequence contentTitle = "My notification" CharSequence contentText = "Hello World!" Intent notificationIntent = new Intent(this, MyClass.class); PendingInten

52、t contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); 4. 把Notification对象传递给NotificationManager: private static final&#

53、160;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的View10. public void onCreate(Bundle savedInstanceState) 11.

54、 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. LayoutInflater.from(this).inflate(R.layout.tab3, t

55、abHost.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("TAB3")21. .setIndicator("相对布局").setContent(R.id.layout03);22. 23. 如何点按一个Button后,让某个TextView内容发生变化。public void onItemClick(Adap

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论